CPU 사용률이 적고 IO가 거의없는 높은로드 평균


17

리눅스에서 CPU를 거의 사용하지 않고 높은 평균 부하에 대한 일반적인 설명은 너무 많은 IO (또는 더 적절하게 중단 할 수 없는 휴면 )입니다.

적절한 CPU 사용 (~ 55-70 % 유휴)을 나타내지 만 IO가 거의없고, 컨텍스트 전환이 거의없고, 스와핑이없는 2 개의로드 평균보다 높은 2 코어 VM 클러스터에서 서비스를 실행하고 있습니다. 프로세스 상태 열에서 ps볼 수없는 폴링 D.

이 서비스는 유니콘에서 실행되는 루비 1.9입니다. 매우 빠른 평균 명령문 실행 (~ 0.5ms)을 제공하는 두 개의 업스트림 postgres 데이터베이스에 연결합니다. 이 서비스는 성능 테스트 네트워크에서 더 높은 스트레스 부하로 입증 된 것처럼 생산에서 약 2 배 높은 경과 시간을 기록하고 있습니다. Whack에서 보이지 않는 유일한 모니터링 신호는로드 평균 (물론 평균 응답 지속 시간)이며 다른 모든 것 (cpu, 메모리, io, 네트워크, cswitch, intr)은 공칭적이고 일치하는 예측입니다.

시스템은 Ubuntu 10.04.4 LTS "Lucid"입니다. uname은 Linux dirsvc0 2.6.32-32-server #62-Ubuntu SMP Wed Apr 20 22:07:43 UTC 2011 x86_64 GNU/Linux입니다. 하이퍼 바이저는 VMWare ESX 5.1입니다.

업데이트 : @ewwhite가 요청한 추가 정보. 스토리지는 NetApp에 ​​연결된 vm 호스트의 NFS 마운트에 매핑되는 가상 디스크 장치입니다. 모든 표시는 중대한 디스크 IO가 발생하지 않는다는 것을 나타냅니다. 이 서비스는 네트워크 소켓 (~ 200KB / s)을 읽고 쓰고 일반적인 액세스 및 오류 로깅 (약 20KB / s의 속도)을 수행합니다. vm 호스트에는 한 쌍의 기가비트 포트가 있으며 2 개의 최상위 랙 스위치로 연결되며 각 기가비트 포트는 4 개의 기가비트 포트를 모두 구리로 코어 라우터에 다시 연결합니다. 각 vm 호스트에는 24 (4x6) 물리적 코어와 150GB의 메모리가 있으며 일반적으로 다양한 서비스를 실행하는 비슷한 크기의 vm 게스트 약 30 개를 호스트합니다. 프로덕션 환경에서 이러한 호스트는 메모리에서 오버 커밋되지 않으며 CPU에서는 약간만 커밋됩니다.

고부하를 설명하는 아이디어를 환영합니다.

다음은 오늘 정오 2 시간 창에서 sar 데이터를 추출한 것입니다.

sar -q #로드 평균

              runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
12:05:01 PM         1       173      1.15      2.41      2.48
12:15:01 PM         0       173      0.96      1.56      1.99
12:25:01 PM         2       173      2.60      2.49      2.21
12:35:01 PM         1       173      1.44      2.10      2.06
12:45:01 PM         0       173      3.66      3.31      2.56
12:55:01 PM         0       173      3.05      2.66      2.43
01:05:01 PM         0       174      1.37      2.35      2.36
01:15:01 PM         0       173      3.06      3.07      2.60
01:25:01 PM         2       173      5.03      6.50      4.50
01:35:01 PM         0       173      4.26      5.61      4.98
01:45:01 PM         8       173      4.61      4.46      4.48
01:55:01 PM         0       173      3.30      3.60      3.92
02:05:01 PM         1       173      2.51      2.62      3.15

sar # CPU

                CPU     %user     %nice   %system   %iowait    %steal     %idle
