• ベストアンサー

実行時の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:十分な空容量有

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

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

連続ですみません。 アプリレベルで、出来るだけCPUを使って処理を速くするというのであれば、 「出来る限りディスクアクセスを減らす」方向の開発を行うのも 一つの方向性かもしれません。 例えば、バッチ処理で頻繁に参照するマスタデータ等があるなら、 それは極力一度だけしか読まないようにする(一度読んだらメモリに置いておく)とか。 コーディングは面倒になるとは思いますが、処理の内容等によっては 劇的に速くなる可能性もあると思います。

yuskizm
質問者

お礼

リソースを割けず、納期優先で製造した為 かなり荒っぽい処理をしているのは事実です。 後の改修につなげたいと思います。 ご意見ありがとうございます。

その他の回答 (3)

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.4

全て同一マシン上にあるのなら、DBのHDDアクセスがネックになっている可能性が高いように思われます。 RAID5なら、間違いなくI/O待ちが結構多そうですし。 各プロセス単位のCPU利用率はどうなりますか? SYSTEM なんかが結構上位に来ていたりしませんか?

yuskizm
質問者

お礼

ご返答ありがとうございます。 今回の件は、ディスクI/Oのボトルネックが要因とし、 環境改善案としては物理的(ハードreplace等)対策を検討 する事としました。 ありがとうございました。

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.3

追加で質問させていただいてよろしいでしょうか。 1.Xeon3.2G というのは、シングルコア?マルチコア? マルチCPU? 2.DBは外部? 同一マシン?

yuskizm
質問者

補足

閲覧ありがとうございます。 以下、ご返答します。 1.シングルコアです 2.DBは同一マシンです。   また、物理的に3ディスクですがRAID5で組んでますので   論理的に1ディスク状態です。   よって、I/Oの分散化は出来ていないと思います。

回答No.1

Web系とかIISは全然詳しくないのですが、一般論での回答です。 CPU使用率は、あくまで「CPU単独の」使用率です。 システム全体の負荷を示すわけではありません。 システム全体として、ディスクアクセス(MDB使ってるとの事なので 結構負荷が掛かると思います)等を含めると目一杯頑張っていても、 CPUだけ見れば、それほど頑張っていないという事は多いです。 ……と言うより、CPU負荷100%ってのは、CPU内部で(他へのアクセス無しで) ループ計算してるとか、バグで無限ループに陥っているとか、限られた 状況でしか見られないような気がします。 DB使用アプリで30%使用なら、かなりCPU使用率高いような気がしますよ?たぶん。 一応、該当アプリのプロセスの優先度を上げることによって、 優先的にCPU時間を割り当てれば、負荷率が上がる「可能性もあります」が、 下手に やたら上げると、特にサーバだとヤバい事になるかと思いますので、 気をつけてください。

yuskizm
質問者

お礼

ご返答ありがとうございます。 なるほど、ディスクアクセスがボトルネックになっている と言う事ですね。。 その可能性は気づきませんでした。

関連するQ&A