web-dev-qa-db-ja.com

SolarisUnixシステムのスワッピングとブロックされたプロセス

一部のユーザーは、新しいサーバーのパフォーマンスが低いと不満を言っています。このマシンで実行されているのはOracle10.2のみです。

一見、すべてが正常に見えます。負荷は最小限で、ログには何もありません。私が見つけることができる唯一のことは、vmstatが多くのスワップインとブロックされたプロセスについて不平を言っているということです。これのトラブルシューティングはどこから始めればよいですか?

# vmstat -S 5 5
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  si  so pi po fr de sr rm s0 s1 s2   in   sy   cs us sy id
 0 0 0 12420128 16679384 0 0 672 809 809 0 0 -0 2 2 -0  875  572  652  0  0 100
 0 7 0 1926560 5871472 0  0 4396 11463 11463 0 0 0 0 0 0 1796 662 1731 0  0 100
 0 2 0 1925984 5934624 0  0 19058 13657 13657 0 0 0 0 0 0 4877 1336 6145 0 1 99
 0 3 0 1925984 6126144 0  0 12691 13821 13821 0 0 0 0 0 0 3708 1055 4537 0 1 99
 0 5 0 1925984 6093776 0  0 6033 15628 15628 0 0 0 0 0 0 2215 745 2386 0  0 100
2
user1855

申し訳ありませんが、vmstatの出力には実際にはスワッピングが表示されていません。まず、Solarisの「スワッピング」の定義は、極端なメモリプレッシャーのためにプロセス全体がスワップインされる場合です。これらは0siなどの列です。最も病理学的にロードされたシステムを除いて、これを実際に見るべきではありません。 pi列とpo列は、「ページング」アクティビティを表示できます。他のシステムでは通常「スワッピング」と呼ばれるアクティビティは、Solarisの用語では「ページング」と呼ばれます。ただし、「vmstat -p」を実行して、api/apo(匿名ページインおよび匿名ページアウト)番号を確認する必要があります。これは、通常、「スワッピング」と呼ばれるものです。 pi/po列には、基本的に通常のファイルシステムアクティビティが含まれます。 (例:メモリマップドIO)。

問題のデバイスを特定するには、iostatが役立ちます。 「iostat-dxzn1」のようなもの。ディスクIO(vmstat b列)でプロセスがブロックされているため、100%ビジーなデバイスが表示される可能性があります。

3
carlito

私は通常、ユーザーからより詳細な情報を入手することから始めます。速く動作していないものは正確には何ですか? 「すべて」が戻ってきたとしても、少なくとも1つの特定のケース、トランザクション、ジョブなどを特定してみてください。

次に、Oracleを介してトレースし(たとえば、複雑すぎない場合はトレース10046)、使用されているサーバーリソース(どのテーブル、どのディスクなど)を確認し、どこで時間が費やされているかを調べます。

iostat -znx 3で100%ビジーなディスクを見た私の経験では、Oracleが正しく構成されていないか、全表スキャンなどを実行する実行プランが最適ではありませんでした。

もう1つの方法は、ビジー状態のディスク(テーブルスペース、やり直し、または何?)にあるデータを調べてから、IO高価なトランザクションまたは長い操作など)を探すことです。

ところで-新しいサーバーに移動したときに統計などを再計算しましたか?オラクルのダイナミックオプティマイザは、両方の意味で雌犬です。

1
slovon

私はあまりにも初心者なのでコメントを追加できないので、「答える」...

「iostat-xcn1」を実行して、hotブロックデバイスが何であるかを確認してください。生のボリュームを使用していますか、それともフォーマットされていますか? ZFSまたはUFS(これはSolaris 10だと思います...)?あなたのディスクレイアウトは何ですか?

あなたは少し交換しています..あなたはあなたのセマフォなどを調整しましたか?プロジェクトまたは/ etc/systemを使用していますか(ここでも、Solaris 10 ..を想定しています)?

1
jharley

さて、あなたが交換しているなら、あなたは増加するでしょうIO一般的に待つ、それは遅い行動につながるでしょう。一般的に負荷は何ですか?負荷はCPU使用率が高いために負荷が急上昇するとパフォーマンスが低下しますが、IO待機が重い場合、15の負荷は1000のように感じられます。

0
f4nt

あなたが投稿した数字をよく見ると、0ページが入れ替わっています。でもで -Sマシンがスワップしている場合、これらの列に0が表示されないはずです。

私の考えでは、あなたのマシンはメモリマップドIOを実行しています。これは同様のページング特性を持っていますが、スラッシングを示すものではありません。

現在、Solarisマシンにアクセスできないため、これは vmstat(1)のマニュアルページ のコピーに基づいています。

0
Dave Cheney