12:05:01 PM     all     31.31      0.60      2.18      0.02      0.00     65.89
12:15:01 PM     all     27.51      0.60      2.07      0.02      0.00     69.79
12:25:01 PM     all     28.09      0.61      1.90      0.03      0.00     69.36
12:35:01 PM     all     32.04      0.67      2.26      0.02      0.00     65.02
12:45:01 PM     all     33.44      0.69      2.61      0.02      0.00     63.24
12:55:01 PM     all     30.62      0.63      2.14      0.02      0.00     66.59
01:05:01 PM     all     29.42      0.61      2.07      0.03      0.00     67.87
01:15:01 PM     all     31.93      0.62      2.39      0.02      0.00     65.05
01:25:01 PM     all     41.60      0.82      3.65      0.03      0.00     53.90
01:35:01 PM     all     43.14      0.88      3.68      0.03      0.00     52.28
01:45:01 PM     all     38.38      0.79      3.43      0.02      0.00     57.39
01:55:01 PM     all     30.65      0.61      2.23      0.03      0.00     66.49
02:05:01 PM     all     29.17      0.58      2.10      0.03      0.00     68.12

sar -d # 디스크

                  DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util 
12:05:01 PM    dev8-0      1.37      0.00     35.94     26.14      0.00      3.09      1.98      0.27
12:15:01 PM    dev8-0      1.65      0.00     39.89     24.23      0.00      2.96      1.98      0.33
12:25:01 PM    dev8-0      1.26      0.00     33.39     26.57      0.00      2.89      1.79      0.22
12:35:01 PM    dev8-0      1.33      0.00     35.23     26.52      0.00      3.15      1.82      0.24
12:45:01 PM    dev8-0      1.68      0.00     42.31     25.23      0.00      2.95      1.89      0.32
12:55:01 PM    dev8-0      1.44      0.00     35.76     24.86      0.00      3.20      1.88      0.27
01:05:01 PM    dev8-0      1.43      0.00     35.57     24.93      0.00      2.17      1.46      0.21
01:15:01 PM    dev8-0      1.74      0.00     43.13     24.74      0.01      3.88      2.15      0.37
01:25:01 PM    dev8-0      1.39      0.00     35.36     25.44      0.01      3.65      2.42      0.34
01:35:01 PM    dev8-0      1.32      0.00     33.74     25.65      0.00      3.39      2.09      0.28
01:45:01 PM    dev8-0      1.48      0.00     37.20     25.20      0.01      3.92      2.26      0.33
01:55:01 PM    dev8-0      1.62      0.00     39.36     24.35      0.01      3.27      1.70      0.27
02:05:01 PM    dev8-0      1.42      0.00     34.72     24.51      0.00      3.28      2.13      0.30

sar -n # 네트워크

                IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
12:05:01 PM      eth0    365.52    359.86    236.91    227.35      0.00      0.00      0.00
12:15:01 PM      eth0    344.55    337.10    221.20    206.47      0.00      0.00      0.00
12:25:01 PM      eth0    357.81    352.76    229.83    216.22      0.00      0.00      0.00
12:35:01 PM      eth0    372.62    366.34    239.95    227.99      0.00      0.00      0.00
12:45:01 PM      eth0    388.65    378.51    252.11    235.81      0.00      0.00      0.00
12:55:01 PM      eth0    364.50    359.19    233.63    222.82      0.00      0.00      0.00
01:05:01 PM      eth0    361.08    353.88    231.75    218.89      0.00      0.00      0.00
01:15:01 PM      eth0    370.41    363.19    240.53    224.16      0.00      0.00      0.00
01:25:01 PM      eth0    357.67    352.20    230.37    213.57      0.00      0.00      0.00
01:35:01 PM      eth0    354.89    348.58    226.29    214.61      0.00      0.00      0.00
01:45:01 PM      eth0    355.49    344.98    228.41    211.27      0.00      0.00      0.00
01:55:01 PM      eth0    335.96    331.13    213.85    204.26      0.00      0.00      0.00
02:05:01 PM      eth0    323.03    314.49    208.12    194.81      0.00      0.00      0.00

sar -w # 컨텍스트 스위치

               proc/s   cswch/s
