Solaris 8で出力が遅い

Solaris 8で出力が遅い

私はSolarisの専門家ではなく、Windowsオペレーティングシステムに精通しています。とにかく、何が起こっているのかを把握するのが難しいですが、答えが見つかりません。

私たちは、Solaris 10を実行している3つのLDOMと共に、Solaris 11を実行する物理サーバーを持っています。各LDOMには1つのゾーンがあります(構成がまったくないグローバルゾーンを除く)。ゾーンはSolaris 8です(このゾーンで実行されているアプリケーションは8以上のSolarisバージョンをサポートしていないためです)。

これで、データベースが1つのディスクにあり、ソフトウェアと他のエントリが別のディスクにある領域に問題があります。ユーザーは遅いサーバーの速度について文句を言った。

topとiostatを使ってステータスを確認すると、次のようになります。

load averages:  1.82,  1.74,  2.71                                                                             09:45:06
1047 processes:1040 sleeping, 2 zombie, 2 stopped, 3 on cpu
CPU states: 85.0% idle, 11.5% user,  3.5% kernel,  0.0% iowait,  0.0% swap
Memory: 56G real, 12G free, 25G swap in use, 8798M swap free

[ビデオ]

最大荷重値は

5.xx 6.xx 
CPU States: 40% idle,
Memory: 4G free

iostat結果によると

root # iostat -xtc
                  extended device statistics                      tty         cpu
device       r/s    w/s   kr/s   kw/s wait actv  svc_t  %w  %b  tin tout  us sy wt id
vdc0         0.3    1.0    4.4   14.2  0.0  0.0   33.1   0   0    2  112  141 172  0 162
vdc1        40.9    3.6  667.9   78.7  0.0  0.2    3.4   0   8
vdc2         2.0    1.0  127.1    5.1  0.0  0.0    2.7   0   0
vdc3         0.0    3.8    0.0   90.9  0.0  0.0    3.8   0   1
vdc4        62.6   31.5 17615.7 1232.5  0.0  7.4   78.9   1  82
vdc5        12.5    7.9  281.2  421.3  0.0  0.1    7.2   0   4
vdc6         0.0    0.0    0.0    0.0  0.0  0.0    2.8   0   0
vdc7         0.0    7.3    0.0  451.0  0.0  0.0    2.1   0   1
vdc8        40.6    3.6  667.9   78.8  0.0  0.1    3.3   0   8

[ビデオ]

DBが配置されているディスク4(vdc4)は常に高い%b比を持ち、常に少なくとも1つのプロセス待機(%w)があります。ビューには良くありませんが、150人を超えるユーザーがアクセスしていると思います。大丈夫です。間違っていたら訂正してください。

今、ユーザーがいつでも奇妙なことに、ルートは文句を言う間、うまく動作します。サーバーのリソースが不足しているかどうかにかかわらず、常に同じ問題が発生します。

ユーザーの唯一のプロセスである実行中のプログラムを確認してください。

# ps -fu user
     UID   PID  PPID   C    STIME TTY         TIME CMD
user       6027  6024   0 08:13:14 pts/15      0:00 -ksh
user       186   181   0 09:40:48 pts/4       0:00 -ksh
user       555 15455   0 09:42:52 ?           0:00 in.ftpd
user       14114 14104   0 08:42:06 pts/7       0:00 -ksh
user       24325 14114   0 09:15:28 pts/7       0:00 tail -f XXXXXXXX
user       26 15119   0   May 30 ?           0:35 ./oplinkse_SGCR6
user       8412 15119   0 01:59:24 ?           0:01 XXXXXXXXXXXXXXXXXXXX
user       27    26   0   May 30 ?           7:00 ./oplinkse_SGCR6
user       1504  6027   0 09:46:24 pts/15      0:00 tail -f XXXXXXXX
user       5818  5815   0 08:12:39 pts/14      0:00 -ksh

[ビデオ]

彼らはただいくつかのファイルを見て、2つのopenlinkセッションを介してデータベースに接続します。何も実行せずにls -l 3つのファイルがあるディレクトリが必要な場合でも、時間がかかります(時々1分まで)。

問題を見つけるために何を確認できますか?

私はインターネットを見ましたが、私が見つけたのはSSH経由のユーザーの遅いログインプロンプトです。これはログインプロンプトがすぐに表示されますが、ログイン後にコマンドを実行するとそこにとどまるため、ここでは何も起こりません。長期。

答え1

まず、これを拡張することができます:「ユーザーはサーバーが遅いと文句を言っています。」一部の表現はネットワーク待ち時間を意味し、一部はアプリケーションの速度低下を意味します。

LDOM(現在Oracle VM for SPARC)を使用しているため、SPARCサーバーを使用する必要があります。ハードウェアv11およびLDOMのバージョンも便利です。また、各LDOMの構成を提供する必要があります。たぶん設定の問題ですか?

また、(1)Solaris 10 LDOM(v10を実行できないようです)と(3)v11システムでSolaris 8タグ領域を使用してより良いパフォーマンスが得られるかどうか疑問に思います。現在の(3)ldom構成と比較してみてください。それぞれは、(1)Solaris 8ラベルのあるゾーンを実行します。

ブランド Solaris 8 ゾーンの実行への便利なリンク

答え2

これは実際には答えではありませんが、これに対するコメントは機能しません。これは回答を得るのに役立つトラブルシューティングツールです。

このDTraceスクリプトは、システムカーネルが時間を費やす場所をよく示しています。

#!/usr/sbin/dtrace -s

#pragma D option quiet

profile:::profile-1001hz
/ arg0 /
{
    @hot[ arg0 ] = count();
}

dtrace:::END
{
    printa( "%@u %a\n", @hot );
}

これはすべてのカーネルスレッドの現在の機能の多くのサンプルをキャプチャするため、システムが小規模なワークセットを実行するのに多くの時間を費やす場合、この小さなスクリプトはそれをすばやく明らかにします。

実際のカーネルスタックを表示するには、次のものを使用できます。

#!/usr/sbin/dtrace -s

#pragma D option quiet

profile:::profile-1001hz
/ arg0 /
{
    @hot[ stack() ] = count();
}

dtrace:::END
{
    printa( "%@u %a\n", @hot );
}

たとえば、ファイルに保存してファイルを実行可能にし、次のhot.dコマンドを使用してchmod 755 hot.drootとして実行します ./hot.d。いかなる出力も放出しません。しばらく(例:30秒)実行してみてください。次にCTRL-C[停止]をクリックします。次に、特定のスタックトレースが、観察された回数の昇順で実行時に見つかったすべてのサンプリングされたカーネル現在の関数またはスタックトレースをエクスポートします。

出力の最後のいくつかの関数またはスタックトレースにより、システムがほとんどの時間実行することが明らかになる可能性があります。

たとえば、カーネルが断片化されたメモリページをOracleデータベースに必要な巨大なページにマージするなどのタスクを実行するのにほとんどの時間を費やしている場合は、すぐにそれを確認できます。

Solaris 11ハイパーバイザーで実行し、各大域ゾーンで実行します。

関連情報