Usr sbin mysqld загружает процессор
Обновлено: 21.11.2024
У меня проблема со службой MySQL. Я смотрю на «Среднюю загрузку», и там есть процесс с владельцем mysql.
Он использует процессор на 100% больше. Я убиваю это. Он приходит снова через 5 секунд. В чем проблема?
Я получаю сообщение об ошибке при попытке перезапустить MySQL. Вы можете увидеть сообщение об ошибке ниже.
Журнал запуска 14 апреля 14:33:23 server.display-sales.de systemd[1]: Запуск сервера базы данных MariaDB 10.3.22… 14 апреля 14:33:23 server.display-sales.de mysqld[5598] : 2020-04-14 14:33:23 0 [Предупреждение] option 'table_open_cache': значение без знака 1073741824 изменено на 1048576 14 апреля 14:33:23 server.display-sales.de mysqld[5598]: 2020-04-14 14:33:23 0 [Предупреждение] option 'table_definition_cache': значение без знака 1073741824 изменено на 2097152 14 апреля 14:33:23 server.display-sales.de mysqld[5598]: 2020-04-14 14:33:23 0 [Примечание] /usr/sbin/mysqld (mysqld 10.3.22-MariaDB), начиная с процесса 5598 … 14 апреля 14:33:23 server.display-sales.de mysqld[5598]: 2020-04-14 14:33: 23 0 [Предупреждение] Не удалось увеличить количество max_open_files до более чем 10000 (запрос: 2097337) 14 апреля 14:33:23 server.display-sales.de mysqld[5598]: 2020-04-14 14:33:23 0 [Предупреждение] Изменены лимиты: max_open_files: 10000 max_connections: 150 (было 150) table_cache: 4910 (было 1048576) 14 апреля 14:33:25 server.display-sales.de systemd[1]: запущен Сервер базы данных MariaDB 10.3.22.
Спасибо. С уважением, Корай ОНЕЛКЕ
Вы можете ввести !ref в этой текстовой области, чтобы быстро найти наш полный набор руководств, документации и предложений на рынке и вставить ссылку!
Эти ответы предоставлены нашим сообществом. Если вы найдете их полезными, проявите свою любовь, нажав на сердце. Если у вас возникнут проблемы, оставьте комментарий или добавьте свой ответ, чтобы помочь другим.
означает, что предел где-то достигнут. Давайте решим это, отредактировав любые настроенные ограничения. Ограничения для службы MySQL определены в файле конфигурации Systemd, который вы должны скопировать из его расположения по умолчанию в /etc/systemd, а затем отредактировать копию.
Теперь перезагрузите конфигурацию Systemd с помощью:
Перезапустите MySQL, теперь он должен подчиняться директиве max_connections, и ваш MySQL должен запуститься без проблем.
Присоединяйтесь к 1 миллиону других разработчиков и:
- Получайте помощь и делитесь знаниями в разделе "Вопросы и ответы".
- Подпишитесь на интересующие темы
- Получите курсы и инструменты, которые помогут вам стать разработчиком или владельцем малого бизнеса.
Связанные
MySQL «описать/объяснить/показать столбцы из» Проблема в Fedora: «ОШИБКА 1 (HY000): невозможно создать/записать в файл»
Итак, вы думали, что ваша база данных в хорошем состоянии, но внезапно загрузка ЦП резко возросла и достигла 100 % в 2 часа ночи. Как бы вы отследили основную причину и устранили ее?
1. Найдите основную причину
Если вы используете CloudWatch или любое другое решение для мониторинга инфраструктуры, вы можете начать расследование с него.
Чтобы понять, что произошло с вашей базой данных, вы должны включить функцию журнала медленных запросов в вашей базе данных. Это зафиксирует все медленные запросы к журналу в журнал на основе заданного вами порога.
Если вам нужно, мы создали пошаговое руководство по включению журнала медленных запросов.
- Когда это началось?
- Был ли у вас значительный рост трафика?
- Вы выпустили новую функцию или основной выпуск?
- Вы что-нибудь изменили? (параметры конфигурации базы данных? Вы включили постоянное соединение? Обновили? Перешли на новую инфраструктуру?)
2. Устранить проблему с производительностью
Причин внезапного увеличения загрузки ЦП может быть много. Вот несколько советов, как это исправить:
- Проверьте, какие пользователи MySQL вошли в систему. Возможно, есть конкретный новый пользователь, который забивает систему. Это можно сделать с помощью следующего запроса:
- Отключите постоянные подключения, если вы не уверены на 100 %, что они вам нужны.
- Проверьте свои медленные запросы. У вас может быть новый запрос или старый запрос, который внезапно стал работать медленнее. Вы можете использовать бесплатные инструменты, которые помогут вам найти самые медленные запросы, такие как EverSQL.
Благодаря таким автоматическим решениям по оптимизации MySQL вы сможете сосредоточиться на самом важном, то есть на своем бизнесе, вместо того, чтобы тратить время на ручную оптимизацию запросов и базы данных.
-
Перечислите все процессы базы данных и проверьте состояние механизма inno db, чтобы проверить, нет ли у вас взаимоблокировки. Вы можете сделать это, выполнив следующую команду:
3. Убедитесь, что это больше не повторится
Вы не хотите, чтобы вас снова застали врасплох в 2 часа ночи, когда ваш процессор загружен на 100%, поэтому вам следует установить какое-либо решение для мониторинга базы данных, чтобы получать оповещения как можно скорее.
Существует несколько инструментов мониторинга, таких как NewRelic, AppDynamics и другие, но для MySQL вы можете использовать датчик EverSQL, который автоматически собирает десятки сигналов и предоставляет вам аналитические данные MySQL на основе искусственного интеллекта, такие как:- Обнаружение новых медленных запросов.
- Приоритизация запросов для оптимизации.
- Обнаружение отсутствующих и избыточных индексов.
- Автоматическая оптимизация запросов.
- и многое другое.
4. Резюме
Можно избежать производственных инцидентов, вызванных 100-процентной загрузкой ЦП в вашей базе данных. С такими инструментами, как EverSQL, вы можете получать уведомления, как только он начинает расти, и использовать онлайн-решения, чтобы исправить это в течение нескольких минут, вместо того, чтобы нанимать дорогих консультантов по базам данных.
основные особенности, связанные с "/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid", а также "/private_html/index.ph_room_to_avoid_overwrite_important_env", о которых я понятия не имею об этом!
Кто-нибудь может помочь мне снизить нагрузку на процессор?
directadmin: 1.63.3
веб-сервер: openlitespeedПодтвержденный пользователь
Каждый раз, когда я вижу высокий уровень использования mysql, рекомендуется проверить ваши оптимизации, я использую этот инструмент:
GitHub — major/MySQLTuner-perl: MySQLTuner — это скрипт, написанный на Perl, который поможет вам настроить MySQL и даст рекомендации по повышению производительности и стабильности.
MySQLTuner – это скрипт, написанный на Perl, который поможет вам настроить MySQL и даст рекомендации по повышению производительности и стабильности. – GitHub – основной/MySQLTuner-perl: MySQLTu.
Кроме того, похоже, что ваша виртуальная машина (при условии, что виртуальная машина) имеет только 4 ГБ ОЗУ, что может быть недостаточным для вашей нагрузки. (Я никогда не создаю хостинг с оперативной памятью менее 16 ГБ.)
Было бы хорошо проверить возможность подкачки вашей установки Linux, так как я вижу свободную оперативную память, но все еще использую подкачку. Я всегда устанавливаю 0, так что оперативная память должна быть исчерпана, прежде чем произойдет какая-либо подкачка, многие установки по умолчанию равны 60. Прочтите эту статью:
Как изменить Swappiness вашей системы Linux
Подкачка — это параметр ядра, который определяет, насколько (и как часто) ваше ядро Linux будет копировать содержимое ОЗУ для подкачки. Эти параметры по умолчанию va.
Для справки "/private_html/index.ph_room_to_avoid_overwrite_important_env": если вы не создавали сайт, не мешало бы проверить его и посмотреть, что он делает, или проконсультироваться с разработчиком.< /p>Йоханнес
Подтвержденный пользователь
проверить настройки my.cnf, возможно, SEO-ботов заблокировать (было это несколько лет назад с несколькими агрессивными поисковыми роботами)
микаджакскс
Подтвержденный пользователь
проверить настройки my.cnf, возможно, SEO-ботов заблокировать (было это несколько лет назад с несколькими агрессивными поисковыми роботами)
Здравствуйте,
я не профессионал, не могли бы вы быть более конкретными?
вот etc/my.cnfтакже последний mysqld.log
микаджакскс
Подтвержденный пользователь
Для справки "/private_html/index.ph_room_to_avoid_overwrite_important_env": если вы не создавали сайт, не мешало бы проверить его и посмотреть, что он делает, или уточнить у разработчика.
такого файла нет! private_html — это символическая ссылка на public_html. но я не нашел такого файла на сервере
Подтвержденный пользователь
Проверили ли вы свою подкачку и проверили с помощью mysqltuner? mysqltuner подскажет, что нужно изменить в файле my.cnf
микаджакскс
Подтвержденный пользователь
Проверили ли вы свою подкачку и проверили с помощью mysqltuner? mysqltuner подскажет, что нужно изменить в файле my.cnf
микаджакскс
Подтвержденный пользователь
Женяпан
Подтвержденный пользователь
Подтвержденный пользователь
Это касается:
[!!] Максимально достигнутое использование памяти: 7,0 ГБ (195,02 % установленной ОЗУ)
[!!] Максимально возможное использование памяти: 9,8 ГБ (270,84 % установленной ОЗУ)
ВМ/машине требуется больше оперативной памяти. В будущем будет больше проблем с производительностью. Глядя на вывод журнала, вам, вероятно, потребуется 16 ГБ оперативной памяти, чтобы он работал без подкачки. Другие уже предложенные изменения помогут, но требуется больше оперативной памяти.микаджакскс
Подтвержденный пользователь
основная проблема связана с процессором, а не с оперативной памятью. У меня есть еще один vps, работающий с помощью киберпанели, и всего 1 ГБ оперативной памяти. у меня почти 15 веб-сайтов на нем без проблем, и все достаточно быстро
на моем текущем прямом администраторе vps у меня 4 ГБ и всего 12 веб-сайтов! крутая ситуация! также проблема появилась недавно, может быть, последние две недели!Женяпан
Подтвержденный пользователь
это из-за "+ 65.1M per thread" и 108 открытых потоков, но это просто выделенная память из-за max_allowed_packet=64M она толком не используется.
У него перегружен процессор и 1700mb свободной оперативной памяти. Так что во первых там max_allowed_packet можно уменьшить до 32, но пока не нужно.Также надо настроить какой-то тип кеширования(opcache,lscache),проверить логи доступа/ошибок - может это просто примитивная dDOS или боты,и решается CSF.микаджакскс
Подтвержденный пользователь
это из-за "+ 65,1M на поток" и 108 открытых потоков, но это просто выделенная память из-за max_allowed_packet=64M, которая на самом деле не используется.
У него перегружен процессор и 1700 Мб свободной оперативной памяти. Так что в первую очередь там max_allowed_packet можно уменьшить до 32, но пока не нужно. Также необходимо настроить какой-то тип кэширования (opcache, lscache), проверить журналы доступа/ошибок - возможно, это просто примитивная dDOS или боты, и это решается с помощью CSF.Да дело не в баране! я использовал mytop для мониторинга mysql, ничего необычного не сообщил. запрос был действительно низким, но «/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid» является основной проблемой. Я не знаю, как это может повлиять на процессор!
также мне кажется странным "/private_html/index.ph_room_to_avoid_overwrite_important_env"!Женяпан
Подтвержденный пользователь
микаджакскс
Подтвержденный пользователь
Йоханнес
Подтвержденный пользователь
иккебен
Подтвержденный пользователь
ОТДЕЛ / Команда
Голландский институт раскрытия информации об уязвимостях. Мы стремимся сделать цифровой мир безопаснее, сообщая об уязвимостях, обнаруженных в цифровых системах, людям, которые могут их устранить. Мы работаем по всему миру, но делаем это по-голландски: открыто, честно, совместно и бесплатно.
Возможно, им нужен обзор, когда они публикуют статистику об уязвимостях
Я знаю одного из этой команды, которую я только что отправил, надеюсь, что почтовый адрес все еще активен (и я не попаду в спам..), тогда мы узнаем позже
микаджакскс
Подтвержденный пользователь
Возможно, им нужен обзор, когда они публикуют статистику об уязвимостях
Я знаю одного из этой команды, которую я только что отправил, надеюсь, что почтовый адрес все еще активен (и я не попаду в спам..), тогда мы узнаем позже
Понятия не имею! не могли бы вы рассказать мне, как сканировать мой сервер на наличие нежелательных скриптов?
как проверить, был ли он установлен на моем сервере?иккебен
Подтвержденный пользователь
Понятия не имею! не могли бы вы рассказать мне, как сканировать мой сервер на наличие нежелательных скриптов?
как проверить, был ли он установлен на моем сервере?Если ваш собственный сервер и только вы являетесь администратором с правами на установку этого пользователя, то, вероятно, их скрипты не на вашем сервере.
Но кто-то может отсканировать ваш со скриптами, исходящими от них, или, как это выглядит, этот IP-адрес этого ящика от нихИзвините, я не знаю об этом больше, только сделал быстрый поиск/помощь для вас.
Вы должны знать программное обеспечение, используемое на вашем устройстве, поэтому эти ссылки, и если вы найдете программное обеспечение, которое есть в этих списках, то я рекомендую сканирование и многое другое, чтобы предотвратить, а также обновления и спрашивайте у этих поставщиков программного обеспечения, тогда или есть обновления .
Основная проблема заключается в очень старых, а затем неподдерживаемых версиях, прочитайте ветку на форуме DA. Сам DA в порядке.
В любом случае, вы думаете, что это причина высокой загрузки ЦП?
В то время как Вэнь сделал это, в журналах вы видите даты этих сканирований, поскольку высокая загрузка процессора началась до этих сканирований, и я думаю, что это не могло быть причиной!
Если это виртуальная машина, то также ищите log4j в программном обеспечении поставщика виртуальной машины, хотя у некоторых с этим проблемы!
MySQL довольно популярен среди веб-приложений с открытым исходным кодом, но при неправильном обслуживании он подвержен проблемам с производительностью.
Проблемы с производительностью возникают в основном из-за фрагментации таблиц, неоптимизированных настроек памяти и т. д. Все это может привести к высокой загрузке процессора MySQL и ошибкам приложений.
Здесь, в Bobcare, наши преданные инженеры службы поддержки обслуживают тысячи веб-серверов и серверов MySQL веб-хостов, компаний электронной коммерции и интернет-маркетологов по всему миру.
Мы выступаем в качестве технической команды этих компаний и поддерживаем их серверы в стабильном состоянии благодаря упреждающему обслуживанию и круглосуточному мониторингу.
Наша модель процессов для стабильных серверов MySQL
Вот 3 ключевые операции, которые мы выполняем для поддержания стабильности серверов MySQL:
1. Начальная оптимизация сервера
Когда клиент регистрируется, наши инженеры проверяют производительность сервера и оптимизируют настройки сервера MySQL, чтобы устранить любые ранее существовавшие узкие места в ресурсах.
После анализа типа веб-сайта и трафика мы настраиваем ключевые параметры серверов MySQL, чтобы обеспечить оптимальное использование ресурсов. Сюда входят ограничения на количество подключений, размер буфера и кэша запросов и многое другое.
2. Круглосуточный мониторинг и аварийно-спасательная служба
Рассылка спама в комментариях, перебор, атака ботов или даже законное увеличение трафика могут вызвать высокую нагрузку на MySQL. Вот почему важно отслеживать показатели сервера круглосуточно и без выходных.
Администраторы серверов Bobcares следят за работоспособностью MySQL круглосуточно и без выходных. Это помогает нам немедленно обнаруживать всплеск загрузки ЦП или вредоносную программу и устранять ее до того, как она приведет к сбою всего сервера.
3. Последующий аудит и оптимизация
Базы данных со временем растут, и нагрузка на них меняется при изменении посещаемости веб-сайта. Вот почему последующий аудит и повторная оптимизация имеют решающее значение для поддержания стабильности сервера MySQL.
Основная задача наших администраторов выделенных серверов — регулярно проверять серверы клиентов, выявлять узкие места в производительности до того, как они возникнут, и устранять их до того, как это повлияет на клиентов.
Сегодня мы посмотрим, как наши администраторы серверов реагируют на ситуацию с высокой загрузкой процессора MySQL и что мы делаем, чтобы предотвратить ее повторение.
[ Не обязательно быть экспертом в MySQL, чтобы ваши сайты работали быстро и стабильно. Позвольте нам помочь вам. Наши специалисты позаботятся о том, чтобы ваши серверы были быстрыми, безопасными и надежными. ]
Как определить высокую загрузку процессора MySQL
Очень часто люди связывают высокую нагрузку на сервер с высокой загрузкой ЦП. Это не всегда так. Нагрузка на сервер может быть высокой из-за узких мест в любом ресурсе. Это может включать память, дисковый ввод-вывод, сеть или ЦП.
Главной причиной нагрузки на сервер, вызванной MySQL, является нехватка памяти или операций ввода-вывода. Если это узкое место ЦП, вывод команды top будет выглядеть следующим образом:
Если это узкое место, вызванное вводом-выводом, %wa (называемое средним значением ожидания) будет иметь самый высокий %. Напротив, если это нагрузка, вызванная памятью, «свободная» память ограничивается всего несколькими МБ.
Устранение высокой загрузки процессора MySQL
Если нагрузка на сервер действительно связана с высокой загрузкой ЦП, мы считаем полезными следующие исправления:
- Включите InnoDB для обработки большого количества одновременных подключений. Проверьте MySQL «PROCESSLIST», и если вы увидите много запросов в состоянии «LOCK», это означает, что многие запросы приостановлены, поскольку таблицы MyISAM обрабатывают другие транзакции. Чтобы исправить это, преобразуйте эти таблицы в механизм InnoDB, поддерживающий блокировку на уровне строк.
- Включить постоянные подключения. Если у вас есть только одно приложение, которое получает тысячи подключений в час, включение постоянных подключений MySQL может повысить производительность. Если на сервере установлено несколько приложений (например, общий сервер веб-хостинга), это может не сработать.
- Блокировка вредоносных процессов. Когда веб-сайт подвергается атаке (например, отказу в обслуживании, рассылке спама в комментариях и т. д.), за короткое время устанавливается ненормально большое количество подключений. Используйте «PROCESSLIST» в MySQL, чтобы определить основных пользователей и заблокировать доступ к оскорбительным соединениям.
- Оптимизация запросов к базе данных. Некоторые веб-приложения используют сложные запросы для отображения информации о сайте. Выполнение этих запросов может занять много времени и вызвать загрузку ЦП. Получите список таких запросов из «журнала медленных запросов» и уменьшите количество объединений и других манипуляций с таблицами в рамках одного запроса.
- Проверьте наличие "ошибки дополнительной секунды". 1 июля 2015 г. к стандартному времени UTC была добавлена дополнительная секунда. На серверах со старыми версиями ядра Linux, которые используют серверы времени, это вызывает высокую нагрузку на MySQL. Если у вас старое ядро Linux, попробуйте сбросить время с помощью команды date -s «$(date)».
Как предотвратить высокую загрузку процессора MySQL
Трафик сервера меняется, а базы данных со временем растут. Проблемы с высокой загрузкой процессора MySQL можно в значительной степени предотвратить, если сервер базы данных проверен и настроен на производительность.
- Настройка производительности MySQL. MySQL использует различные буферы и системы кэширования для выполнения запросов. По мере изменения объема и сложности запросов к базе данных необходимо настроить параметры сервера для достижения оптимальной производительности. Существуют различные инструменты, такие как mysqltuner, для определения настроек, требующих корректировки.
- Аудит безопасности и усиление защиты. Спам и DoS-атаки могут легко вывести из строя сервер базы данных. Внедрите брандмауэры веб-приложений, такие как ModSecurity, и брандмауэры DoS, такие как ModEvasive, чтобы злоумышленники не могли повлиять на работоспособность сервера.
- Внедрение балансировки нагрузки. По мере роста трафика сервера может потребоваться разделить нагрузку на несколько серверов. MySQL можно настроить для репликации master-master и master-slave, что позволяет обслуживать запросы с любого сервера в кластере.
- Оптимизация запросов к базе данных. Если веб-приложения плохо написаны, никакая оптимизация базы данных не устранит нагрузку на сервер. Отслеживайте «журнал медленных запросов» MySQL и уменьшите количество операций JOIN, чтобы база данных работала быстрее.
- Использование высокопроизводительных альтернатив, таких как Percona. MySQL имеет много узких мест памяти/ЦП из-за того, как он обрабатывает запросы. Дополнительные продукты MySQL, такие как MariaDB и Percona, решают эти проблемы и помогают добиться большей стабильности.
С чего начать
MySQL может быть немного сложным для понимания. Требуется терпение и большой опыт, чтобы понять, какое решение и где работает.
Вы можете либо с головой погрузиться в документацию по MySQL и стать экспертом (примерно через 2-3 года), либо починить свой сервер (и поддерживать его в рабочем состоянии), наняв администратора.
И нет, это не обязательно должно быть дорого. Вы можете нанять администратора прямо сейчас.
Или, если вам нужна однократная быстрая помощь, нажмите здесь, чтобы отправить запрос в службу поддержки.
Похожие сообщения:
ЗАЩИТИТЕ ВАШ СЕРВЕР ОТ СБОЯ!
Никогда больше не теряйте клиентов из-за низкой скорости сервера! Позвольте нам помочь вам.
Наши специалисты по серверам будут контролировать и обслуживать ваш сервер круглосуточно и без выходных, чтобы он оставался молниеносно быстрым и безопасным.
Спасибо *большое* за совет. Вернувшись домой сегодня, в первый день января 2017 года, я обнаружил, что мой процесс mariadb занимает около 40% ЦП… без запросов к базе данных, он должен был полностью простаивать. Поскольку мой сервер (Centos 7) работает на экземпляре Amazon «T2», который никогда не исчерпает «кредит ЦП», что для моей машины означает использование только в среднем 20% ЦП, это было проблемой. Еще полдня, и я бы утонул.
mysqld потреблял весь процессор до 1377%, так как мой сервер имеет 14 ядер, я решил эту проблему, проиндексировав все ключевые слова, используемые в предложении WHERE, и увеличив query_cache_limit до 1024M и
query_cache_size до 2048MЧитайте также: