используемая верхняя память и проценты не совпадают
497
KisnardOnline
У меня есть сервер ec2, и иногда у меня возникают проблемы с памятью - процесс mysql был убит из-за нехватки памяти. Это ломает мой веб-сайт и игру, и иногда мне требуется несколько часов или дней, чтобы это заметить :(. Сейчас у меня на сервере работают лампа, wordpress и java mmorpg. Я знаю, что моему серверу mmorpg требуется довольно много оперативной памяти, чтобы вместить все сущностей и данных.
У меня 1 ГБ оперативной памяти и 1 ГБ подкачки . Вот мой главный вывод в настоящее время.
Что я не понимаю, так это то, почему, если мой java-процесс равен 7,6%, а мой текущий mysqld равен 1,9%, как я даже близко? В нем говорится, что используется 956 МБ памяти Mem и 378 МБ памяти Swap - эти цифры кажутся реальными. Как это даже близко к 7,6 + 1,9%?
Есть ли какой-нибудь способ, которым я могу контролировать свою память немного лучше, или что-то, что я могу настроить на mysql, чтобы он не запускал OOM? Я уверен, что в моем коде java-сервера нет утечки, но не уверен на 100%.
Извините за все вопросы - после того, как я более 5 лет кодировал свой mmorpg с нуля, я хочу убедиться, что мой сервер готов к работе с достойной базой игроков.
Вы можете [редактировать] в соответствующем выводе `ps aux && free`?
Matt Clark 7 лет назад
0
Также обратите внимание, что MySQL Server [часто является жертвой] (http://dba.stackexchange.com/a/25171/11651), а не причиной проблем исчерпания памяти.
Michael - sqlbot 7 лет назад
0
@MattClark Я добавил в выходы, которые вы запросили. Извините, что так долго я спала. Очень ценю вашу помощь!
KisnardOnline 7 лет назад
0
Из вывода `ps aux` может показаться, что вся ваша память съедена _httpd_. В распечатке я вижу ~ 19 httpd процессов, потребляющих ~ 40MiB каждый = ~ 750 + MiB.
Matt Clark 7 лет назад
0
Вы можете посмотреть руководства по настройке для httpd / apache (2).
Matt Clark 7 лет назад
0
Спасибо Мэтт - я посмотрю на это! Если вы превратите это в ответ, я отмечу, что он принят :)
KisnardOnline 7 лет назад
0
1 ответ на вопрос
1
Matt Clark
По умолчанию topсортирует процессы по загрузке процессора - так что может показаться, что все, что съедает всю вашу память, не использует много процессорного времени.
Для сортировки topпо резидентной памяти используйте
top -o RES # or top -o MEM # commands may vary slightly depending on distros
Из распечатки, ps auxкоторую вы предоставили, мы видим, что существует ~ 20 httpd- процессов, каждый из которых потребляет около 40 МБ = ~ 800 МБ драгоценной оперативной памяти.
Вы можете посмотреть руководства по настройке для httpd / apache2.