パフォーマンスの争いまたはCPU時間をかかった人

それはすべてタンブラーから始まりました。 それが何であり、なぜそれが必要であったかについては、 http//habrahabr.ru/company/oktell/blog/108726/で説明されています。 つまり、4つの稼働中のコールセンターサーバーが等しく構成され、外部回線と内部回線、ユーザー、および内部データベースの設定がほぼ同じでした。 通信事業者は各サーバーで均一なリング負荷を受け取りましたが、サーバーはこれに対して異なる反応を示しました!



Nサーバーの構成とオペレーティングシステム

1 T1300 @ 1.66 1 GB RAM、Windows 2003 Standard Ed。 R2 SP1 32ビット

2 Intel Core Duo E8400 @ 3000 4 GB RAM、Windows 2003 Standard Ed.SP1 32ビット

3 Intel Pentium 4 3GHz 2 GB RAM、Windows 2003 Standard Ed。 SP2 32ビット

4 E3400 @ 2.60 2 GB RAM、Windows 2003 Standard Ed。 R2 SP2 32ビット



コミュニケーションの質に関する苦情に直面。 さらに、彼らはすべての電話について不平を言ったのではなく、「一部」について不平を言いました。 彼らは、VoIPテレフォニーの非常に特徴的な「クワキ」について不満を述べました。 「kwaks」が表示される理由は、負荷の増加に伴うコールセンターサーバーの1つ(最初)でのプロセッサの使用率の予測できない増加であることがすぐにわかりました。 これは、他のサーバーがそのような負荷にまったく気付かず、同じコール数でCPU負荷が増加しなかったという事実にもかかわらずです。 最初のサーバーが他のすべてのサーバーよりも著しく脆弱であるという事実にもかかわらず、そのような状況-プロセッサ使用率が100%に増加すること-は観察されるべきではありませんでした。



「ヘッドライトを拭く」、「車輪を蹴る」などの標準的な方法を採用したと言っても価値はないでしょう。最後に、コールセンターの設定もDBMSもサーバーの動作に影響を与えないという結論に達しました。 問題の本質を理解するための出発点は、プロセスリストのタスクマネージャーでは、どのプロセスもプロセッサー時間を消費しなかったという事実でしたが、パフォーマンスをモニターしている間、プロセッサー負荷履歴は20%の連続したカーネルプロセッサー負荷を示しました。



画像

画像



目標は、他のすべてのサービスに負荷がかかっていないときに、忙しいコアとは何かという質問に対する答えを得ることでした。 Microsoftの標準ユーティリティであるProcess Explorerは、リソースの主な消費者は「ハードウェア割り込み」であることを提案しました。 このような消費の理由をさらに分析するために、別の標準的なMicrosoftユーティリティであるKernrate Viewがダウンロードされました。 使用に関する推奨事項で説明されているように、コマンドラインは「C:\ Program Files \ KrView \ Kernrates \ Kernrate_i386_XP.exe >> log.txt」を実行し、しばらくしてCtrl-Cを押して停止しました。 次の形式の情報を含むlog.txtファイルを取得しました。



/ ================================

\ =============================== /

日付:2010/12/08時間:1:09:14

マシン名:RESERVCC

プロセッサー数:1

PROCESSOR_ARCHITECTURE:x86

PROCESSOR_LEVEL:6

PROCESSOR_REVISION:0e08

物理メモリ:1015 MB

ページファイル合計:2450 MB

仮想合計:2047 MB

PageFile1:\ ?? \ C:\ pagefile.sys、1524MB

OSバージョン:5.2 Build 3790 Service-Pack:1.0

WinDir:C:\ WINDOWS



Kernrateユーザー指定のコマンドライン:

Kernrate_i386_XP.exe



カーネルプロファイル(PID = 0):ソース=時間、

25000イベント/ヒットのKernrateデフォルトレートを使用する



------------全体的な要約:--------------



P0 K 0:00:36.671(28.5%)U 0:00:09.671(7.5%)I 0:01:22.343(64.0%)DPC 0:00:29.484(22.9%)割り込み0:00:00.281(0.2% )

割り込み= 136809、割り込みレート= 1063 /秒



合計プロファイル時間= 128687ミリ秒



BytesStart BytesStop BytesDiff。

利用可能な物理メモリ、443772928、407339008、-36433920

