Недавно я приобрел выделенный сервер с CentOS и Plesk для своих приложений.
Эти сценарии выполнялись на виртуальном сервере VPS объемом 1,5 ГБ под управлением CentOS и CPanel и работали очень хорошо.
Теперь они находятся на новом выделенном сервере, объем оперативной памяти уменьшился с 14,1 ГБ до 9,9 ГБ. Я не вижу, что это мои сценарии, поэтому предполагаю, что что-то еще использует всю мою память. Как я могу увидеть, что пожирает все ресурсы?
Примечание. Единственное различие между этими серверами (с моей точки зрения) заключается в том, что мои кроны проверялись каждые 5 минут на старом сервере, тогда как теперь они проверяются каждую минуту, а их около 60.
Это информация из "бесплатного" через SSH - хотя я не совсем уверен, что он мне говорит:
[root@h31-3-244-194 ~]# free
total used free shared buffers cached
Mem: 16426796 9373260 7053536 0 390468 3471680
-/+ buffers/cache: 5511112 10915684
Swap: 18481144 0 18481144
РЕДАКТИРОВАТЬ: Я посмотрел на все мои процессы cron, и у них есть это: bin / qmail-queue против них. Может qmail пожирает память?
Если я пропустил некоторую необходимую информацию, дайте мне знать.
Спасибо.
Единственное число, которое вас здесь волнует, это следующее:
[root@h31-3-244-194 ~]# free
total used free shared buffers cached
Mem: 16426796 9373260 7053536 0 390468 3471680
-/+ buffers/cache: **5511112** 10915684
Swap: 18481144 0 18481144
Это объем памяти, используемый процессами пользовательского пространства для их выполнения. Ядро будет использовать любую дополнительную память, которую оно может получить для кэширования диска и других соображений производительности, но оно будет освобождать ее, когда этого требуют приложения пользовательского пространства.
Вы, вероятно, захотите запустить что-то вроде top
и попытайтесь выяснить (используя поле% MEM), что потребляет память.
Помните, что неиспользуемая память - это потраченная впустую память! :)
Я копал все глубже и глубже, используя эту команду:
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 "" }'
в котором перечислены все процессы на моем сервере и сколько памяти они занимают. Затем это сказало мне, что qmail рассылает мне спам сообщения. Мне не нужен qmail, поэтому я удалил его. Сервер перешел от роста до 100% использования оперативной памяти до 6% ... Я не так сильно ненавижу Linux xD
Спасибо Кайлу Смиту за комментарии и пояснения по поводу памяти, но мне нужно отметить это как ответ, потому что он объясняет точную причину, по которой мои скрипты использовали больше памяти на этом сервере.
Эта команда перечислит все ваши процессы, отсортированные по использованию памяти:
ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | more
Первый столбец показывает процент памяти, используемой процессом. Вы можете использовать эту информацию, чтобы узнать, какой процесс используется больше всего.
Настоящий вопрос. . . Почему вас волнует, что вы используете больше памяти, когда у вас все еще есть 10 ГБ?