12:05:01 PM      0.97   2382.38
12:15:01 PM      2.58   2415.16
12:25:01 PM      0.84   2406.79
12:35:01 PM      0.84   2371.04
12:45:01 PM      2.70   2414.09
12:55:01 PM      0.84   2385.57
01:05:01 PM      1.20   2419.94
01:15:01 PM      2.57   2387.75
01:25:01 PM      0.85   2164.65
01:35:01 PM      0.84   2156.29
01:45:01 PM      2.53   2251.43
01:55:01 PM      1.01   2331.93
02:05:01 PM      0.96   2323.19

sar -B # 페이징

             pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
12:05:01 PM      0.00     17.97    549.43      0.00    289.21      0.00      0.00      0.00      0.00
12:15:01 PM      0.00     19.95   1179.08      0.00    405.61      0.00      0.00      0.00      0.00
12:25:01 PM      0.00     16.69    456.71      0.00    217.63      0.00      0.00      0.00      0.00
12:35:01 PM      0.00     17.61    480.42      0.00    240.01      0.00      0.00      0.00      0.00
12:45:01 PM      0.00     21.15   1210.09      0.00    424.96      0.00      0.00      0.00      0.00
12:55:01 PM      0.00     17.88    489.83      0.00    256.39      0.00      0.00      0.00      0.00
01:05:01 PM      0.00     17.79    624.89      0.00    387.26      0.00      0.00      0.00      0.00
01:15:01 PM      0.00     21.57   1168.87      0.00    393.34      0.00      0.00      0.00      0.00
01:25:01 PM      0.00     17.68    466.03      0.00    235.07      0.00      0.00      0.00      0.00
01:35:01 PM      0.00     16.87    435.24      0.00    199.43      0.00      0.00      0.00      0.00
01:45:01 PM      0.00     18.60   1125.69      0.00    432.85      0.00      0.00      0.00      0.00
01:55:01 PM      0.00     19.68    596.62      0.00    272.75      0.00      0.00      0.00      0.00
02:05:01 PM      0.00     17.36    511.80      0.00    243.83      0.00      0.00      0.00      0.00

sar -r # 메모리

            kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
12:05:01 PM   1017364   3041608     74.94    225564   1773324   1194728     16.64
12:15:01 PM   1014992   3043980     74.99    225564   1777268   1193688     16.63
12:25:01 PM   1009504   3049468     75.13    225564   1781360   1194504     16.64
12:35:01 PM    999484   3059488     75.38    225564   1785652   1194520     16.64
12:45:01 PM    994764   3064208     75.49    225564   1790136   1194864     16.65
12:55:01 PM    993772   3065200     75.52    225564   1794288   1194296     16.64
01:05:01 PM    993868   3065104     75.51    225564   1798584   1193428     16.63
01:15:01 PM    985016   3073956     75.73    225564   1802708   1194388     16.64
01:25:01 PM    992316   3066656     75.55    225564   1806804   1192996     16.62
01:35:01 PM    971732   3087240     76.06    225564   1810784   1194272     16.64
01:45:01 PM    968816   3090156     76.13    225564   1815036   1194556     16.64
01:55:01 PM    967968   3091004     76.15    225564   1818716   1194924     16.65
02:05:01 PM    966324   3092648     76.19    225564   1822452   1194516     16.64

