Назад | Перейти на главную страницу

как контролировать системную загрузку конкретного процесса? например. Ява

Итак, Java подвешивает наши системы. Наши разработчики все еще занимаются этим, но как администратор, что можно сделать.

В системе с двумя сокетами всего с 8 ядрами пиковая нагрузка составляет 40 секунд. В среднем в течение дня: средняя нагрузка: 17,78, 23,18, 24,71 Согласно этому: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
это ненормально.

Что можно с этим сделать, кроме обновления системы? наша проблема в настоящее время заключается в том, что система случайным образом зависает с «java: 4242 задачи заблокирована более 120 секунд», а затем срабатывает при высокой нагрузке.

Что может быть сделано?

При нагрузке: средняя нагрузка: 21,40, 21,76, 21,80

iostat:

      avg-cpu:  %user   %nice %system %iowait  %steal   %idle
                13.75    0.00    0.49    0.00    0.00   85.77

      Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
      xvda              2.16         1.82        32.63     832500   14917166

vmstat:

      procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
      r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
      0  0  21172 1272200 138540 583268   0    0     0     3    9    5 14  0 86  0

верхняя:

top - 14:41:02 up 5 days,  7:26,  2 users,  load average: 23.01, 22.17, 21.82
Tasks: 103 total,   1 running, 102 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   5291864k total,  4017092k used,  1274772k free,   138544k buffers
Swap:  1959924k total,    21172k used,  1938752k free,   583332k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
25637 root      20   0 1691m 559m  13m S    2 10.8   4:46.91 java
  848 root      20   0 3044m 2.3g 9844 S    1 45.4   5521:37 java
27729 root      20   0 19272 1272  948 R    0  0.0   0:00.03 top
    1 root      20   0 23760 1696 1200 S    0  0.0   0:01.49 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd
    3 root      20   0     0    0    0 S    0  0.0   0:00.29 ksoftirqd/0
    4 root      20   0     0    0    0 S    0  0.0   0:00.00 kworker/0:0

Я чувствую, что происходит что-то еще, на что вы не смотрели и не рассказывали нам.

  • У вас нет проблем с вводом-выводом или даже действительно заметной нагрузки ввода-вывода
  • Вы не работаете на голом оборудовании. xvda индикатор виртуального устройства.
  • У вас есть «все время в мире» - ваша система сообщает о простое на 85%, несмотря на очень высокую среднюю нагрузку.

Вот мои наиболее вероятные предположения:

  • Вы сделали демонстрационный снимок не в то время. ЦП на самом деле намного более загружен, и вам следует использовать такой инструмент, как sar для отчетности. atop тоже мой любимый.
  • У вас, как правило, низкая нагрузка, но очень высокие мгновенные всплески, которые делают общую нагрузку высокой.
  • Вы столкнулись с коварной ошибкой или аппаратной проблемой. Вы должны опубликовать трассировки стека, которые регистрируются для убитых процессов, чтобы мы могли догадаться, где.

Что касается темы самого вопроса: единственный способ снизить среднюю нагрузку - это уменьшить количество процессов, активно конкурирующих за процессорное время.