第3回ISUCON勉強会
今日は第3回ISUCON勉強会をした。私はIT系ではないので全然分からないのだけど、チームメイトにおんぶにだっこでISUCON9をやっている。チームメイトの環境が違うとやりにくいのでDockerでやろうということになったが、Dockerも何も分からない。動かしつつ覚えていこう…と思ったけど、何をやっているのか結構カオスなので(チームメイトが優しく教えてくれてちょっとずつ分かってきた)、Docker、SQL、AWSなどについて基本だけでも勉強せねばと思う…
そんな中、ISUCONのことが書かれているSoftware Design 7月号を買った。これを読みながらやったり調べたりしたことを書こうと思う。
まず、ISUCONで重要なのは①レギュレーション文書(競技環境や出題についての情報)、②ベンチマーク中に送られてくるリクエスト(負荷)の傾向、③ベンチマーク実行中のサーバの性能情報、④バージョン管理だそう。③で、sysstat(sarコマンド)が使用できるそうなので、やってみた。
$ sysstat
sysstat: command not found
sysstatというコマンドはないらしい。じゃあsarかな?
$ sar
Command 'sar' not found, but can be installed with:
sudo apt install sysstat
ということで、入れた。
$ sudo apt install sysstat
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
isag
The following NEW packages will be installed:
sysstat
0 upgraded, 1 newly installed, 0 to remove and 104 not upgraded.
Need to get 453 kB of archives.
After this operation, 1524 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 sysstat amd64 12.2.0-2 [453 kB]
Fetched 453 kB in 3s (157 kB/s)
Preconfiguring packages ...
Selecting previously unselected package sysstat.
(Reading database ... 79196 files and directories currently installed.)
Preparing to unpack .../sysstat_12.2.0-2_amd64.deb ...
Unpacking sysstat (12.2.0-2) ...
Setting up sysstat (12.2.0-2) ...
Creating config file /etc/default/sysstat with new version
update-alternatives: using /usr/bin/sar.sysstat to provide /usr/bin/sar (sar) in auto mode
Created symlink /etc/systemd/system/multi-user.target.wants/sysstat.service → /lib/systemd/system/sysstat.service.
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for systemd (245.4-4ubuntu3.4) ...
いざ…!
$ sar
Cannot open /var/log/sysstat/sa04: No such file or directory
Please check if data collecting is enabled
ぴえん。/etc/default/sysstatの「ENABLED="false"」になってるのを"true"に書き換えればいいというのを見たが、普通には書き換えられなかったので
$ sudo vi sysstat
として書き換えた。しかし
$ sar
Cannot open /var/log/sysstat/sa04: No such file or directory
Please check if data collecting is enabled
ぴえん。sysstatを再起動すればいいというのを見たが、これもふつうにはできなかったのでsudoで再起動したらいけた。
$ sudo service sysstat restart
* Starting the system activity data collector sadc [ OK ]
$ sar
Linux 5.4.72-microsoft-standard-WSL2 (...) 07/04/21 _x86_64_ (8 CPU)
04:40:13 LINUX RESTART (8 CPU)
1行しか出てこなくて面白くないので、取得時間の間隔を短くしたい。デフォルトは10分間隔だけど、/etc/cron.d/sysstatの「/dev/null && debian-sa1 1 1」を「/dev/null && debian-sa1 60 10」に変えると1分間隔になるらしくて変えたけど(これもsudoで)、1行しか出てこない。もっと調べると、1秒間隔で2回取得するのは次のコマンドでいけるらしい。
$ sar 1 2
Linux 5.4.72-microsoft-standard-WSL2 (...) 07/04/21 _x86_64_ (8 CPU)
05:01:14 CPU %user %nice %system %iowait %steal %idle
05:01:15 all 0.12 0.00 0.25 0.00 0.00 99.62
05:01:16 all 0.00 0.00 0.12 0.00 0.00 99.88
Average: all 0.06 0.00 0.19 0.00 0.00 99.75
ということで、さっき変えた「60 10」は「1 1」に戻しておいた。他にもいろいろ出力できるらしい。(参考:https://t-min.hatenablog.com/entry/2017/02/19/234942)
今日はここまで。また風邪を引いたっぽい。家族でぐるぐる移し合ってるんじゃないかと思う…つらい…