Mütevazı CPU Kullanımı ve neredeyse hiç IO olmayan Yüksek Yük Ortalaması


17

Linux altında az cpu kullanımı ile yüksek yük ortalaması için olağan açıklama çok fazla IO'dur (veya daha düzgün kesintisiz uyku ).

Mütevazı CPU kullanımı (~% 55-70 boşta) gösteren ancak sıfır IO, mütevazı bağlam anahtarları ve takas yokken 2 yük ortalamasından daha yüksek olan 2 çekirdekli VM'lerin bir kümesinde çalışan bir hizmetim var. Yoklama ile pshiçbir zaman Dişlem durumu sütununda göremiyorum .

Tek boynuzlu at altında çalışan yakut 1.9 hizmetidir. Çok hızlı ortalama deyim yürütmeleri (~ 0.5ms) sağlayan iki adet yukarı akış postgres veritabanına bağlanır. Hizmet, performans test ağımızda daha yüksek stres yükü altında gösterilenden yaklaşık iki kat daha fazla üretimde geçen talep sürelerini günlüğe kaydediyor. Patlama dışında görünen tek izleme sinyali yük ortalaması (ve elbette ortalama yanıt süresi), diğer her şey (cpu, bellek, io, ağ, cswitch, intr) nominal ve eşleşen projeksiyonlardır.

Sistem Ubuntu 10.04.4 LTS "Lucid" dir. uname is Linux dirsvc0 2.6.32-32-server #62-Ubuntu SMP Wed Apr 20 22:07:43 UTC 2011 x86_64 GNU/Linux. Hipervizör VMWare ESX 5.1'dir.

GÜNCELLEME: @ewwhite tarafından istenen daha fazla bilgi. Depolama alanı, bir NetApp'a bağlı vm ana bilgisayarındaki bir NFS yuvasına eşlenen bir sanal disk aygıtıdır. Tüm göstergelerin önemli bir disk IO'su olmadığına dikkat çekeceğim. Hizmet, ağ soketlerini (~ 200KB / s) okur ve yazar ve normal erişim ve hata günlüğü yapar (yaklaşık 20KB / s hızında). Vm konağında, her biri dört gigabit bağlantı noktasını tüm bakır bir çekirdek yönlendiriciye bağlayan iki raf anahtarının üst kısmına giden bir çift gigabit bağlantı noktası vardır. Her vm ana bilgisayarı 24 (4x6) fiziksel çekirdeğe ve 150 GB belleğe sahiptir ve genellikle çeşitli farklı hizmetler çalıştıran yaklaşık 30 benzer büyüklükte vm misafirine ev sahipliği yapar. Üretimde bu ana bilgisayarlar asla belleğe aşırı bağlı değildir ve cpu üzerinde sadece mütevazı bir şekilde aşırı taahhüt edilmiştir.

Yüksek yükü açıklamak için fikirleri memnuniyetle karşılarım.

İşte bugün öğlen iki saatlik bir pencereden sar verileri:

sar -q # yük ortalaması

              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 # disk

                  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 # ağ

                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 # bağlam anahtarları

               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 # sayfalama

             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 # bellek

            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

EDIT: İsteğe göre daha fazla bilgi:

$ 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:

Alttaki depolama, VMware Tools, vb yüklü olup olmadığını bağlantı ortamı, donanım, VMware sürümü, hakkında hiçbir şey belirtmeyi ihmal
ewwhite

@ewwhite istenen bilgi ekledi. Dünya tam tarif etmek çok büyük olduğundan (hariç ben "vs." cevap veremez :).
dbenhur

Üç yıl sonra, bu hizmet ve barındırma mimarisi çoktan gitti, ancak şaşırtıcı soru devam ediyor. Son zamanlarda bu makaleyi Linux zamanlayıcı hataları hakkında okudum ve bu hataların vm yürütme ile etkileşiminin suçlu olup olmadığını merak ediyorum. ece.ubc.ca/~sasha/papers/eurosys16-final29.pdf
dbenhur

Googling'de bu Q ortaya çıktığından, yük ortalamalarının en kapsamlı açıklamasına (ve bunun yerine hangi metriklere bakmak) sahip olan Brendan Gregg'in Linux "yük ortalamaları" hakkındaki mükemmel makalesine bir bağlantı bırakmak istiyorum .
Nickolay

Yanıtlar:


11