ps aufx

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         2  0.0  0.0      0     0 ?        S    Jan28   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Jan28   0:01  \_ [migration/0]
root         4  0.0  0.0      0     0 ?        S    Jan28   1:01  \_ [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [watchdog/0]
root         6  0.0  0.0      0     0 ?        S    Jan28   0:01  \_ [migration/1]
root         7  0.0  0.0      0     0 ?        S    Jan28   0:27  \_ [ksoftirqd/1]
root         8  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [watchdog/1]
root         9  0.0  0.0      0     0 ?        S    Jan28   0:37  \_ [events/0]
root        10  0.0  0.0      0     0 ?        S    Jan28   0:33  \_ [events/1]
root        11  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [cpuset]
root        12  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [khelper]
root        13  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [async/mgr]
root        14  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [pm]
root        16  0.0  0.0      0     0 ?        S    Jan28   0:02  \_ [sync_supers]
root        17  0.0  0.0      0     0 ?        S    Jan28   0:04  \_ [bdi-default]
root        18  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kintegrityd/0]
root        19  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kintegrityd/1]
root        20  0.0  0.0      0     0 ?        S    Jan28   0:03  \_ [kblockd/0]
root        21  0.0  0.0      0     0 ?        S    Jan28   0:12  \_ [kblockd/1]
root        22  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kacpid]
root        23  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kacpi_notify]
root        24  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kacpi_hotplug]
root        25  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [ata/0]
root        26  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [ata/1]
root        27  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [ata_aux]
root        28  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [ksuspend_usbd]
root        29  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [khubd]
root        30  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kseriod]
root        31  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kmmcd]
root        34  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [khungtaskd]
root        35  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kswapd0]
root        36  0.0  0.0      0     0 ?        SN   Jan28   0:00  \_ [ksmd]
root        37  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [aio/0]
root        38  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [aio/1]
root        39  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [ecryptfs-kthrea]
root        40  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [crypto/0]
root        41  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [crypto/1]
root        44  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [pciehpd]
root        45  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [scsi_eh_0]
root        46  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [scsi_eh_1]
root        47  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kstriped]
root        50  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kmpathd/0]
root        51  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kmpathd/1]
root        52  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kmpath_handlerd]
root        53  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [ksnapd]
root        54  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kondemand/0]
root        55  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kondemand/1]
root        56  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kconservative/0]
root        57  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kconservative/1]
root       213  0.0  0.0      0     0 ?        S    Jan28   0:24  \_ [mpt_poll_0]
root       274  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [mpt/0]
root       295  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [scsi_eh_2]
root       310  0.0  0.0      0     0 ?        S    Jan28   1:41  \_ [jbd2/sda1-8]
root       311  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [ext4-dio-unwrit]
root       312  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [ext4-dio-unwrit]
root       342  0.0  0.0      0     0 ?        S    Jan28   0:54  \_ [flush-8:0]
root       627  0.0  0.0      0     0 ?        S    Jan28   0:00  \_ [kpsmoused]
root     18160  0.0  0.0      0     0 ?        S    Feb14   0:00  \_ [rpciod/0]
root     18161  0.0  0.0      0     0 ?        S    Feb14   0:00  \_ [rpciod/1]
root     18162  0.0  0.0      0     0 ?        S    Feb14   0:00  \_ [nfsiod]
root         1  0.0  0.0  61824  2872 ?        Ss   Jan28   0:11 /sbin/init
root       372  0.0  0.0  16904   860 ?        S    Jan28   0:00 upstart-udev-bridge --daemon
root       375  0.0  0.0  17072  1012 ?        S<s  Jan28   0:00 udevd --daemon
root      1054  0.0  0.0  16860   672 ?        S<   Jan28   0:00  \_ udevd --daemon
root     18163  0.0  0.0  17068   832 ?        S<   Feb14   0:00  \_ udevd --daemon
daemon     654  0.0  0.0   8256   644 ?        Ss   Jan28   0:00 portmap
root       788  0.0  0.0  49260  2592 ?        Ss   Jan28   0:00 /usr/sbin/sshd -D
root      8095  0.0  0.1 100888  4068 ?        Ss   16:03   0:00  \_ sshd: root@pts/0    
root      8157  0.0  0.0  11212  2084 pts/0    Ss   16:03   0:00      \_ -bash
root     15777  0.0  0.0   7172  1084 pts/0    R+   17:28   0:00          \_ ps aufx
statd      808  0.0  0.0  10392   844 ?        Ss   Jan28   0:00 rpc.statd -L
root       829  0.0  0.0    140    32 ?        Ss   Jan28   0:16 runsvdir -P /etc/service log: .....................................................................................................
root       834  0.0  0.0    116    32 ?        Ss   Jan28   0:00  \_ runsv chef-client
root       838  0.0  0.0    136    48 ?        S    Jan28   0:00      \_ svlogd -tt ./main
root     30898  0.2  1.8 192296 75736 ?        S    01:57   2:25      \_ /usr/bin/ruby1.8 /usr/bin/chef-client -i 1800 -s 60 -L /var/log/chef/client.log
root       832  0.0  0.0   6080   656 tty4     Ss+  Jan28   0:00 /sbin/getty -8 38400 tty4
root       841  0.0  0.0   6080   656 tty5     Ss+  Jan28   0:00 /sbin/getty -8 38400 tty5
root       844  0.0  0.0   6080   656 tty2     Ss+  Jan28   0:00 /sbin/getty -8 38400 tty2
root       845  0.0  0.0   6080   660 tty3     Ss+  Jan28   0:00 /sbin/getty -8 38400 tty3
root       847  0.0  0.0   6080   656 tty6     Ss+  Jan28   0:00 /sbin/getty -8 38400 tty6
root       849  0.0  0.0  21076  1044 ?        Ss   Jan28   0:04 cron
daemon     853  0.0  0.0  18884   468 ?        Ss   Jan28   0:00 atd
root       864  0.0  0.0  11284   640 ?        Ss   Jan28   2:10 /usr/sbin/irqbalance
root       890  0.0  0.0 112412  1908 ?        Ssl  Jan28   5:09 /usr/sbin/automount
root       908  0.0  0.0  28016   976 ?        Ss   Jan28   0:00 nginx: master process /usr/sbin/nginx
www-data   910  0.0  0.0  64532  3064 ?        S    Jan28   0:00  \_ nginx: worker process
root       922  0.0  0.0 169668  2584 ?        Ssl  Jan28   0:34 /usr/sbin/nscd
mail       943  0.0  0.0  11888   648 ?        S    Jan28   0:00 /usr/sbin/nullmailer-send -d
root       971  0.0  1.1 152036 46264 ?        Sl   Jan28  36:07 splunkd -p 8089 start
root       972  0.0  0.0  49180  3512 ?        Ss   Jan28   0:00  \_ splunkd -p 8089 start
root      1160  0.0  0.0  14888  1276 ?        Ss   Jan28  19:31 /usr/lib/vmware-tools/sbin64/vmware-guestd --background /var/run/vmware-guestd.pid
ntp       1214  0.0  0.0  19700  1268 ?        Ss   Jan28   1:21 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -c /var/lib/ntp/ntp.conf.dhcp -u 103:107
root      1231  0.0  0.3  21164 12980 ?        SLs  Jan28   0:00 /usr/sbin/memlockd -u memlockd
scs       1270  1.2  2.3 187788 96228 ?        SNl  Jan28 537:27 /usr/bin/ruby /opt/wp/roles/scs/src/dev/scs/bin/server.rb -p 8843
root      1309  0.0  0.0   6080   656 tty1     Ss+  Jan28   0:00 /sbin/getty -8 38400 tty1
dirsvc   27448  0.1  1.2 177408 50748 ?        Sl   Feb20   8:57 narwhal master --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.19/confi
dirsvc   13003  2.5  1.2 180012 49128 ?        Sl   16:57   0:47  \_ narwhal worker[1] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.1
dirsvc   13460  2.5  1.2 180108 49236 ?        Sl   17:05   0:36  \_ narwhal worker[9] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.1
dirsvc   13637  2.4  1.2 180008 49096 ?        Sl   17:08   0:29  \_ narwhal worker[3] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.1
dirsvc   13650  2.9  1.2 180172 49420 ?        Sl   17:08   0:35  \_ narwhal worker[11] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.
dirsvc   13701  3.1  1.2 180172 49188 ?        Sl   17:10   0:35  \_ narwhal worker[13] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.
dirsvc   13731  2.7  1.2 181556 50628 ?        Sl   17:10   0:29  \_ narwhal worker[7] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.1
dirsvc   13770  2.8  1.2 179400 50352 ?        Sl   17:11   0:29  \_ narwhal worker[8] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.1
dirsvc   13778  3.3  1.2 180104 49172 ?        Sl   17:11   0:34  \_ narwhal worker[5] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.1
dirsvc   13826  2.6  1.2 181556 50672 ?        Sl   17:12   0:25  \_ narwhal worker[0] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.1
dirsvc   13939  2.8  1.2 177948 48848 ?        Sl   17:13   0:25  \_ narwhal worker[4] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.1
dirsvc   13971  3.2  1.4 189052 58292 ?        Sl   17:13   0:28  \_ narwhal worker[12] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.
dirsvc   13982  2.5  1.2 177792 48780 ?        Sl   17:14   0:22  \_ narwhal worker[6] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.1
dirsvc   15316  3.0  1.2 180072 49128 ?        Sl   17:20   0:15  \_ narwhal worker[2] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.1
dirsvc   15381  2.0  1.2 179944 48928 ?        Sl   17:21   0:08  \_ narwhal worker[14] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.
dirsvc   15743  3.5  1.1 177624 48596 ?        Sl   17:28   0:00  \_ narwhal worker[10] --port 8862 -c /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.
dirsvc   27461  0.1  1.3 235884 54744 ?        Sl   Feb20   9:20 /opt/ruby-1.9.2/bin/ruby /opt/wp/roles/directory/src/dev/directory/vendor/bundle/ruby/1.9.1/gems/wp-directory-svc-2.1.19/gem-bin/wo
root     11068  0.0  0.0 130480  1720 ?        Sl   04:20   0:00 rsyslogd -c4
zabbix   18062  0.0  0.0   9908   728 ?        SN   11:41   0:00 /usr/sbin/zabbix_agentd
zabbix   18063  0.0  0.0   9908   756 ?        SN   11:41   0:12  \_ /usr/sbin/zabbix_agentd
zabbix   18064  0.0  0.0   9980  1044 ?        SN   11:41   0:03  \_ /usr/sbin/zabbix_agentd
zabbix   18065  0.0  0.0   9980  1044 ?        SN   11:41   0:03  \_ /usr/sbin/zabbix_agentd
zabbix   18066  0.0  0.0   9980  1044 ?        SN   11:41   0:03  \_ /usr/sbin/zabbix_agentd
zabbix   18067  0.0  0.0   9908   660 ?        SN   11:41   0:00  \_ /usr/sbin/zabbix_agentd

