実稼働環境でのプロセスに問題があり、開発環境でも問題をシミュレートできます。
プロセスには 5 つのスレッドがあり、そのうちスレッド 3 と 4 が非常にアクティブです。Thread 4
メッセージをキューに入れるプロデューサーであり、メッセージをデキューThread 3
するコンシューマーです。どちらのスレッドも DB 集中型です。
問題
プロセスが実行中の場合、top
このプロセスと oninit(Informix) の CPU 使用率が高いことが出力に示されます。CPU 負荷が常に 4 を超えており、危険です。このマシンには、2 つの仮想 CPU を持つ 1 つの CPU しかありません。
すべての DB クエリがcommitted read
分離レベルで実行されている
分析
ps -eLo pid,ppid,lwp,nlwp,osz,rss,ruser,pcpu,stime,etime,args | grep <processname>
この出力は、スレッド 3 および 4 による CPU 使用率が高いことを示しています
onstat -g act -r 2
この出力は、スレッド 3 と 4 のクエリが頻繁に行われることを示しています。
上記のすべての事実を考慮して、oninit とプロセスの CPU 使用量と CPU 負荷を減らす方法はありますか