У меня проблема со средней нагрузкой на мои выделенные ящики Debian GNU / Linux. Они оба (2 из них) работают под управлением MySQL + специализированное программное обеспечение игрового сервера - небольшая «MMORPG» (совсем не массовая). Использование ЦП и памяти в порядке. Использование ЦП обычно составляет <5%. Использование ОЗУ возрастает примерно до 80-90%, но всегда есть куча свободных, кешированных или буферизованных. Использование свопа равно 0.
При мониторинге загрузок с помощью uptime, top или любой другой команды, которая это показывает, он случайным образом подскакивает к чему-то вроде 4 или даже больше. Это, очевидно, проблема, особенно если учесть, что обе коробки имеют "всего" 2 ядра. После волшебного скачка средней нагрузки она начинает плавно снижаться, предполагая, что это был действительно временный скачок в использовании ресурсов. Использование ЦП всегда составляет 0-5%, максимум 10%, всякий раз, когда мне удавалось смотреть вверх с частотой обновления в 1 секунду в течение примерно 15 минут.
Я пробовал некоторые инструменты, такие как htop, vmstat, dstat и т. Д., Но безрезультатно. Вот журнал для всех, кому интересно:
http://www.k-zodron.com/log.txt
Если не считать появления в начальных строках, загрузка ЦП почти не увеличивается, в то время как нагрузка подскакивает до астрономических значений. Я не супер-эксперт в этом вопросе, но запись 4 КБ на диск тоже не кажется узким местом ввода-вывода.
Я также запустил MySQL Tuning Primer Tool, и он сообщает, что все в порядке.
Есть идеи, как отследить и решить проблему? Спасибо!
редактировать
http://www.k-zodron.com/munin/
Статистика Munin обновляется каждые 5-10 минут.
может быть, mysql использует временные таблицы? вы можете добавить несколько диаграмм мунинов с помощью io stat ..? io цифры в представленном журнале кажутся невероятно низкими.
Каков ваш рабочий набор - удобно ли помещаются данные в памяти [так кажется]? вы делаете время от времени много записей в sql [кажется, из журнала - совсем нет]?
Возможно ли, что внезапно у вас возникнет всплеск количества одновременных запросов [sql или на ваш собственный сервер]? что говорит cat / proc / net / ip_conntrack | wc -l? что он показывает во время скачков нагрузки?
ты можешь включить MySQL? медленное ведение журнала запросов - например, все> 1 или 2 секунды?
ваши диски напрямую подключены к серверу или, может быть, это iscsi / nfs? вы можете проверить состояние дисков [smart] / raid status? возможно, один из дисков выходит из строя ... или, может быть, вы можете запустить простой тест io disk вне пика нагрузки, чтобы убедиться, что вы получаете приличную скорость чтения / записи.
а может что-то некрасивое показывает в dmesg?
edit: проверьте, коррелирует ли netstat | wc -l с нагрузкой
проверьте, коррелирует ли ps axms | wc -l с нагрузкой
проверьте, коррелирует ли lsof | wc -l с нагрузкой
[желательно взломать небольшие плагины munin, чтобы те смогли попасть в чарты].
Вам нужно больше показателей. Я использую ганглии для сбора различных значений, классических: ЦП, память, сеть, дисковый ввод-вывод и т. Д .; метрики на основе служб: http-запросы, запросы mysql, медленные запросы и т. д .; и показатели на основе приложений, то есть сколько пользователей подключено к игре или сколько раз приложение вызывает критическую функцию.
Анализ этой информации и сравнение с пиками нагрузки может дать вам лучшее представление о том, что происходит в вашей системе.