편집 : 요청에 의한 추가 정보 :

$ dpkg --get-selections | grep vmware
vmware-open-vm-tools-common         install
vmware-open-vm-tools-kmod-2.6.32-32-server  install

$ cat /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 44
model name  : Intel(R) Xeon(R) CPU           X5660  @ 2.80GHz
stepping    : 2
cpu MHz     : 2800.099
cache size  : 12288 KB
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm ida arat
bogomips    : 5600.19
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 44
model name  : Intel(R) Xeon(R) CPU           X5660  @ 2.80GHz
stepping    : 2
cpu MHz     : 2800.099
cache size  : 12288 KB
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm ida arat
bogomips    : 5600.19
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

기본 스토리지, 연결 매체, 하드웨어, VMware 버전, VMware Tools 설치 여부 등에 대한 언급은 무시했습니다.
— ewwhite

@ewwhite 님이 요청한 정보를 추가했습니다. (세계가 너무 커서 설명 할 수 없기 때문에 "등"에 대답 할 수 없다는 점을 제외하고 :)
— dbenhur

3 년 후,이 서비스와 호스팅 아키텍처는 오래 전부터 사라졌지 만 수수께끼의 문제는 남아 있습니다. 필자는 최근 Linux 스케줄러 버그에 대한이 백서를 읽고 vm 실행과 이러한 버그의 상호 작용이 범인 이었는지 궁금합니다. ece.ubc.ca/~sasha/papers/eurosys16-final29.pdf
— dbenhur