利用可能なページファイル、2104172544、2093707264、-10465280

利用可能な仮想、2132660224、2131611648、-1048576

利用可能な拡張仮想、0、0、0



合計平均 レート

コンテキストスイッチ、609407、4736 /秒

システムコール、5078088、39661 /秒

ページフォルト、119817、931 /秒

I / O読み取り操作、11671、91 /秒

I / O書き込み操作、209479、1628 /秒

I / Oその他の操作、229216、1781 /秒

I / O読み取りバイト、39981700、3426 / I / O

I / O書き込みバイト、19240135、92 / I / O

I / Oその他のバイト、7130204725、31107 / I / O



-カーネルモードの結果:

-OutputResults:KernelModuleCount = 99

次の表の割合は、カーネルの合計ヒットに基づいています



時間44651ヒット、ヒットあたり25000イベント-モジュールヒットmsec%合計イベント/秒

intelppm 27457 128685 61%5334149

hal 12284 128685 27%2386447

ntkrnlpa 2868 128685 6%557174

win32k 525 128685 1%101993

alder9xp 427 128685 0%82954

tcpip 254128685 0%49345

NTFS 251 128,685 0%48762

afd 120128685 0%23312

RDPDD 109128685 0%21175

e1e5132 109 128685 0%21175

iaStor 97128685 0%18844

NDIS 39128685 0%7576

RDPWD 31128685 0%6022

fltMgr 26128685 0%5051

アモン12 128685 0%2331

termdd 10128685 0%1942

CLASSPNP 10128685 0%1942

ftdisk 7128685 0%1359

ipsec 3128685 0%582

Npfs 2 128685 0%388

USBPORT 2 128685 0%388

volsnap 2 128685 0%388

TDTCP 1 128685 0%194

rdbss 1 128685 0%194

ws2ifsl 1 128685 0%194

netbt 1 128685 0%194

ウォッチドッグ1 128685 0%194

PartMgr 1 128685 0%194



=================================== END OF RUN ============== ======================



次に、「ハードウェア割り込み」プロセスを読み込むドライバーを決定します。 Kernrate Viewログリストの最上位になり、コア占有率がパーセンテージの横に表示されます。 パーセンテージは、システム負荷の合計パーセンテージではなく、ドライバーによるサーバーコアの負荷パーセンテージを示すことに注意してください。

このドライバはIntelppm(Intelプロセッサパワーマネージャ)であると判断しました。 次-Googleがお手伝いします。 インターネットは大きく、強力で無制限です。 彼らはIntelppmの問題が発生することをすぐに認識しましたが、それほど頻繁ではありませんが、このような災害に直面したのは私たちだけではありませんでした。 結果の発見は遅かったわけではなく、問題自体を説明するだけでなく、それを解決する方法を示す記事もありました(元の記事の永続アドレスはこちら: http : //www.osp.ru/text/print/302/5818429.html

さらに、Stephen Doughertyの推奨に従って、intelppmはバッテリー電源がまったく使用されていないサーバーでは必要ないプロセッサ電源管理ドライバーであることを理解しています。 いくつかの解決策が提案されました:障害のあるドライバーの再インストール、更新、または停止。 どのオプションを選択するか-自分で確認してください。ここでは、Dohertyの元の推奨事項に従うことが論理的です。

私たちはレジストリに登りました。 Intelプロセッサドライバデータは、レジストリキーHKEY_LOCAL_MACHINE / SYSTEM / Current Control Set / Services / intelppmにあります。 intelppmドライバーを無効にするには、Startパラメーターの値を1から4に変更しました。もちろん、マイクロソフトの専門家はレジストリのバックアップコピーを作成することをお勧めしますが、私たちはロシア人であり、1つのパラメーターを1から4に変更するために必要なものです。

画像

再起動は、完全な(!)サーバー負荷コールセンターコールでも、プロセッサ負荷が平均60〜70%であることを確認するのに役立ちました。

同時に、デバイスマネージャーは非常に興味深いように見えます。

画像

苦情、潜入、叫び:「このデバイスのドライバーは無効になっています。 おそらく、必要な機能は別のドライバーによって実行されます。 (コード32)、「診断」ボタンをクリックして、このデバイスの診断ウィザードを開始します。「これは飛行の安全性には影響しません;-)



All Articles