大きなファイルを読み込むスクリプトを実行しています。私は単一のコアOpenSuSeサーバーとクアッドコアPCで同じスクリプトを実行しました。私のPCで予想されるように、サーバよりはるかに高速です。しかし、スクリプトはサーバーの速度を低下させ、他の操作を実行できなくします。システムのCPU時間(%sy)が長いのはなぜですか?
私のスクリプトは
for 100 iterations
Load saved data (about 10 mb)
時間のMyScriptある "SYS" はときにハイである理由かしら(サーバーでの)時間のMyScript
real 32m32.810s
user 4m37.677s
sys 12m51.524s
real 0m52.564s
user 0m51.768s
sys 0m0.524s
(PCで)私はサーバーでコードを実行します。私はメモリとCPU使用量を確認するためにトップコマンドを使用しました。
まだ空きメモリがあるようですので、スワッピングが理由ではありません。 %syはとても高く、おそらくサーバーの速度の理由ですが、%syが何か原因であるかは分かりません。最も高い割合のCPU(99%)を使用しているプロセスは "myscript"です。 %waはスクリーンショットではゼロですが、時には非常に高くなります(50%)。
スクリプトが実行されている、負荷平均が1以上であるが、私はまた私のディスクを確認2.
ほど高いことが見たことがない:
strt:~ # hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 16480 MB in 2.00 seconds = 8247.94 MB/sec
Timing buffered disk reads: 20 MB in 3.44 seconds = 5.81 MB/sec
[email protected]:~> df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 245G 102G 131G 44%/
udev 4.0G 152K 4.0G 1% /dev
tmpfs 4.0G 76K 4.0G 1% /dev/shm
私はこれらの事を確認しましたが、私はまだ私のサーバーの本当の問題とそれを修正する方法がわからないです。誰もが遅さのための考えられる理由を特定することができますか?解決策は何でしょうか? 他に何か確認する必要がありますか?
ありがとうございます!
「問題」とは何ですか?システムに多くの作業を依頼すれば、作業が完了するまでかなり忙しくなるでしょう。典型的なスクリプトでは、ほとんどすべての "作業"は、スクリプトを解釈するシェルプロセスではなく、子プロセス(またはI/Oなどのカーネルスペースタスク)で行われます。 –
スクリプトが実行されているとき、サーバー内の他のユーザーの応答が遅くなります。スクリプトを速く実行したいと思っています。いくつかのリソースを追加することが解決したら、私はそれを行うことができます。しかし、私は助けになるかもしれないものを知りません。 – Abhishek
パフォーマンス向上のためにどのようなシステムを購入/アップグレードするかを尋ねるのであれば、それはおそらくスーパーユーザーの質問です。タスク自体をより効率的にしようとするならば(ソリューションには改善の余地がたくさんあるかもしれません)、実際のコード、または少なくとも何がどのように、どのように具体的でなければならないのでしょうか密接な機能の説明。 –