• ベストアンサー

ユーザごとにCPUの占有率を制限

題名の通りですが、たとえば、ユーザが利用できるCPUの利用率を最大50%までしか使えないようにしたい場合、どのようにすればよいですか? というのも、CPUの負荷下におけるプロセスの速度評価を行うために、無限ループをするプロセスを別に走らせて行っていたのですが、この負荷下で、評価したいプロセスを200回以上連続実行すると、200回全体の合計実行時間に、負荷がかかったような形跡がほとんどなくなってしまうという謎の現象が起こってしまったからです。 なので、ユーザが利用できるCPU占有率を一定にできないのかなと思い、質問してみました。 ulimitではできなさそうですよね。

  • ytse
  • お礼率71% (88/123)

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.1

商用OSにはWLM(WorkLoadManager)と言った機能がありますが、おそらくlinuxでは、ユーザー単位やプロセス単位での制約はできないと思います。 CPU使用率50%の常時負荷をかけたいのであれば、例えば、無限ループをalarmで10msで中断して10msスリープするようなプログラムにして実行優先度を評価対象より高くすれば、そのプログラムのCPU使用率が約50%になると思います。

関連するQ&A

  • タスク マネージャーにCPU占有率がなぜ違う

    タスク マネージャーのCPU占有率について、ご存知の方に教えて頂きたいのです。 タスク マネージャーを開くとすると、PCに動いているすべてのアプリ、プロセス及びCPUの履歴が見えますね。しかし、どうしても理解ができないことがあります。 例えば、こちらのPCは core i7です。8つのCPUが入っていると思います。 現在あるアプリをインストールしているときの様子ですが、 「パフォーマンス」タブをクリックして見ると、各CPUが忙しく動いているのがわかります。 つまり、いくつかのCPUの使用率が高いので、急いで動いています。 しかし、「プロセス」タブをクリックして各プロセスが占有するCPU率を見ると、 「System Idle Process」以外、他のプロセスの CPU 占有率は全面的に 00 です。 つまり、CPUを大きく使っているプロセスは一つもありません。 全てのプロセス、全てのCPUが空いているに見えます。 「パフォーマンス」に見えたCPU占有率と「プロセス」に見えたCPU占有率は何故一致しません。

  • CPU占有率100%

    WIN2000、DYNABOOKユーザーです。CPU占有率が常に100%なってしまい、タスクマネージャで調べたところWIN SYSTEMフォルダ内のsvchost.exeというファイルが占有率のほとんどをしめている状態です。どなたか解決策をご存知でないでしょうか・・。

  • WIN2000のCPU占有率を均等にしたい

    WIN2000で有限要素解析ソフトを実行しています。2本同時に計算開始した場合、同じCPU占有率(つまり50%づつ)にしたいのですが、実際のところ、メモリ使用量に依存していて同じ占有率になりません。 うまく均等に占有できる方法はありますか? よろしくお願いいたします。

  • CPU率が低いのにLoad Averageが高い

    某プロバイダのVPSにてサイトを運用しています。 OSはFreeBSD 4.7です。 最近、突然サイトが重くなることがあり、topで状態を確認しますと、 一番CPU使用率が高いプロセスがmysqldで、5%前後にもかかわらず、 Load Averageが2~4、ひどいときは5を超える時があります。 この状態は短いときは15分程度、長いときは2時間ほど続きますが、 何もしなくても勝手に収束します。 topには表示されないプロセスがCPUを占有しているのでしょうか? VPSだと、同じサーバを共用しているユーザの負荷を影響したりするのでしょうか? この質問はプロバイダの技術担当にしてみましたが明確な解答をいただけませんでした。 負荷の原因となっているプロセスを特定したいのですが、 他に方法がありましたら教えていただけると助かります。

  • プロセスが使用するCPU使用率を下げる設定は?

    非常に負荷の高いプログラムを実行している時に、CPU使用率が100%になり、高負荷になることが気になっていまして、CPU使用率やマシン負荷が軽減できないか、方法などを模索しています。 少し処理時間が掛かっても良いので、負荷を減らし時間で解決できればと考えています。 niceコマンド、priocntlコマンド(root権限で実行)で、プロセスの優先度の設定をしつつ、プロセスの実行ができることは分かったのですが、topコマンドでCPU使用率のところを見ると、0% idle状態なのはnice/prioctl未使用時とくらべ、変化はなく、効果の具合がよく分かりませんでした。 また、priocntlはroot権限で実行しないといけないようで、一般ユーザでの実行を考えているので、これもNGかなと思っています。 なにか解決策はありませんでしょうか?ご存じの方がいらっしゃいましたら、教えて頂けませんか。 よろしくお願いします。

  • cpu の制限 redhat linux7.0

    特定のユーザーグループに対して、CPUの利用制限を設定したいのですが、どのような方法があるでしょうか。 具体的には、 一つのプロセスのCPUの負荷が50%を超えると、そのプロセスを強制終了させる、ようにしたいのです。 何かよい方法はないでしょうか。

  • CPU使用率が高い

    WindowsXPでCPU使用率が平均で80%以上になります。プロセスで見るとSysytem Idol Process が平均でやはり80%以上なのですが、Idolプロセスなので、関係ないと思っています。他にはCPUを占有しているプロセスは見当たりません。他に原因があるとしたら、どんな事があり得るでしょうか?宜しくお願いします。

  • CPU使用率が100%になってフリーズしてしまう

    何もアプリケーションを起動していないのですがCPUの利用率が 100%になり、動かなくなってしまいます。 タスクマネージャーのプロセスを確認すると lsass.exe    利用率70%前後 SvSche.exe    利用率25%前後 が占有しているみたいですが、どうすればいいかまったくわかりません すいませんが、解決策を教えてください。 ウイルススキャンも行いましたが異常なしでした。

  • CPU利用率の求め方。

    CPU利用率の求め方。 (1)ある計算機において、n個のプロセスがメモリ中で実行されているとする。 プロセスが実行されている時間中に確率p(0<=p<=1)でI/O待ち等の理由で待ちとなる場合、CPU利用率R(0<=R<=1)をpとnで表せ。 (2)プロセスにおけるI/O待ちとなる確率pが0.8、かつ実行に必要なメモリ容量が40MBであり、搭載もメモリで可能な限りプロセスの多重度を上げると仮定した場合、CPU利用率Rが0.7(70%)以上になるために必要なメモリ容量を求め理由と共に述べよ。ただし、メモリは64MB単位で搭載可能であり、仮想記憶は用いていないものとする。 という問題なのですが、(1)からして分かりません。 nに関係なくR=(1-p)な気がするのですが、違いますよね。 すみませんが考え方教えてください。

  • スリープ状態から復帰後、DPCsがCPUを占有

    ■構成  機種: DELL Inspiron 530  OS: Windows Vista Ultimate 32bit CPU: Intel Core 2 Duo E6700 2.66GHz  メモリ: 2GB ■問題の状態 パソコンをスリープ状態にしてしばらくのち復帰すると、通常使用していた時よりもCPU使用率が上昇していました。Process ExplorerでどのプロセスがCPUを占有しているのか調べました。 CPUにおもに負荷を与えているプロセスは以下の通りでした。 (占有率順) 1. DPCs(Deferred Procedure Calls) 20~30% 2. System 10~20% 3. Interrupts(Hardware Interrupts) 10~15% などです。 電源を切っている状態から起動したときには、上記のプロセスはなんらCPUを圧迫することはありません。スリープ状態から復帰したときだけです。またスリープ状態から復帰したときには、必ずと言っていいほどこのような症状が現れます。 ■質問 (1)そもそもDPCsとは何でしょうか。検索してみたのですが、そこらへんの知識に疎い自分にはピンときませんでした。できればわかりやすく詳しく教えてください。 (2)この問題が起こる原因は何だと考えられますか? (3)解決策にはどのようなものがあるでしょうか? ご回答よろしくお願いします。