Jump to content

Recommended Posts

Posted (edited)

Давно уже мониторю с помощью этого замечательного средства серверы. Но тут обратил внимание на странный график:

cpu-day.png

При этом в это же время:

# top
top - 22:15:35 up 356 days, 21:38,  2 users,  load average: 0.19, 0.16, 0.12
Tasks: 204 total,   2 running, 202 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.1%sy,  0.0%ni, 95.7%id,  0.0%wa,  0.0%hi,  4.2%si,  0.0%st
Mem:  16439252k total,  1863168k used, 14576084k free,   194908k buffers
Swap:  8388604k total,        0k used,  8388604k free,   801544k cached

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  13 root      20   0     0    0    0 S  1.0  0.0 988:38.62 ksoftirqd/1
  18 root      20   0     0    0    0 S  1.0  0.0 982:57.70 ksoftirqd/2
  33 root      20   0     0    0    0 S  1.0  0.0 966:14.01 ksoftirqd/5
   3 root      20   0     0    0    0 S  0.7  0.0 983:30.89 ksoftirqd/0
  23 root      20   0     0    0    0 R  0.7  0.0 981:26.97 ksoftirqd/3
  28 root      20   0     0    0    0 S  0.7  0.0 971:50.97 ksoftirqd/4
  38 root      20   0     0    0    0 S  0.7  0.0 976:08.64 ksoftirqd/6
  43 root      20   0     0    0    0 S  0.7  0.0 981:19.61 ksoftirqd/7
  48 root      20   0     0    0    0 S  0.7  0.0 983:53.91 ksoftirqd/8
  53 root      20   0     0    0    0 S  0.7  0.0   1017:41 ksoftirqd/9
  58 root      20   0     0    0    0 S  0.7  0.0   1063:48 ksoftirqd/10
  63 root      20   0     0    0    0 S  0.7  0.0 992:10.16 ksoftirqd/11
  68 root      20   0     0    0    0 S  0.7  0.0   1009:06 ksoftirqd/12
  73 root      20   0     0    0    0 S  0.7  0.0 989:53.56 ksoftirqd/13
  78 root      20   0     0    0    0 S  0.7  0.0 975:21.03 ksoftirqd/14
  83 root      20   0     0    0    0 S  0.7  0.0 973:38.41 ksoftirqd/15
3351 named     20   0 1233m  19m 2776 S  0.7  0.1  49:30.70 named
 125 root      20   0     0    0    0 S  0.3  0.0  13:41.70 kworker/9:1
13951 dhcpd     20   0 55124  12m  636 S  0.3  0.1   0:08.57 dhcpd
   1 root      20   0 19276 1504 1236 S  0.0  0.0   0:03.28 init
   2 root      20   0     0    0    0 S  0.0  0.0   0:00.25 kthreadd
   5 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kworker/0:0H
   7 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kworker/u:0H
   8 root      RT   0     0    0    0 S  0.0  0.0   0:07.96 migration/0
   9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 rcu_bh
  10 root      20   0     0    0    0 S  0.0  0.0  99:33.42 rcu_sched
  11 root      RT   0     0    0    0 S  0.0  0.0   1:06.93 watchdog/0
  12 root      RT   0     0    0    0 S  0.0  0.0   1:06.62 watchdog/1
  14 root      RT   0     0    0    0 S  0.0  0.0   0:45.90 migration/1
  16 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kworker/1:0H
  17 root      RT   0     0    0    0 S  0.0  0.0   0:51.12 watchdog/2
  19 root      RT   0     0    0    0 S  0.0  0.0   0:09.91 migration/2
  21 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kworker/2:0H
  22 root      RT   0     0    0    0 S  0.0  0.0   0:51.42 watchdog/3
  24 root      RT   0     0    0    0 S  0.0  0.0   0:06.58 migration/3
  26 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kworker/3:0H
  27 root      RT   0     0    0    0 S  0.0  0.0   0:50.17 watchdog/4

 

Вопрос: top чего-то не учитывает или munin просто строит неправильный график.

 

update: сорри, не тот вывод запостил

Edited by BETEPAH
Posted (edited)

Это проблема с tickless ядрами.

Munin считывает загрузку из файла '/proc/stat'. Значения в этом файле в jiffies. В не Tickless ядрах значения в этом файле постоянно обновляются и соответсвенно процессор находится в каком-то определенном состоянии (или что-то делает или idle). А в tickless ядрах этот файл иногда не обновляется. Из-за этого суммарная загрузка всех ядер на графиках munin не доходит до (100% x количество процессоров. idle на графиках тоже читается из файла, а не вычисляется как 100-загрузка cpu).

 

Если вы запустите dstat, то сумма usr+sys+idl+wai+hiq+siq тоже не будет равна 100.

 

Так же можно поизменять значения в конфиге ядра в "CPU/Task time and stats accounting" - "Cputime accounting", там есть на выбор "Simple tick based cputime accounting", "Full dynticks CPU time accounting" и "Fine granularity task level IRQ time accounting". Но это увеличит нагрузку в какой-то степени.

 

Еще можно переписать плагин для munin.

Edited by Painter

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.