인터넷 검색 시이 Q가 나오기 때문에 Brendan Gregg의 Linux "로드 평균"에 대한 훌륭한 기사에 대한 링크를 남기고 싶습니다 .
— Nickolay

답변:


11

로드 평균은 실행 큐에서 대기중인 프로세스를 기반으로합니다. 즉, 소수 시간 조각을 사용하는 프로세스가있는 경우 CPU 사용률이 높지 않아도로드 평균이 높습니다.

가장 좋은 예는 메일입니다. 메시지를 보내는 데 필요한 CPU 시간은 매우 제한적이지만 수천 개의 메일 조각이 시스템 주위로 이동하는 경우 (특히 메일 데몬이 포크로 처리하는 경우) 실행 큐가 매우 길어집니다. 일반적으로로드 평균 25, 50 ~ 100 이상의로드 및 메일 서버가 제대로 작동하는 것이 일반적입니다.

웹 서버의 경우 페이지 응답 시간을 기본 메트릭으로 사용하고로드 평균에 대해 걱정하지 마십시오. 최신 스케줄러에서 평균 코어 수의 두 배 미만의로드는 일반적으로 부정적인 영향을 미치지 않습니다. VM 당 코어 수와 총 VM 수를 실험 해 볼 수 있습니다. 일부 응용 프로그램은 몇 대의 컴퓨터에서 많은 코어의 이점을 얻을 수 있고 다른 응용 프로그램은 적은 수의 코어와 많은 인스턴스에서 더 좋습니다.


