グラフィカルsshクライアント(securessh)を使用して(仮想マシンとしてインストールされた)Linuxサーバーにログインします。このサーバーは、 nexus がインストールされているTomcat5.5サーバーを実行します。
コマンドを入力するか、小さなファイル(約5〜6 MB)を削除またはコピーすると、シェルの応答に時間がかかります(10秒からほぼ1分)。私はtop
を実行して、プロセスが大量のメモリ/ CPU時間を使用しているかどうかを確認しようとしました:
top - 13:34:41 up 86 days, 16:04, 1 user, load average: 2.13, 0.99, 1.94
Tasks: 63 total, 1 running, 62 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.0%us, 1.5%sy, 0.0%ni, 96.2%id, 0.2%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 3896416k total, 3097824k used, 798592k free, 167180k buffers
Swap: 915664k total, 84k used, 915580k free, 2409236k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20436 Tomcat55 20 0 359m 217m 13m S 18 5.7 2713:04 jsvc
Tomcat55ユーザーのみが大量のリソースを使用します。上記の出力に基づくと、このユーザーはメモリの5.7%とCPUの5.7%しか使用していないようです。 top
の出力を誤解していますか? CPUとメモリが十分に活用されていないのに、なぜマシンのパフォーマンスが悪いのですか?
編集:私は今上で実行して取得しようとしました:
ATOP - repository 2011/09/20 16:08:48 10 seconds elapsed
PRC | sys 0.17s | user 0.03s | #proc 64 | #zombie 0 | #exit 4 |
CPU | sys 2% | user 1% | irq 0% | idle 198% | wait 0% |
cpu | sys 1% | user 1% | irq 0% | idle 98% | cpu001 w 0% |
cpu | sys 0% | user 0% | irq 0% | idle 99% | cpu000 w 0% |
CPL | avg1 0.05 | avg5 0.92 | avg15 1.29 | csw 976 | intr 61 |
MEM | tot 3.7G | free 656.7M | cache 2.4G | buff 170.9M | slab 241.3M |
SWP | tot 894.2M | free 894.1M | | vmcom 781.9M | vmlim 2.7G |
DSK | sda | busy 0% | read 0 | write 9 | avio 0 ms |
NET | transport | tcpi 18 | tcpo 26 | udpi 0 | udpo 0 |
NET | network | ipi 22 | ipo 26 | ipfrw 0 | deliv 22 |
NET | eth1 0% | pcki 34 | pcko 26 | si 2 Kbps | so 11 Kbps |
PID SYSCPU USRCPU VGROW RGROW RDDSK WRDSK ST EXC S CPU CMD 1/1
4687 0.06s 0.02s 0K 0K - - NE 0 E 1% <lsb_release>
4689 0.04s 0.01s 0K 0K - - NE 0 E 1% <apt-cache>
4684 0.04s 0.00s 132K 132K 0K 0K -- - R 0% atop
4673 0.02s 0.00s 0K 0K 0K 0K -- - S 0% sshd
4152 0.01s 0.00s 0K 0K 0K 0K -- - S 0% vmware-guestd
2302 0.00s 0.00s 0K 0K 0K 4K -- - S 0% kjournald
4688 0.00s 0.00s 0K 0K - - NE 0 E 0% <sh>
4686 0.00s 0.00s 0K 0K - - NE 0 E 0% <sh>
これが正しいことを理解すれば、「ゾンビ」はありませんが、CPU時間のほとんどを占めます(199%から200%にジャンプします)。これは予想される動作ですか?
iostatに加えて、atop( http://www.atoptool.nl/ )CPU以外のボトルネックを特定します。
cp
などのファイルシステムコマンドは、CPU時間やメモリをまったく消費するべきではありません。これは、top
が示すとおりです。代わりにiotop
プログラムを試してください(インストールが必要な場合があります)。
仮想マシンにログインしているため、速度が遅いのは物理ホスト上の他のVMが原因である可能性があります。仮想マシンの内部からは、通常、実際に使用しているCPUの量を確認することはできず、実際の物理的なIO=レートに関する統計も表示できません。「top」または「atop」を実行する必要があります。物理ホスト上。
現在、ソースを見つけることができません。そのためお詫び申し上げますが、仮想ドライブが格納されている場所に関連している可能性があることを覚えています。 NFS経由で保存およびアクセスすると、膨大な量のオーバーヘッドとスラッシングが発生します。
Virtualboxには、IOキャッシュを調整する必要があるオプションがあります。これは、cpなどのデータをコピーする単純なプログラムに影響します。