ロードアベレージの高さと操作感って必ずしも一致しないもんでもあるけれど、そこんとこどうなのよって話。
最近はRubyやRailsやら新しい事を始めた影響で日記の更新が滞っているので、ちょっと小ネタを挟もうかと思います。
Rubyのプログラムになかなか慣れないままなので、拾ってきたベンチマークのプログラムをいろいろと弄っていたらロードアベレージだけが高くなって、レスポンスは変わらないという状態に。
プログラムのせいなのか、Rubyのせいなのか、H/Wのせいなのか。
どこまでいくのかなーと放置していたら、なんと1000を超えた!?
top - 00:37:25 up 52 min, 2 users, load average: 1124.24, 696.17, 310.12 Tasks: 1324 total, 1217 running, 107 sleeping, 0 stopped, 0 zombie %Cpu(s): 99.8 us, 0.2 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 3958272 total, 3811968 used, 146304 free, 24292 buffers KiB Swap: 4104188 total, 0 used, 4104188 free. 136864 cached Mem
たけけんはまだまだ経験が浅いのですが、こんなに高いロードアベレージは初めて見ます。
と言っても、ターミナルからのレスポンスはまだまだ余裕ですね。
ロードアベレージが高い≠ユーザーが感じる負荷というなかなか奥深さを感じる状態です。
この時点でのvmstatはこんな感じで、CPU待ちだけが高い状態です。
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1007 0 0 765644 24272 136852 0 0 0 0 1049 1430 100 0 0 0 0 1012 0 0 749672 24272 136852 0 0 0 0 1035 1405 100 0 0 0 0 1017 0 0 735252 24272 136852 0 0 0 0 1043 1413 100 0 0 0 0 1022 0 0 720576 24272 136852 0 0 0 0 1030 1402 100 0 0 0 0 1027 0 0 706000 24272 136852 0 0 0 0 1036 1417 100 0 0 0 0 1032 0 0 691540 24272 136852 0 0 0 0 1043 1414 100 0 0 0 0
なんだか爆発するんじゃないかという不安に駆られますが、放置しているとロードアベレージ1300を超えたところからレスポンスが悪くなってきました。
top - 00:39:28 up 54 min, 2 users, load average: 1304.92, 900.01, 431.16 Tasks: 1498 total, 1391 running, 107 sleeping, 0 stopped, 0 zombie %Cpu(s): 17.8 us, 0.1 sy, 0.0 ni, 81.9 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 3958272 total, 3852140 used, 106132 free, 952 buffers KiB Swap: 4104188 total, 577380 used, 3526808 free. 7740 cached Mem
topはこんな感じで、レスポンスが落ちた原因ですが、CPUの影響ではなくてSwapが発生したことによるものだと思います。
vmstatを見てみると、systemのCPUリソース利用率が徐々に上がってきており、スワップも進んでいます。でもってプロセス待ちがかなりのハイペースで高くなりました。
この上がりかたはすごいですね。
文面では伝えられないですが、スワップの発生と同時にHDDからあまり聞いたことのない音が鳴り始めました!!
\(^o^)/
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1341 130 810836 112396 432 4852 4872 23761 4872 23761 1614 1957 71 29 0 0 0 1241 298 844356 120884 396 4972 3487 13648 3487 13649 1616 2144 88 12 0 0 0 1269 281 847192 119872 356 4940 5471 2855 5504 2855 1473 2270 95 5 0 0 0 1291 262 849304 88796 356 4956 6240 1887 6240 1887 1464 2413 89 11 0 0 0 1290 265 937112 119640 356 4808 4161 29944 4161 29944 1663 2014 75 25 0 0 0 1253 306 936476 133456 320 4896 3689 1649 3689 1649 1354 1959 94 6 0 1 0 1272 292 932000 113400 320 4892 5367 0 5401 0 1324 2063 100 1 0 0 0
だんだんレスポンスもなくなってきて、SSH接続は新しいセッションはできないようです。
いまのvmstatはこんな感じですが、ここらが限界でしょうかね。
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1302 273 972000 103544 316 4852 4205 7033 4229 7033 1653 1818 74 26 0 0 0 1283 311 999844 107208 316 4700 4053 10245 4053 10245 1714 1961 83 17 0 0 0 1280 313 1014156 121296 312 4700 3692 5332 3757 5332 1546 2107 89 11 0 0 0
なんとかプロンプトが返ってきたので、wを叩いてみました。
00:47:19 up 1:02, 2 users, load average: 3104.55, 2366.64, 1301.67 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT takeken pts/0 192.168.24.53 00:28 19:45 1:05m 0.00s /usr/sbin/httpd
なんとロードアベレージが3000を超えていました。
やばいです。そろそろタイムスリップでもおこりそうです。
くそったれなプログラムですが、何かの処理をさせるとしてボトルネックになる部分はHDDというのはまず明らかなことは分かりました。といっても何の役に立つのかは分かりませんが。
SSDならどこまでいくのかちょっとだけ気になりますね。
愉快犯が出るといやなのでプログラムは載せないですが、詳しい人ならたぶん何をやっているかは分かるのかなあという気はします。っていうかとても簡単なものです。
日記を書きながら放置していますが、どうやら3000で頭打ちのようです。
00:58:54 up 1:13, 2 users, load average: 3137.78, 3108.01, 2302.54 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
topが見たいのですが、なかなか応答が返ってこない・・\(゜ロ\)(/ロ゜)/
ちょっと飽きてきたので強制終了のシグナルを送ってみましたが、なかなか終了すらできないようです。
このあとでWordpressの更新が待っているのでちょっと憂鬱です。
プログラムが終わりそうにないので、この辺で終了にしますw
ついこないだHDDのカリカリする音もあまり聞かないから、たまに聞くといいなぁとか言ってた気がしますが、ガリガリガリガリうっせーです(*´ω`)
ウルセーゾコノヤローです。
とか何とか言ってるとtopが返ってきました。
top - 01:14:04 up 1:28, 2 users, load average: 5479.75, 4309.92, 3292.97 Tasks: 3969 total, 213 running, 3752 sleeping, 0 stopped, 4 zombie %Cpu(s): 98.1 us, 1.6 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st KiB Mem: 3958272 total, 3862696 used, 95576 free, 264 buffers KiB Swap: 4104188 total, 2777192 used, 1326996 free. 9040 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5409 takeken 20 0 31956 4352 600 R 37.8 0.1 0:13.34 ruby
5000だった!! こっ故障じゃないのか、カチカチ。みたいな。
ではまた近いうちに~!
( ^^) _旦~~