web-dev-qa-db-ja.com

負荷平均が高く、CPU使用率が低い-なぜですか?

Webアプリケーションで大きなパフォーマンスの問題が発生しており、ボトルネックを見つけようとしています。私はシステム管理者ではないので、取得できないものがあります。いくつかの基本的な調査では、CPUがアイドル状態であり、大量のメモリが利用可能であり、スワッピングがなく、I/Oがないが、平均負荷が高いことが示されています。

このサーバーのソフトウェアスタックは次のようになります。

。 Solaris 10。 Java 1.6。WebLogic 10.3.5(8ドメイン)

このサーバーで実行されているアプリケーションは、別のサーバー上のOracleデータベースと通信します。

このサーバーには32GBのRAM=と10個のCPUがあると思います)。

Prstat -Zを実行すると、次のようになります。

   PID USERNAME  SIZE   RSS STATE  PRI Nice      TIME  CPU PROCESS/NLWP
  3836 ducm0101 2119M 2074M cpu348  58    0   8:41:56 0.5% Java/225
 24196 ducm0101 1974M 1910M sleep   59    0   4:04:33 0.4% Java/209
  6765 ducm0102 1580M 1513M cpu330   1    0   1:21:48 0.1% Java/291
 16922 ducm0102 2115M 1961M sleep   58    0   6:37:08 0.0% Java/193
 18048 root     3048K 2440K sleep   59    0   0:06:02 0.0% sa_comm/4
 26619 ducm0101 2588M 2368M sleep   59    0   8:21:17 0.0% Java/231
 19904 ducm0104 1713M 1390M sleep   59    0   1:15:29 0.0% Java/151
 27809 ducm0102 1547M 1426M sleep   59    0   0:38:19 0.0% Java/186
  2409 root       15M   11M sleep   59    0   0:00:00 0.0% pkgserv/3
 27204 root       58M   54M sleep   59    0   9:11:38 0.0% stat_daemon/1
 27256 root       12M 8312K sleep   59    0   7:16:40 0.0% kux_vmstat/1
 29367 root      297M  286M sleep   59    0  11:02:13 0.0% dsmc/2
 22128 root       13M 6768K sleep   59    0   0:10:51 0.0% sendmail/1
 22133 smmsp      13M 1144K sleep   59    0   0:01:22 0.0% sendmail/1
 22003 root     5896K  240K sleep   59    0   0:00:01 0.0% automountd/2
 22074 root     4776K 1992K sleep   59    0   0:00:19 0.0% sshd/1
 22005 root     6184K 2728K sleep   59    0   0:00:31 0.0% automountd/2
 27201 root     6248K  344K sleep   59    0   0:00:01 0.0% mount_stat/1
 20964 root     2912K  160K sleep   59    0   0:00:01 0.0% ttymon/1
 20947 root     1784K  864K sleep   59    0   0:02:22 0.0% utmpd/1
 20900 root     3048K  608K sleep   59    0   0:00:03 0.0% ttymon/1
 20979 root       77M   18M sleep   59    0   0:14:13 0.0% inetd/4
 20849 daemon   2856K  864K sleep   59    0   0:00:03 0.0% lockd/2
 17794 root       80M 1232K sleep   59    0   0:06:19 0.0% svc.startd/12
 17645 root     3080K  728K sleep   59    0   0:00:12 0.0% init/1
 17849 root       13M 6800K sleep   59    0   0:13:04 0.0% svc.configd/15
 20213 root       84M   81M sleep   59    0   0:47:17 0.0% nscd/46
 20871 root     2568K  600K sleep   59    0   0:00:04 0.0% sac/1
  3683 ducm0101 1904K 1640K sleep   56    0   0:00:00 0.0% startWebLogic.s/1
 23937 ducm0101 1904K 1640K sleep   59    0   0:00:00 0.0% startWebLogic.s/1
 20766 daemon   5328K 1536K sleep   59    0   0:00:36 0.0% nfsmapid/3
 20141 daemon   5968K 3520K sleep   59    0   0:01:14 0.0% kcfd/4
 20093 ducm0101 2000K  376K sleep   59    0   0:00:01 0.0% pfksh/1
 20797 daemon   3256K  240K sleep   59    0   0:00:01 0.0% statd/1
  6181 root     4864K 2872K sleep   59    0   0:01:34 0.0% syslogd/17
  7220 ducm0104 1268M 1101M sleep   59    0   0:36:35 0.0% Java/138
 27597 ducm0102 1904K 1640K sleep   59    0   0:00:00 0.0% startWebLogic.s/1
 27867 root       37M 4568K sleep   59    0   0:13:56 0.0% kcawd/7
 12685 ducm0101 4080K  208K sleep   59    0   0:00:01 0.0% vncconfig/1