1
답변 주셔서 감사합니다. "분수 시간 조각"은 무엇입니까? 스케줄러를 이해하면 프로세스가 CPU에 할당되어 다음 예약 간격까지 또는 시스템을 차단하는 블로킹 시스템 호출을 할 때까지 해당 CPU에서 실행됩니다. 내 CPU는 70 %의 유휴 상태이지만 실행 대기열 길이는 평균 2 이상입니다.이 즉시 실행 가능한 프로세스가 대부분 유휴 CPU에 예약되지 않는 이유는 무엇입니까?
— dbenhur

웹 서버는 아니지만 웹 서비스라고 덧붙입니다. 요청을 수신 및 역 직렬화, 업스트림 서비스 / 데이터베이스로 디스패치 수행, 업스트림의 응답을 기반으로 결과 계산, 응답 직렬화, 로그 낙서 msg. 평균 요청 지속 시간 ~ 60ms, 90 % 200ms, 99 % 500ms +. 우리는 비슷한 vm 컨테이너에서 유사한 프로파일을 가진 많은 다른 서비스를 가지고 있는데, 이는로드와 CPU % 사이에서 이러한 연결 끊김을 나타내지 않습니다.
— dbenhur

리눅스는 가상 CPU에 대해서만 일정을 계획하고 있으며 ESX는 자체 알고리즘을 통해 실제 CPU에 예약합니다. 비교 가능한 vm은 얼마나 유사합니까? 다른 부하에 대해 매우 유사한 CPU? 동일한 메모리 사용량?
— Matt

@mindthemonkey VM에는 최소한 12 가지의 서로 다른 서비스가 있습니다. 일부는 실질적으로 다른 프로파일을 가지고 있지만 대부분은이 서비스와 매우 유사합니다. 4GB mem, 2 virt cpus, 보통 IO (대부분 네트워크 및 기본 로깅)는 일일 곡선을 통해 30-60 % CPU utlization을 실행합니다. IO 및 / 또는 메모리 집약적 노드 (DB, SOLR)는 전용 호스트를 얻습니다. 이러한 다른 서비스 vm의 대부분은 cpu %와로드 사이의 예상 상관 관계를 보여줍니다 (적어도 100 %에서 건강하게 떨어져있는 한).
— dbenhur 2019

@mindthemonkey 게스트 스케줄러가 virt cpu 만 제어하고 ESX가 더 큰 컨텍스트에서 스케줄링하는 동안 이것이 cpu % 및 부하 계산에 실제로 미치는 영향을 알 수 없습니다. 둘 다 일정 빈도로 수집 한 샘플을 기반으로하며 게스트가 하이퍼 바이저 예약에 의해 선점 된 정도까지 실제 작업이 수행되는 슬라이스와 게스트가 샘플을 가져 오는 슬라이스에 모두 영향을 미칩니다.
— dbenhur 2019

1

실제 쉘 평균을 모니터하기 위해 다음 쉘 명령을 사용하면이 현상에 대해 다른 견해를 가질 수 있습니다. procs_running이 예상보다 훨씬 높을 수 있습니다.

while true; do cat /proc/loadavg ; cat /proc/stat| grep procs; done

1

VM에서 성능 문제가 발생하면 먼저 관리자 측과 VM 모두에서 문제에 접근해야합니다. 명심해야 할 또 다른 사항은 VM의 시간 관리가 정확하지 않다는 것입니다. 이는 VM에서 측정 된 통계가 올바르지 않을 수도 있음을 의미합니다.