Yük ortalaması, çalışma kuyruğunda bekleyen işlemlere dayanır. Bu, kesirli zaman dilimlerini sıklıkla kullanan işlemleriniz varsa, yüksek CPU kullanımı olmadan yüksek yük ortalamasını görebileceğiniz anlamına gelir.

Bunun en iyi örneği postadır. İleti göndermek için gereken CPU süresi çok sınırlıdır, ancak binlerce posta sistem çevresinde hareket ettiğinde (özellikle posta arka plan programı her birini işlemek için çatallar) çalışma kuyruğu çok uzun olur. 25, 50 ila 100 yük ortalamalarına sahip iyi işleyen, duyarlı posta sunucularını görmek yaygındır.

Bir web sunucusu için birincil metrik olarak sayfa yanıt süresini kullanırdım, yük ortalaması konusunda endişelenmeyin. Modern zamanlayıcılar altında, çekirdek sayısının iki katından daha az olan yük yükünün genellikle olumsuz bir etkisi olmayacaktır. Toplam VM sayısına karşılık VM başına çekirdek sayısı ile deneme yapmak isteyebilirsiniz. Bazı uygulamalar birkaç makinede birçok çekirdekten faydalanırken, diğerleri az sayıda çekirdekte ve birçok durumda daha iyidir.


1
Yanıtınız için teşekkürler. "Kesirli zaman dilimi" ne oluşturur? Zamanlayıcıyı anladığım gibi, bir işlem bir cpu'ya atanır ve bir sonraki zamanlama aralığına kadar veya bir engelleme sistemi çağrısı yapana kadar bu cpu üzerinde çalışır. Benim cpu zamanın% 70'i boşta ama benim çalışma kuyruğum uzunlukları ortalama 2, beni şaşırttı, neden bu çalıştırılmaya hazır süreçler çoğunlukla boşta cpus için planlanmıyor?
dbenhur

Bunun bir web sunucusu olmasa da bir web sunucusu olduğunu eklerim. Çalıştırdığımız benzer hizmetlerin bir demetine benzer bir yürütme profili var: bir istek almak ve serisini kaldırmak, yukarı akış hizmetlerine / veritabanlarına bazı gönderim yapmak, yukarı akışlardan gelen cevaplara dayanarak bir sonuç hesaplamak, bir yanıtı serileştirmek, bir günlük yazmak msj. Ortalama istek süresi ~ 60ms,% 90 200ms,% 99 500ms +. Yük ve CPU% 'si arasında bu bağlantıyı göstermeyen benzer vm kaplarında çalışan benzer profillere sahip bir dizi hizmetimiz var.
dbenhur

Linux sadece sanal bir cpu için zamanlama kadar ilerliyor, ESX daha sonra kendi algoritmaları aracılığıyla gerçek bir cpu için zamanlıyor. Karşılaştırılabilir vm'ler ne kadar benzer? Farklı yük için çok benzer CPU? Aynı bellek kullanımı?
Matt

