Сервер Linux, которым я администрирую, в последнее время испытывает серьезное снижение производительности, что особенно заметно через несколько недель после каждой перезагрузки. В частности, для заданий Jenkins, выделенных машине, начинается тайм-аут через несколько недель после перезагрузки, после чего все выполнение становится вялым, например ssh требует 10-15 секунд для подключения к машине.
Выход uname
команда
root@_____:~# uname -a
Linux _____ 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Смотря на vmstat
и free
Похоже, что почти вся физическая память машины используется, мало используется для кэширования и мало используется своп.
root@_____:~# free -m
total used free shared buffers cached
Mem: 3865 3686 179 0 12 282
-/+ buffers/cache: 3391 473
Swap: 4102 504 3597
root@_____:~# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 2 953288 217960 6344 232268 41 35 111 106 0 0 42 3 52 3 0
top
сообщает, однако, что даже самые большие потребители памяти системы используют только однозначные проценты доступной памяти
root@moose:~# ps aux --sort -rss
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
regress+ 6766 13.1 6.1 1894448 245188 ? Sl 10:10 5:25 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java _____
regress+ 22796 1.1 3.1 2552832 126600 ? Sl Apr07 11:17 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java _____
regress+ 17199 0.6 0.5 188952 23560 ? Dl 10:51 0:00 _____
regress+ 23497 0.5 0.5 3057724 21764 ? Sl 06:26 1:29 java _____
Моя теория на данный момент заключается в том, что какая-то утечка ресурсов заблокировала большие блоки физической памяти, что привело к сбою и замедлению работы системы. Это вероятная причина снижения производительности? Если да, то как мне лучше всего решить эту проблему, а если нет, то какова еще одна вероятная причина проблемы?
Загружены ли какие-нибудь нестандартные модули ядра? Выделения ядра могут занимать память.