ZONEID    NPROC  SWAP   RSS MEMORY      TIME  CPU ZONE
    42      135   22G   19G    59%  87:27:59 1.2% dsuniucm01

Total: 135 processes, 3167 lwps, load averages: 54.48, 62.50, 63.11

CPUはほとんどアイドル状態であると理解していますが、負荷平均が高く、これは私にはかなり奇妙です。メモリは問題ではないようです。

Vmstat 15を実行すると、次のようになります。

 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr s0 s1 s4 sd   in   sy   cs us sy id
 0 0 0 32531400 105702272 317 1052 126 0 0 0 0 13 13 -0 8 9602 107680 10964 1 1 98
 0 0 0 15053368 95930224 411 2323 0 0 0 0 0 0  0  0  0 23207 47679 29958 3 2 95
 0 0 0 14498568 95801960 3072 3583 0 2 2 0 0 3 3  0 21 22648 66367 28587 4 4 92
 0 0 0 14343008 95656752 3080 2857 0 0 0 0 0 3 3  0 18 22338 44374 29085 3 4 94
 0 0 0 14646016 95485472 1726 3306 0 0 0 0 0 0 0  0  0 24702 47499 33034 3 3 94

CPUはほとんどアイドル状態で、実行を待機しているプロセスはなく、スワッピングはほとんど行われていないことを理解しています。

Iostat 15を実行すると、次のようになります。

   tty        sd0           sd1           sd4           ssd0           cpu
 tin tout kps tps serv  kps tps serv  kps tps serv  kps tps serv   us sy wt id
   0  676 324  13    8  322  13    8    0   0    0  159   8    0    1  1  0 98
   1 1385   0   0    0    0   0    0    0   0    0    0   0    0    3  4  0 94
   0  584  89   6   24   89   6   25    0   0    0  332  19    0    2  1  0 97
   0  296   0   0    0    0   0    0    0   0    0    0   0    0    2  2  0 97
   1 1290  43   5   24   43   5   22    0   0    0  297  20    1    3  3  0 94

Netstat -i 15を実行すると、次のようになります。

    input   aggr26    output       input  (Total)    output
packets errs  packets errs  colls  packets errs  packets errs  colls
1500233798 0     1489316495 0     0      3608008314 0     3586173708 0     0
10646   0     10234   0     0      26206   0     25382   0     0
11227   0     10670   0     0      28562   0     27448   0     0
10353   0     9998    0     0      29117   0     28418   0     0
11443   0     12003   0     0      30385   0     31494   0     0

Swap -lを実行すると、次のようになります。

swapfile             dev  swaplo blocks   free
/dev/swap           4294967295,4294967295     16 4194288 1000656

Swap -sを実行すると、次のようになります。

total: 102575560k bytes allocated + 11141528k reserved = 113717088k used, 6692864k available

何が欠けていますか?

あなたの助けをありがとう!

5
Spiff

さらに調査したところ、パフォーマンスの問題は主に、2つのシステム(Oracle SSXAとUCM)間の多数のネットワーク呼び出しが原因であると思われます。呼び出しは高速ですが十分であり、シリアル化されているため、CPU使用率が低く(ほとんどがI/Oを待機しています)、負荷平均が高く(多くの呼び出しが処理されるのを待機しています)、特に長い応答時間(短い応答時間の累積による)です。

この問題についての洞察をありがとう!

6
Spiff

私はソラリスについて何も知りませんが、前回LinuxでCPU負荷が高く、「ps」でCPUを使用するプロセスがなかったのは、プロセスに非常にビジーなスレッドがあったためですが、psはLWPの使用量を合計していませんプロセス。

LWP(軽量プロセス、別名、スレッド)のCPU使用率を確認してみてください。

1
user368507