이 VM의 CPU 및 I / O 통계는 무엇입니까? CPU 준비 카운터에주의하십시오-5 % 미만이어야합니다. 어떤 버전의 ESX를 실행하고 있습니까? 테스트 및 제작에서 하드웨어 아키텍처는 무엇입니까?

VM에서는 perf 를 사용하여 응용 프로그램에서 커널까지 모든 것을 프로파일 링 하고 불꽃 그래프로 출력을 시각화 할 수 있습니다


5 년 전 문제를 해결하기 위해 시간을내어 주셔서 감사합니다. 문제의 시스템과 소프트웨어는 더 이상 일하지 않는 회사에 속하며 VM 스택과 해당 서비스는 더 이상 운영되지 않습니다. :) 원래 질문에 이미 많은 CPU 및 IO 정보가 게시되어 있습니다. 성능과 화염 사진에 관한 Brendan의 공개 작업과 박람회는이 질문을 1 년 이상 발표했습니다.
— dbenhur

1
문제 없어요. 아마도 누군가에게 유용 할 것입니다.
— Mircea Vutcovici

0

그것은 특히 높은 평균 부하처럼 들리지 않습니다. 추적 iotop하려면 작업에 가장 적합한 도구 일 것입니다.


iotop지루한 모든 것을 약 0 말한다
— dbenhur

CPU 수를 초과하는 평균로드는 CPU를 실행하는 것보다 실행 대기중인 프로세스가 더 많다는 것을 의미합니다. 2.0보다 많은 간격과 4에서 6.5까지의 여러 la-5가 보입니다. 이것은 종종 다른 프로세스보다 CPU에 지연되는 프로세스를 가지고 있으며 CPU 용량 부족으로 원치 않는 대기 시간을 의미합니다. 나는 일반적으로 시스템이 100 % CPU 포화 상태에 도달하기 시작할 때까지로드 평균과 CPU %가 서로 연관 될 것으로 예상합니다. 그 후로드 평균은 100 % 사용 중이 아니라 시스템이 과도하게 커밋 된 정도를 나타 내기 때문에 더 나은 신호입니다.
— dbenhur 2013

0

나는 당신과 매우 비슷한 시나리오를 다루었습니다. 필자의 경우 문제가되는 VM 블록 장치의 IO 스케줄러를 NOOP 스케줄러로 변경 한 후로드 평균이 떨어졌습니다. 이 스케줄러는 하이퍼 바이저가 자체 IO 스케줄링 알고리즘을 적용 할 때 잘 작동하는 FIFO 대기열입니다. 두 번 다시 주문할 필요가 없습니다.

그 말로, 문제가있는 VM에서 여전히 느린 키보드 이벤트를 처리하고 있으므로 실제 문제를 해결하지 않고 높은 평균 부하 만 제거했다고 생각합니다. 근본 원인을 찾으면이 답변을 확실히 업데이트 할 것입니다.

사용 가능한 스케줄러 (및 사용중인 [스케줄러])를 나열하십시오.

cat /sys/block/sdX/queue/scheduler
noop anticipatory deadline [cfq]

다음과 같이 변경하십시오.

echo noop > /sys/block/sdX/queue/scheduler

지속적으로 유지하려면 elevator=noopVM의 커널 부팅 매개 변수 에 추가 해야합니다.


-2

로드 평균은 CPU를 기다리는 실행 가능한 프로세스 수입니다. I / O를 기다리는 프로세스는 전혀 계산되지 않습니다. "일반적인 설명"은 잘못되었다.


3
Linux는로드 계산시 해석 할 수없는 절전 상태의 프로세스를 포함합니다. 이러한 프로세스는 일반적인 프로세스 검사 도구에서 상태 'D'로 표시됩니다. 이 상태는 일반적으로 디스크 또는 네트워크 IO를 기다리는 장치 드라이버가 사용합니다. "일반적인 설명"은 리눅스에서는 사실이지만 다른 유닉스에서는 그렇지 않습니다.
— dbenhur 2019


1
주석은 앞서 그는 또한 최근에 방법에 대한 몇 가지 멋진 고고학했던 것을 생각 나게 브렌든 그레그의 일부 성능 작업 참조 무정전 수면 리눅스의로드 평균에 상처
— dbenhur
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.