@mindthemonkey Sanal makinelerde en az birkaç düzine farklı hizmet var. Bazılarının oldukça farklı profilleri vardır, ancak çoğunluğu bu hizmete oldukça benzemektedir. 4GB mem, 2 virt cpus, mütevazı IO (çoğunlukla ağ ve temel kayıt), günlük eğri üzerinden% 30-60 işlemci kullanımı. IO ve / veya bellek yoğun düğümler (DB'ler, SOLR) özel ana bilgisayarlar alır. Bu diğer hizmet vm'lerinin çoğu, cpu% ve yük arasında beklenen korelasyonu gösterir (en azından% 100'den sağlıklı kaldıkları sürece).
dbenhur

mindthemonkey konuk zamanlayıcı sadece virt cpu kontrol ederken ve ESX daha geniş bağlamda zaman planlaması yaparken, bunun cpu% ve yük muhasebesini nasıl önemli ölçüde etkilediğini görmüyorum. Her ikisi de belirli bir sıklıkta alınan numunelere ve misafirin hem gerçek işin yapıldığı dilimleri hem de konuğun örneklerini aldığı dilimleri etkileyecek olan hipervizör planlaması tarafından önceden kullanıldığı ölçüde dayanır.
dbenhur

1

Gerçek yük ortalamasını izlemek için aşağıdaki kabuk komutlarını kullanırsak, bu olay hakkında farklı görüşlere sahip olabiliriz. procs_running beklediğimizden çok daha yüksek olabilir.

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

1

Bir sanal makinede bir performans sorununuz olduğunda, soruna hem denetçi tarafından hem de sanal makineden yaklaşmanız gerekir. Akılda tutulması gereken başka bir şey, bir VM'de zaman işleyişinin kesin olmadığıdır. Bu aynı zamanda bir sanal makinede ölçülen istatistiklerin doğru olmayabileceği anlamına gelir.

Bu VM için CPU ve I / O istatistikleri nelerdir? CPU hazır sayacına dikkat edin -% 5'in altında olmalıdır. Hangi ESX sürümünü kullanıyorsunuz? Test ve eşyada donanım mimariniz nedir?

VM sitesinde ile çekirdeğe uygulamadan şeyi profil olabilir perf ile çıkış görselleştirmek flamegraphs


Beş yıl önceki bir sorunu çözmek için zaman ayırdığınız için teşekkür ederiz; söz konusu sistemler ve yazılımlar artık çalışmadım bir şirkete ait ve VM yığını ve söz konusu hizmet artık orada çalışmıyor. :) Orijinal soruya zaten bir sürü CPU ve IO bilgisi gönderildi. Brendan'ın kamu çalışmaları ve perf ve flamgraphs'taki sergisi bu soruyu bir yıldan fazla bir süre öncesine erteliyor.
dbenhur

1
Sorun değil. Belki birileri için yararlı olacaktır.
Mircea Vutcovici

0

Bu özellikle yüksek bir yük ortalaması gibi görünmüyor. Bunu izlemek istiyorsanız iotop, muhtemelen iş için en iyi araçtır.


iotopsıkıcı, her şey yaklaşık 0 diyor.
dbenhur

CPU sayısının üzerindeki herhangi bir yük avg, çalıştırmak için bekleyen cpus'tan daha fazla işlem beklediğim anlamına gelir. 2.0'ın üzerinde birçok aralık ve 4'ün üzerinde ve 6.5'e kadar birkaç la-5 görüyorum. Bu, çoğu zaman cpu için diğer süreçlerin arkasında durmakta olan ve cpu kapasitesi eksikliği nedeniyle istenmeyen gecikme anlamına gelen süreçlerim olduğu anlamına gelir. Normalde sistem% 100 cpu doygunluğuna yaklaşana kadar yük ortalamasının ve cpu% 'sinin ilişkili olmasını beklerim; bu yük ortalamasından sonra daha iyi bir sinyaldir çünkü sistemin% 100 meşgul olduğunu değil, ne kadar fazla kararlı olduğunu gösterir.
dbenhur

0

Sizinkine çok benzeyen bir senaryo ile uğraşıyorum. Benim durumumda, sorunlu VM'nin blok cihazının IO zamanlayıcısını NOOP zamanlayıcısına değiştirdikten sonra yük ortalaması düştü. Bu zamanlayıcı, hiper denetimci kendi IO zamanlama algoritmalarını yine de uyguladığında iyi çalışan bir FIFO kuyruğudur. İki kez yeniden sipariş vermeye gerek yok.

Bununla birlikte, sorunlu VM'deki hala yavaş klavye olaylarıyla uğraşıyorum, bu yüzden gerçek sorunu çözmeden sadece yüksek yük ortalamasını kaldırdığımı düşünüyorum. Temel nedeni bulursam bu cevabı kesinlikle güncelleyeceğim.

Kullanılabilir mevcut zamanlayıcıları (ve kullanımdaki [zamanlayıcı]) listeleyin:

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

Şununla değiştir:

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

Kalıcı hale getirmek elevator=noopiçin VM'nizin çekirdek önyükleme parametrelerine eklemeniz gerekir .


-2

Yük ortalaması CPU'yu bekleyen çalıştırılabilir işlemlerin sayısıdır. G / Ç'yi bekleyen bir işlem hiç sayılmaz. "Her zamanki açıklama" sadece yanlış.


3
Linux yük hesaplamasında yorumlanamayan uyku işlemlerini içerir. Bu tür işlemler, olağan süreç inceleme araçlarında 'D' Devleti ile gösterilir. Bu durum genellikle disk veya ağ GÇ'sini bekleyen aygıt sürücüleri tarafından kullanılır. Bu "olağan açıklama" Linux için doğrudur, ancak diğer unixlerin çoğu için geçerli değildir.
dbenhur

1
s / uninterpretable / Kesintisiz /
dbenhur

1
Bir yorum daha önce, yakın zamanda Linux'un Yük Ortalamaında Kesintisiz Uykunun
dbenhur
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.