• ベストアンサー

Linuxでプロセスで使うCPUを制限できますか?

Linuxであるバッチ処理が流れると、 途端にサーバーが重たくなります。 指定したバッチで使うCPU使用率を制限する事は可能でしょうか? Windowsでも、ウイルスチェックソフトや、最新情報に更新する にしていると、CPUが100%食われて操作不能になってしまうのと 同様の現象なのかなぁと思っています。

  • php4
  • お礼率42% (373/888)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Solaris で NICE値を使って、高速化するという事をしたことあります・・・上手くいきませんでしたが ^ ^; http://x68000.q-e-d.net/~68user/unix/pickup?nice 直接的にCPUの使用率を制限することはできないと思います。その代わりにNICEで調整すると理解していますが・・・上手く行くかは不明です。 なお、遅くしたいバッチなら適当に sleep を入れて対応したことありますが、このような対応はできないですか?

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

使用率・・・というよりまずはniceで優先順位をおとしてみては?

関連するQ&A

  • プロセスがCPU使用率100%になる

    社内のサーバでWindowsのセキュリティパッチを適用すると必ずといっていいほどCPU使用率が100%になるサーバがあります。 CPU使用率の高いプロセスを確認したところ「TrustedInstaller」がほぼ独占している状態で、その状態がしばらく続いているようでした。 サーバのセキュリティパッチは「Windows Server Update Services(WSUS)」で管理しており、該当サーバは単純な子サーバで一定期間未適用のセキュリティパッチを親サーバで配布した後、手動で適用しています。 CPU使用率が上がるタイミングとしては手動で適用を実行したとき(適用処理中は平均して使用率が高い)はもちろんなのですが、適用後数時間経ってからまた使用率が上がる場合があります(特に操作していないのに急に上がるが、継続時間は10分程度)。 なお、業務的に即時サーバを再起動することができないため夜間に自動再起動しているのですが、それまでは再起動していません。 また、再起動後は「TrustedInstaller」によりCPU使用率が上がることはありません。 知りたいのはなぜ適用処理後~再起動の間にまた「TrustedInstaller」のCPU使用率が高くなるのか、というところです。 WSUSを使用しているため親サーバとのやりとりが発生するために上がるのか、再起動をしていないため定期的に「TrustedInstaller」が忙しく動き出すのか(この場合は再起動までの間何度か使用率が上がってもよさそうですが)。 常時「TrustedInstaller」が高いのであれば、それはそれで問題ですが今回の話にはならないので悩みはなくなるのですが…。 サーバについては、WindowsServer2008R2(64bit)、メモリ:16GB、CPU:Xeon2.27GHz です。 なにかご存じであれば教えていただけると助かります。よろしくお願いします。

  • CPUの処理待ち数の調べ方と目安を教えてください。

    SolarisサーバにおけるCPUの処理待ち数(WindowsでいうところのSystem - Processor Queue Length)を表示するコマンドを教えていただけないでしょうか。 また、処理待ち数の閾値もお願いします。 閾値はCPUの数やサーバの使い方にもよると思いますが、大体の算出方法を教えてください。 SolarisはWEBサーバ用途でCPUは2個つんでいます。 サーバでは1時間おきにバッチ処理が走り、バッチ処理実行中のCPU idleは0%になります。

  • 「デュアルコアの片方のコアの処理能力がCeleron430と概ね同じくらいのCPU」が知りたい

    Express5800 Ge110 というサーバで、毎日重いシングルスレッドのバッチ処理Aを動かしています。 バッチ処理Aの所要時間は16時間程度で、そのうち10時間程度は、CPU使用率が100%になっています。 CPUはCeleron430です。 ハードディスク・メモリ の 使用時間・使用量 には余裕があります。 (※使用時間は「%IdleTime」で判断しました) このサーバに、別の重いシングルスレッドのバッチ処理Bを追加しようと考えています。 しかし、バッチ処理Aの所要時間は今よりも長くしたくありません。 そこで、バッチ処理Bを追加するにあたり、CPUをデュアルコアのものに変えて、 そのCPUの片方のコアの処理能力が、今のCPUのCeleron430と概ね同じくらいであれば、 バッチ処理Aの所要時間は長くせずに、バッチ処理Bを動かすことができるのではないか、と考えています。 そこで質問なのですが、 「デュアルコアの片方のコアの処理能力がCeleron430と概ね同じくらいのCPU」を教えて下さい。 なお、バッチ処理Bは、バッチ処理Aとは別のハードディスク上で動くように ハードディスクの増設は済ませていますので、 ハードディスクがボトルネックになる可能性は考えなくて良いです。 また、メモリも十分に余裕があることを確認しています。 ご回答よろしくお願いします。

  • CPUが100%になるとパソコンが固まる

    CPUの使用率が100%の状態が続くとパソコンが固まってしまい、キーボード・マウスの操作を一切受け付けなくなってしまいます。 CPUの使用率を制限するフリーソフトなどはありませんでしょうか?

  • ウィルスセキュリティ無効→有効でcpu100%が解消

    ウィルスセキュリティを最新版をダウンロードし、インストールも問題なく終了していますが、PCの動きが遅いので調べてみると cpu使用率100%が継続しています。 そこで、ウィルスセキュリティを一回無効にして、すぐに有効として元の状態に戻すとcpu使用率は数%がとなり、その後は問題なくPCが使えます。 PCを起動する毎にこのような操作をするのではたまったものではありません。 困っていますのでよろしくお願い致します。

  • systemプロセスでCPU使用率が100%に

    助けてください! systemプロセスが100%になり、どうにもなりません。 セーフモードでは立ち上がりますが、どうしてよいものか・・・ 原因と考えられることことして。 昨日メール受信時にウィルスバスターでPOP3_USER_FORMAT_STRING_ATTEMPT_EXPLOITというメッセージが表示され、メールの受信ができませんでした。どうしも必要なメールだったので、ウィルスソフトをOFFにして受信をしてしまいました。 その後は問題なく使用できていたのですが、 本日になり、CPU使用率が100%に・・・ CPU100%のためほとんどの操作が困難になっています。どなたか解決策をいただけないでしょうか?

  • CPU使用率について

    CPU使用率についての質問です。 HP-UX環境(CPU:2、Memory:4G)で、バッチ処理を行なう予定です。 データベースはオラクルです。できるだけCPU使用率を高めたい(効率よくCPUを使わせたい)のですが、このような場合に調整できるオラクルのパラメータはありますでしょうか?オラクルバージョンは9.2です。 また、もしなければどのような方法があげられますでしょうか。 ご教授ください。

  • タスクマネージャーのプロセスに関して

    WIndowsXP Proを使っています。 アプリケーションがひとつも走っていない時にタスクマネージャーを立ち上げるとCPU使用率が17%位から40%位まで上下しています。 そこでタスクマネージャーのプロセスを見てみると「System Idle Process」というイメージ名がCPUを80以上使っているようです。 上記の現象でCPUの使用率を下げる方法を教えて下さい。 PS、特にHDDにアクセスしているようでもないのでウイルスでもなさそうなんですが。 宜しくお願いします。

  • マルチプロセスアプリの運用設計(CPU使用率など)

    デュアルコアのサーバー(Windows2003)で、1つの分散アプリ(ほぼシングルスレッドの作りです)を動かして運用しています。 処理時間の短縮を図るために、各サーバの分散アプリを2に増やして動かそうかと考えています。 現在1つの分散アプリでCPU使用率は50%に張り付くことが多々あります。このためデュアルコアのサーバーで分散アプリを二つ動かすと、CPU使用率が100%で張り付くのではないかと懸念しています。 アプリケーションによってCPU使用率が100%になったときに、OSやミドルウェアなどの動きに影響が出たりするのでしょうか?特に負荷が高いときに生存監視(サーバーや分散アプリの)に反応しなくなると運用上問題となるため懸念しています。 一般的にマルチプロセス(マルチスレッド)のアプリケーションと、OSなどの間でのCPUリソースの割り振りはどのよう設計しているのでしょうか?(OSやミドルウェア用に一コアは残しておくものでしょうか?)

  • 実行時のCPU使用率を増やしたい

    WindowsServer2003(StandardEdition)でのCPU使用率において、 質問があります。 VB6.0で作成したバッチプログラムを動かしています。 プログラムの内容はVBからMdbに対して問い合わせを行い 結果をMdbに格納する。。。といった感じです。 (接続はADOです) またWebサーバーもかねており、IIS6.0で運用しています。 (メインの言語はASP) 上記の処理(バッチ及びIIS)の中にはかなり CPU負荷かが掛かる処理があるのですが CPUが30%を超えないのです。 (VB、IIS運用時共。確認はタスクマネージャー) 重い処理が走るときは30%付近をMAXにだらだらと時間が過ぎていきます。 こちらとしては一気に100%まで使い切ってもらって処理時間を短縮したい。 コーディング、あるいはOS上で設定などがあるのでしょうか? WindowsServer2003は導入後、RAID、IIS等の環境設定を行いましたが それ以外はほぼデフォルト状態です。 サーバ環境 CPU:Xeon3.2G メモリ:1GB HDD:十分な空容量有