У меня есть сервер LAMP со следующей конфигурацией.
Процессор: Intel (R) Xeon (R) CPU
Оперативная память: 32 ГБ
HDD: 80 ГБ
Работает в виртуальной среде.
Все вещи на сервере работают без сбоев. Но я заметил, что использование ОЗУ сервером увеличивается с каждым днем без всякой причины.
Это текущее использование памяти на моем сервере.
# free -g
total used free shared buffers cached
Mem: 31 13 17 0 0 10
-/+ buffers/cache: 1 29
Swap: 2 0 2
Ниже вы можете увидеть использование памяти за последние 8 недель. http://i.stack.imgur.com/543jh.png
И я выполнил следующую команду, чтобы узнать, сколько памяти потребляет каждый процесс.
# ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'
0.00 Mb COMMAND
2253.62 Mb /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock
1171.66 Mb java -jar /etc/vmagent/bin/VMAgent.jar
138.27 Mb /sbin/audispd
127.75 Mb /usr/sbin/named -u named -c /etc/named.conf -u named -t /var/named/run-root
74.29 Mb auditd
73.03 Mb automount
43.14 Mb /usr/bin/spamd --username=popuser --daemonize --nouser-config --helper-home-dir=/var/qmail --max-children 5 --create-prefs --virtual-config-dir=/var/qmail/mailnames/%d/%l/.spamassassin --pidfile=/var/run/spamd/spamd_full.pid --socketpath=/tmp/spamd_full.sock
43.14 Mb spamd child
43.14 Mb spamd child
37.13 Mb /usr/sbin/httpd
37.02 Mb /usr/sbin/httpd
36.52 Mb /usr/sbin/httpd
36.46 Mb /usr/sbin/httpd
36.23 Mb /usr/sbin/httpd ................
Для устранения неполадок я перезапустил серверы MySQL и APACHE. Но результат был таким же. Перезапуск всего сервера решит проблему, но я хочу знать, в чем проблема.
Дайте мне знать, если у вас есть какие-либо представления об этой проблеме.
Спасибо,
Арун С
Это совершенно нормально. Если вы хотите, чтобы память не использовалась, выньте ее из сервера и положите на свой стол. Свободная память - это потраченная впустую память.
Linux, как и большинство современных операционных систем, может напрямую передавать память от одного использования к другому. Сделать его бесплатным посередине связано с расходами, но не с преимуществами. Так что разумные операционные системы не делают этого без крайней необходимости.
Свободная память нужна только в некоторых очень специфических случаях. Например, свободная память необходима для временного хранения данных, полученных по сети, до тех пор, пока ОС не сможет их обработать. Поскольку свободная память связана с высокими затратами (это как если бы этой памяти не было с точки зрения производительности), система сохраняет свободным только столько памяти, сколько необходимо для этих особых ситуаций.
-/+ buffers/cache: 1
Вы с помощью всего 1 ГБ. Остальное - это системный кеш.
Прочтите об этом: Linux съел мою оперативную память