2008年6月15日日曜日

Linuxでパフォーマンスが出ないとき。。。素人用。

3 Reason Why Your System Might Be Slow | Bringing Linux to the Masses
コンピュータ詳しくないけど、OSってなにかわからないけどLinuxを使っている人用の説明。EeePCの影響でLinuxユーザーは増えてると思うので、こういうのも今後需要が出てくると思う。

CPU 使いすぎ
$ while true; do true; done<br />とかやったときCPU使いすぎになる<br /><br />$ top で確認できる。出力は以下<br /><br />Cpu0  : <strong>98.2%us</strong>,  1.8%sy,  0.0%ni,  <strong>0.0%id</strong>,  0.0%wa,  0.0%hi,  0.0%si<br />Cpu1  :  1.4%us,  0.5%sy,  0.0%ni, 98.2%id,  0.0%wa,  0.0%hi,  0.0%si<br /><br />  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND<br />26210 alex      20   0 19428 2368 1492 R   <strong>99</strong>  0.1   1:14.27 bash<br /> 4075 alex      20   0  606m 195m  28m S    0  6.5  23:19.58 firefox<br /> 6337 root      20   0  505m 116m 6716 S    0  3.9  34:30.25 Xorg<br /><br />対処法<br />$ renice 20 26210<br />強制終了するときは<br />$ kill 26210<br /><br />niceっていうのはUnixにあるプログラム優先順位を決めるコマンド。 <br />topでPID26210がCPUを使いすぎているので、reniceでnice値を変更する。 <br />もういらないプロセスならKill(強制終了)する。<br /><img class="alignright alignnone size-medium wp-image-401" style="margin: 10px; float: right;" title="100\'s of Apps running at the same time on Linux" src="http://hehe2.net/wp-content/uploads/2008/06/165-apps-on-linux1-300x192.jpg" alt="100\'s of Apps running at the same time on Linux" width="300" height="192" /><br /><br />メモリがいっぱいのとき。<br /><br />$ free -m で確認 ちなみにmはメガバイトのM<br /><br />             total       used       free     shared    buffers     cached<br />Mem:          <strong>3015</strong>       1640       1375          0          9        124<br />-/+ buffers/cache:       1505       <strong>1509</strong><br />Swap:         2878          <strong>0</strong>       2878<br /><br />$ top でもわかる<br />Cpu(s):  <strong>4.0%us</strong>,  <strong>1.6%sy</strong>,  0.0%ni, <strong>51.0%id</strong>, <strong>42.1%wa</strong>,  0.6%hi,  0.8%si<br />Mem:   3088224k total,  3043496k used,    44728k free,     3548k buffers<br />Swap:  2947888k total,   998812k used,  1949076k free,   957956k cached<br /><br />  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND<br /> 2579 alex      20   0 1593m <strong>1.4g</strong>  13m S    0 47.0   0:22.26 gimp<br />対処法はメモリ使ってるやつKILLするかメモリ増やすか。。。<br /><br />IO, ディスクいっぱい使ってるとき。<br /><br />以下のコマンドしたりするとなる。。。<br />$ device=`mount | grep " / " | awk '{ print $1 }'`<br />$ sudo dd if=$device of=/tmp/dummy bs=5120 count=1048576<br /><br />$ atop で確認。<br />CPU | sys     14% | user     21% | irq       2% | idle     39% | wait    125% |<br />cpu | sys     10% | user     11% | irq       2% | idle      0% | cpu000 w <strong>78%</strong> |<br />cpu | sys      4% | user     10% | irq       0% | idle     38% | cpu001 w 48% |<br />DSK |         <strong>sda</strong> | busy     <strong>98%</strong> | read    1371 | write   1011 | avio    4 ms |<br /><br />  PID  SYSCPU  USRCPU  VGROW  RGROW  RDDSK  WRDSK  ST EXC S  CPU CMD     1/4<br />30956   0.60s   0.00s     0K     0K 113.4M 114.0M  **   * <strong>D</strong>   6% dd<br /><br />対処は<br />$ ionice -p30956 -n7 を使う。<br />