Назад | Перейти на главную страницу

Предупреждение Directadmin Средняя загрузка системы - X

Я не гуру серверов, может ли кто-нибудь помочь мне понять, какая часть моего сервера находится под нагрузкой и что я могу сделать, чтобы это исправить?

Мое лучшее предположение - слишком много подключений к серверу узлов + mysql, потому что большую часть времени я получаю mysql connection refeused errors в моих журналах приложения node js

отчет о загрузке directadmin


[root@dominoserver ~]# vi /var/log/mysql/mysql_error.log
InnoDB: Progress in percent: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

ОБНОВЛЕНИЕ: я проверил диаграмму использования процессора на сервере, и на нем было много 100% скачков, поэтому сейчас я добавил еще одно ядро ​​процессора на свой сервер ... нужно подождать и посмотреть, что произойдет!

У вас есть журналы производительности, и добавление дополнительных ресурсов на сервер никогда не бывает плохой идеей.

То, что я могу предложить на основании своего опыта

Проверьте все свои журналы, dmesg, служебные журналы и т. Д. На наличие связанных сообщений. В некоторых случаях вполне возможно, что у сервера достаточно ресурсов, но он сталкивается с ограничениями ядра или mysql ... такими как, например, количество открытых файлов или одновременные соединения (потоки) с сервером mysql.

У вас есть мониторинг на вашем сервере, и это здорово, но иногда картинка рисует тысячи слов, и вы можете быстрее определять тенденции, фактически просматривая данные в графическом формате.

Существует огромное количество инструментов для мониторинга. Возможно, даже будет какая-то опция в графиках вывода вашего инструмента мониторинга.

Если выясняется, что mysql перегружен, вы можете сделать несколько вещей, чтобы оптимизировать эту часть вашего сервера.

  • настройка параметров mysql.

  • оптимизация структуры базы данных с помощью более быстрых индексов

  • организация данных другим способом или переработка вашего приложения для улучшения запросов.

  • Сосредоточение внимания на том, как ваше приложение взаимодействует с вашей базой данных (через внутренние сокеты домена Unix или через петлевой TCP-сокет, повторно использует ли оно пулы соединений)

«Лучший запрос к базе данных - это тот, который вам никогда не придется делать». Вы думаете, что «счетчик количества просмотров видео на YouTube» рассчитывается с помощью запроса к базе данных? подумай еще раз!

есть много инструментов, которые нужно сделать, некоторые из них платные, некоторые вы можете просто установить бесплатно.

https://github.com/major/MySQLTuner-perl

https://stackify.com/mysql-tutorial-improve-performance/

Если окажется, что это просто «способ» доступа к данным в базе данных, подумайте о своих данных? Вы выполняете сложные запросы или mysql необходим для поиска пары ключ / значение ... Поэкспериментируйте с разными серверами баз данных и взгляните на базы данных nosql, у вас может быть модель базы данных, которая просто соответствует этим гораздо более быстрым способам доступа к данным :-).

Если вы не можете изменить архитектуру уровня базы данных, то есть несколько слоев кеша, которые действительно могут ускорить ваше приложение, если оно снова и снова выполняет одни и те же запросы чтения.

https://dev.mysql.com/doc/refman/5.7/en/innodb-memcached-intro.html

Последнее, о чем следует подумать, - это кто обращается к mysql? бэкэнд доступен в Интернете? все ли запросы исходят оттуда, где, по вашему мнению, они должны быть? У вас есть задание резервного копирования, выполняющееся удаленно, что приводит к перегрузке уже загруженного сервера во время цикла резервного копирования?

Оптимизация - это хороший повод для изучения, иронично, что многие приложения могут поддерживать свои текущие внешние нагрузки с гораздо меньшим количеством серверного оборудования и без масштабирования. Масштабирование намного проще (больше NET / RAM / CPU / SSD / DISK).

Удачи.

https://www.tecmint.com/command-line-tools-to-monitor-linux-performance/ https://www.binarytides.com/linux-commands-monitor-network/