powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Непонятная нагрузка на CPU 100% после запуска MYSQL
36 сообщений из 36, показаны все 2 страниц
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943908
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Проблема такая, после 12 часовой работы MySQL, начала грузить CPU на 100%.
Помогает только перезапуск сервиса MySQL и только на несколько минут, потом снова.

Настроил методом тыка, больше не смог оптимизировать, из-за нехватки опыта..
Запросов примерно 5-10 в секунду проходит, выполняется запись в таблицу параметра.
Прошу поглядеть, подсказать, что подправить)

Конфигурация mariaDB (10-я)


[client]
port = 3306
socket = /var/lib/mysql/mysql.sock

[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
join_buffer_size = 64K
key_buffer_size = 1M
max_allowed_packet = 1M
table_open_cache = 1000
sort_buffer_size = 64K
read_buffer_size = 64K
read_rnd_buffer_size = 64K
query_cache_size = 10M
query_cache_limit = 10M
net_buffer_length = 2K
thread_stack = 64K
thread_cache_size = 5
max_connections = 20
max_user_connections = 10
skip-innodb
skip-bdb
skip-networking
default-storage-engine=myisam
query-cache-type=0
performance_schema = 0
server-id = 1

[mysqldump]
quick
max_allowed_packet = 8M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 1M
sort_buffer_size = 1M

[mysqlhotcopy]
interactive-timeout


___

CentOS 6 (x32, 256 мб памяти, XEN, процессор 2000 МГц )
php-FPM
mariaDB (10-я)
nginx
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943912
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Погодите на MySQL валить. Вы уверены что с веб-сервером все в порядке? Что нет атаки, не пришел краулер или еще какая зараза?


BossBoxkey_buffer_size = 1M
...
skip-innodbЭто как это? Какой тип таблиц реально используете?
Первый ключ делает практически неработоспособным MyISAM, а второй напрочь отключает InnoDB.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943915
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что скажет SHOW FULL PROCESSLIST во время нагрузки?
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943917
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBoxCPU на 100%Какие-то запросы при этом выполняются, есть ли "зависшие" или "долгоиграющие" в списке процессов?

BossBoxПомогает только перезапуск сервиса MySQLОстановка на некоторое время потока запросов (отключение клиента и т.п.) не помогает?
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943920
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftПогодите на MySQL валить. Вы уверены что с веб-сервером все в порядке? Что нет атаки, не пришел краулер или еще какая зараза?


BossBoxkey_buffer_size = 1M
...
skip-innodbЭто как это? Какой тип таблиц реально используете?
Первый ключ делает практически неработоспособным MyISAM, а второй напрочь отключает InnoDB.

С веб-сервером все нормально, nginx работает исправно.

Может быть PHP-FPM настроен как то неправильно, т.к. идет запрос на файл PHP и после через него уже к MYSQL.
Пробовал во время CPU 100%, перегрузить сервис PHP-FPM, буквально на несколько секунд спадает процессор и снова подымается, помогает только перезапуск MySQL.

Я глубоко извиняюсь, я плохо знаком с настройкой MySQL, возможно она выглядит у меня не очень вменяемо )
Использую MyISAM, в mysqltuner.pl показано отключить innoDB я вот отключил, и key_buffer_size тоже показало увеличить.

Вот текущий mysqltunner:

[!!] Currently running unsupported MySQL version 10.0.17-MariaDB
[OK] Operating on 32-bit architecture with less than 2GB RAM

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +ARCHIVE +Aria +BLACKHOLE +CSV +FEDERATED -InnoDB +MRG_MyISAM
[--] Data in MyISAM tables: 4M (Tables: 37)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 52)
[OK] Total fragmented tables: 0

-------- Security Recommendations -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 10s (9 q [0.900 qps], 8 conn, TX: 12K, RX: 1K)
[--] Reads / Writes: 100% / 0%
[--] Total buffers: 27.0M global + 384.0K per thread (20 max threads)
[OK] Maximum possible memory usage: 34.5M (14% of installed RAM)
[OK] Slow queries: 0% (0/9)
[OK] Highest usage of available connections: 5% (1/20)
[!!] Key buffer size / total MyISAM indexes: 1.0M/1.1M
[!!] Query cache is disabled
[OK] Temporary tables created on disk: 0% (0 on disk / 2 total)
[OK] Thread cache hit rate: 87% (1 created / 8 connections)
[OK] Table cache hit rate: 100% (62 open / 0 opened)
[OK] Open file limit used: 1% (24/2K)
[OK] Table locks acquired immediately: 100% (72 immediate / 72 locks)
[!!] Connections aborted: 25%

-------- Recommendations -----------------------------------------------------
General recommendations:
MySQL started within last 24 hours - recommendations may be inaccurate
Your applications are not closing MySQL connections properly
Variables to adjust:
key_buffer_size (> 1.1M)
query_cache_type (=1)
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943925
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleBossBoxCPU на 100%Какие-то запросы при этом выполняются, есть ли "зависшие" или "долгоиграющие" в списке процессов?

BossBoxПомогает только перезапуск сервиса MySQLОстановка на некоторое время потока запросов (отключение клиента и т.п.) не помогает?

В списке только MySQL висит в самом вверху с пометкой в графе CPU 98-99%, остальные нормально работают, но NGINX соответственно начинает долго отдавать страницы (из-за CPU наверно)

Вот сейчас запустил сервер ( картинка ), подожду когда будет CPU 100% выложу скрин.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943930
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, извиняюсь, тут нельзя что ли редактировать сообщения
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943932
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот SHOW FULL PROCESSLIST

...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943933
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Картинка не показывается...

http://cs622221.vk.me/v622221818/27021/qb3t4-y4nIw.jpg
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943945
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBoxВот когда нагрузка CPU 100%Со стороны системы не увидите ничего. Смотрите, чем сам мускуль занят - mytop или периодическим вызовом SHOW FULL PROCESSLIST.

Если смотреть на картинку, криминального ничего не вижу на ней. Одно ядро выделено на машину? Если это так, и оно загружено чуть более чем наполовину (если верить LA) за последнюю минуту - то беспокоиться тут вообще не о чем. Что по мне, так лучше при возможности выделить машине ресурсов с некоторым запасом. Больше чем сможет откусить, всё равно не съест, зато при решения авральных задач в ступор не впадает сразу.



PS: Текстовые сообщения на этом форуме вполне можно размещать в виде текста с форматированием. Не обязательно постить картинки на весь экран.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943947
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleBossBoxВот когда нагрузка CPU 100%Со стороны системы не увидите ничего. Смотрите, чем сам мускуль занят - mytop или периодическим вызовом SHOW FULL PROCESSLIST.

Если смотреть на картинку, криминального ничего не вижу на ней. Одно ядро выделено на машину? Если это так, и оно загружено чуть более чем наполовину (если верить LA) за последнюю минуту - то беспокоиться тут вообще не о чем. Что по мне, так лучше при возможности выделить машине ресурсов с некоторым запасом. Больше чем сможет откусить, всё равно не съест, зато при решения авральных задач в ступор не впадает сразу.



PS: Текстовые сообщения на этом форуме вполне можно размещать в виде текста с форматированием. Не обязательно постить картинки на весь экран.

Да, 1 ядро. Так как жить то дальше, если MySQL начинает грузить CPU 100%, сервер то страдает от этого, страницы отдает долго и сам тормозит )))
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943956
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Установил mytop заметил, что при CPU 100% значение Key Efficiency: 90.1% становится ВЫСОКИМ.( картинка )

Из-за него может быть и как оптимально его выставить?
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943970
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBoxДа, 1 ядро. Так как жить то дальше, если MySQL начинает грузить CPU 100%, сервер то страдает от этогоНу оно вполне логично. Ведь кроме мускуля на сервере есть ещё и вебсервер, да и собственные нужды тоже никто не отменял. Всё это эффективно разрулить на одном ядре не очень то получается. То есть, получится, конечно, когда запросы относительно редки. Но когда к вебсерверу приходит запрос странички, а проц в это время дико занят перемалыванием базы данных - разумеется, нагрузка будет расти. Способов выхода из такой ситуации не слишком много. Добавить машине одно или два ядра - это может сильно улучшить ситуацию, но дальнейшее наращивание скорее всего будет практически бесполезным - бутылочное горлышко переместится в другое место. Второй путь - это оптимизация настроек мускуля и оптимизация таблиц и запросов. В первую очередь следует выявить медленные запросы и постараться от них избавиться. Во время выполнения одного долгоиграющего запроса другие (полученные от других запросов к вебсерверу) могут выстраивать очереди. Это как раз создаёт иллюзию тормознутости сервера в целом.


BossBoxCPU 100% значение Key Efficiency: 90.1% становится ВЫСОКИМНу это вроде статистики использования буфера индексов в памяти, без обращения к диску. Возможно, при возрастании нагрузки выполняется большое количество однотипных запросов и индексы не вымываются из буфера. Само по себе это значение мало чего говорит (чем больше - тем лучше, 100% - идеал), но будет полезным при хорошем представлении об используемых в запросах таблицах. Во всяком случае, имеющееся key_buffer_size = 1M лично мне кажется слишком низким значением для сколько-то серьёзной работы. Если и при нормальной работе (при низкой нагрузке) значение эффективности остаётся высоким - то есть смысл посмотреть, все ли необходимые индексы установлены. А если снижается - ну тут понятно, пожадничали с памятью и мускуль вынужден заново считывать индексы с диска, что совершенно не улучшает производительность системы в целом. До 100% эффективность может и не догоните, но уж 95 надо бы получить.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38943984
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle...

У меня в общем сейчас такая ситуация, в БД 27 таблиц, примерно в 40% из них содержится около 1000-10000 записей (строка с 2 значениями, IP и DATA), всего около 100 000 записей в этой БД.

Я почитал про индексы, но так и не понял, как ими пользоваться, через php что ли?
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944005
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBoxЯ почитал про индексы, но так и не понял, как ими пользоваться
Если очень коротко, то индексы позволяют обращаться непосредственно в нужное место таблицы (или файла таблицы, если так угодно) без необходимости "прокручивания" всей таблицы в поисках нужных записей. Это одна из основных функций индекса, есть ещё и другие. Когда индекс портится (например, при пропадании ляктричества), то сервер часто после включения продолжает вроде бы нормально работать, но при этом нещадно тупит, попутно инициируя множество ненужного чтения с диска.

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

Потому при проблемах СУБД с индексами приходится сталкиваться практически всегда - и при первоначальном осмотре, и при разного рода восстановлении, и при оптимизации запросов и таблиц...


BossBoxвсего около 100 000 записей в этой БДЭто немного. Описываемая БД единственная на сервере, или есть ещё другие, активно или не очень используемые?
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944112
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBox[--] Data in MyISAM tables: 4M (Tables: 37)
BossBox[!!] Key buffer size / total MyISAM indexes: 1.0M/1.1MБаза крохотная совсем.
key_buffer_size достаточно будет 2-4 Мб. Далее по мере роста базы или создания новых индексов будет достаточно, если он будет превышать "total MyISAM indexes" на 10-20%.

И покажите результат SHOW CREATE TABLE upd_wotspeak_ru
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944152
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я конечно понимаю, что ждать что кто то решит мою проблему и напишет готовый вариант, глупо.
Но зачем я написал тогда на форум, в итоге ни решения ничего, одна теория не нужная..
Ее почитать и в сети, я читал.

Команда: SHOW CREATE TABLE

MariaDB [NotificationBox]> SHOW CREATE TABLE upd_wotspeak_ru;
+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| upd_wotspeak_ru | CREATE TABLE `upd_wotspeak_ru` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data` varchar(50) NOT NULL,
`host` varchar(50) NOT NULL,
`type` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=24773 DEFAULT CHARSET=latin1 |
+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944162
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBoxЯ конечно понимаю, что ждать что кто то решит мою проблему и напишет готовый вариант, глупо.
Но зачем я написал тогда на форум, в итоге ни решения ничего, одна теория не нужная..
Ее почитать и в сети, я читал.
Простите, а что конкретно Вы ожидали от форума?

Предложение увеличить размер буфера ключей - было. Сделали? Понаблюдали за результатом? Что изменилось?

Предложение показать грузящие запросы - было. Не показали. Предлагаете гадать на кофейной гуще, что там выполняется?

Структура таблицы есть. Это хорошо. Запросов, которые на ней выполняются - не видно. Сложно сказать, достаточно ли для нормальной работы единственного индекса на поле `id` или нужны какие-то ещё. Наверняка, нужны. Какие именно - надо смотреть по запросам. Показывайте их.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944168
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBoxНо зачем я написал тогда на форум, в итоге ни решения ничего, одна теория не нужная..Спокойствие, только спокойствие.
Про то, что нужно увеличить key_buffer_size вам уже написали.

Теперь создайте индекс по полю host в таблице upd_wotspeak_ru. UPDATE, который был показан выше, должен начать работать заметно быстрее. А если в поле `host` всегда хранятся только ip-адреса, то имеет смысл сменить тип поля на unsigned int, тогда сократится и размер таблицы, и размер индекса. И поиск станет еще немного быстрее. Правда, тогда придется и запросы править, которые с этой таблицей работают.

Если включите sloq query log, то сможете наловить еще запросов, которые можно оптимизировать.

И мой вопрос насчет роста интенсивности внешних запросов вы пропустили.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944170
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleЗапросов, которые на ней выполняются - не видно.На скриншоте я таки один разглядел :)
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944222
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, что не всю информацию предоставил. Я сейчас установил, phpMyAdmin там вроде есть советы по оптимизации после как сервер проработает какое то время и переустановлю MariaDB, в течении 2-3 дней подыму тему, как сервер проработает и если повторится нагрузка на CPU 100%.

miksoftТеперь создайте индекс по полю host в таблице upd_wotspeak_ru. UPDATE, который был показан выше, должен начать работать заметно быстрее. А если в поле `host` всегда хранятся только ip-адреса, то имеет смысл сменить тип поля на unsigned int, тогда сократится и размер таблицы, и размер индекса. И поиск станет еще немного быстрее. Правда, тогда придется и запросы править, которые с этой таблицей работают.Извиняюсь, я не знаю как это сделать.

miksoftИ мой вопрос насчет роста интенсивности внешних запросов вы пропустили.Не увидел, какой вопрос был?

[quot vkle]Предложение увеличить размер буфера ключей - было. Сделали? Понаблюдали за результатом? Что изменилось?/quot] Сервер был выключен, сейчас включил, после отдыха CPU на 100% не сразу подымается, через некоторое время как проработает.

vkleПредложение показать грузящие запросы - было. Не показали. Извиняюсь, я не знаю как это сделать.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944234
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Файл настроек для MySQL я накидал бегло (просто занизил все значения), если может кто помочь, накидайте пожалуйста какие параметры лучше прописать (хотя бы основные)
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944241
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftТеперь создайте индекс по полю host в таблице upd_wotspeak_ru. UPDATE, который был показан выше, должен начать работать заметно быстрее. А если в поле `host` всегда хранятся только ip-адреса, то имеет смысл сменить тип поля на unsigned int, тогда сократится и размер таблицы, и размер индекса. И поиск станет еще немного быстрее. Правда, тогда придется и запросы править, которые с этой таблицей работают.

Расскажите пожалуйста это поподробнее!!! Я нулевой уровень, в этих настройках.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944244
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBoxmiksoftТеперь создайте индекс по полю host в таблице upd_wotspeak_ru.Извиняюсь, я не знаю как это сделать.Либо кнопконажимательно в phpMyAdmin (деталей не подскажу), либо командой CREATE INDEX idx_host ON upd_wotspeak_ru (host)



BossBoxmiksoftИ мой вопрос насчет роста интенсивности внешних запросов вы пропустили.Не увидел, какой вопрос был?miksoftЧто нет атаки, не пришел краулер или еще какая зараза?Это к тому, что если выросло количество внешних запросов, то неудивительно, что сервер перегружен, а MySQL просто оказался узким местом.
Возможно, есть смысл ввести какой-то контроль или ограничения на уровне файерволла или веб-сервера. Например, мне пришлось запретить в файерволле ip-адреса некоторых ботов, которые имеют наглость присылать десятки http-запросов в секунду. А иногда адреса вашего сервера публикуют на популярном сайте и количество посещений резко возрастает. Т.е. такого рода случаи тоже нельзя упускать из рассмотрения.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944250
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBox,

Но поскольку мы в подфоруме по MySQL, то предлагаю им и заняться.
Выполните рекомендации, данные выше, и включите Slow query log. Думаю, там наберутся еще запросы, которые нужно оптимизировать. Показывайте их здесь в текстовом виде в тэге SRC.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944285
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBoxФайл настроек для MySQL я накидал бегло (просто занизил все значения), если может кто помочь, накидайте пожалуйста какие параметры лучше прописать (хотя бы основные)Лучше всего, оставить дефолтовые настройки. Если конфига нет после установки - и не надо его делать. Для многих и многих случаев это самый простой способ настройки СУБД на первое время, особенно, если нет ясного понимания влияния каждого из вносимых в файл параметров. Будут проблемы - сделаете правки для устранения конкретных проблем. У меня были случаи, когда руками писаный конфиг отсутствовал на сервере - и никто этого не замечал годами.

Для Вашего случая, пожалуй, можно только skip-innodb оставить, если этот движок не нужен и skip-networking , если сетевые подключения не нужны.

А так в конфиге ляпы, конечно... port = 3306 - указывает номер порта для сетевых подключений, а skip-networking запрещает сетевые подключения.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944336
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftЛибо кнопконажимательно в phpMyAdmin (деталей не подскажу), либо командой CREATE INDEX idx_host ON upd_wotspeak_ru (host)
Данное действие, нужно выполнять каждый раз при создании новой таблицы?
Данные соответственно которые будут добавлять в таблицу автоматически будут с данным индексом?

miksoftЧто нет атаки, не пришел краулер или еще какая зараза?Это к тому, что если выросло количество внешних запросов, то неудивительно, что сервер перегружен, а MySQL просто оказался узким местом.
Возможно, есть смысл ввести какой-то контроль или ограничения на уровне файерволла или веб-сервера. Например, мне пришлось запретить в файерволле ip-адреса некоторых ботов, которые имеют наглость присылать десятки http-запросов в секунду. А иногда адреса вашего сервера публикуют на популярном сайте и количество посещений резко возрастает. Т.е. такого рода случаи тоже нельзя упускать из рассмотрения.[/quot]

Я отвечал - нет нету, сервер предназначен для статистика, PHPmyAdmin показал запросов в секунду:

ø за час: 139,587
ø за минуту: 2,326
ø в секунду: 39

Помимо этого в начале, порядок действий от 1 запроса такой:

1. Загрузка файла с сервера (15-30кб)
2. Обращение к файлу PHP на сервере
> PHP обращается к MYSQL
>> Запись/обновление данных в таблице, где есть этот IP
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944342
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleBossBoxФайл настроек для MySQL я накидал бегло (просто занизил все значения), если может кто помочь, накидайте пожалуйста какие параметры лучше прописать (хотя бы основные)Лучше всего, оставить дефолтовые настройки. Если конфига нет после установки - и не надо его делать. Для многих и многих случаев это самый простой способ настройки СУБД на первое время, особенно, если нет ясного понимания влияния каждого из вносимых в файл параметров. Будут проблемы - сделаете правки для устранения конкретных проблем. У меня были случаи, когда руками писаный конфиг отсутствовал на сервере - и никто этого не замечал годами.

Для Вашего случая, пожалуй, можно только skip-innodb оставить, если этот движок не нужен и skip-networking , если сетевые подключения не нужны.

А так в конфиге ляпы, конечно... port = 3306 - указывает номер порта для сетевых подключений, а skip-networking запрещает сетевые подключения.

По по поводу, в конфиге несколько секций

[client]
[mysqld]
[mysqldump]
[mysql]
[myisamchk]

В myisamchk прописано:

key_cache_size = 2M
key_buffer_size = 2M
sort_buffer_size = 2M

Они применяются к mysqld, или нужно их туда записать а из myisamchk удалить ?
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944363
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBoxmiksoftЛибо кнопконажимательно в phpMyAdmin (деталей не подскажу), либо командой CREATE INDEX idx_host ON upd_wotspeak_ru (host)
Данное действие, нужно выполнять каждый раз при создании новой таблицы?Это нужно сделать один раз.
Для новых таблиц могут потребоваться или не потребоваться другие индексы. Зависит от запросов и фактических даных, которые будут лежать в этих таблицах.


BossBoxПо по поводу, в конфиге несколько секцийСейчас речь идет о секции [mysqld]. Именно в ней задаются настройки для сервера.
Остальные секции играют роль для соответствующих утилит.

BossBox2. Обращение к файлу PHP на сервере
> PHP обращается к MYSQL
>> Запись/обновление данных в таблице, где есть этот IPПодозреваю, что этот блок можно заменить одной командой LOAD DATA INFILE. Или двумя - загрузкой в промежуточную таблицу и вставкой в рабочие.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944390
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня в PHP файле такой код:
Код: php
1.
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.
<?php

	echo "---<br>";

	$mysqli = new mysqli("localhost", "root", "password", "NotificationBox");

	if ($mysqli->connect_error) {
		die('Ошибка подключения (' . $mysqli->connect_errno . ') '
				. $mysqli->connect_error);
	}
	
	$base = $_GET["base"];
	$type = $_GET["type"];
	
	$dats = date("Y-m-d H:i:s");
	
	$host = $_SERVER["REMOTE_ADDR"];

	if ($mysqli->query("CREATE TABLE ".$base." (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, data VARCHAR(50) NOT NULL, host VARCHAR(50) NOT NULL, type VARCHAR(50) NOT NULL)"))

		{echo "- Новая таблица успешно создана<br>";}

	else
	
		if ($mysqli->errno == 1050)

			{echo "Таблица уже существует<br>";}
		
		else
			
			{echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;}
		
	if ($type == "init")
		
		{
			if (!$mysqli->query("SELECT '".$host."' FROM ".$base." WHERE host = '".$host."'")->num_rows > 0)
				
				{
					$mysqli->query("INSERT INTO ".$base." (data, host, type) VALUES ('".$dats."', '".$host."', '".$type."')");
				}
			
			else
			
				if ($mysqli->query("UPDATE ".$base." SET type = '".$type."' WHERE host = '".$host."'"))
				
					{
						{echo "<br>Данные успешно обновлены<br>";}
					}
				
				else
				
					{echo "<br>Ошибка обновления данных<br>: (" . $mysqli->errno . ") " . $mysqli->error;}

		}
	
	if ($type == "exit")
		
		{
			if ($mysqli->query("SELECT '".$host."' FROM ".$base." WHERE host = '".$host."'")->num_rows > 0)
				
				{
					// $mysqli->query("DELETE FROM ".$base." WHERE host = '".$host."'");

					if ($mysqli->query("UPDATE ".$base." SET type = '".$type."' WHERE host = '".$host."'"))
					
						{
							{echo "<br>Данные успешно обновлены<br>";}
						}
					
					else
					
						{echo "<br>Ошибка обновления данных<br>: (" . $mysqli->errno . ") " . $mysqli->error;}
				}
				
			else
			
				{
					{echo "Чувак обновлять то нечего 0_o";}
				}
		}
	
	echo "---<br>";
	
	if (mysqli_close($mysqli))
		
		{
			{echo "Соединение успешно закрыто";}
		}
	
	else
		
		{
			{echo "ВНИМАНИЕ! Соединение не закрыто";}
		}

?>



Я тут попробовал, чтобы не ждать CPU100%, скопировал данный участок 3 раза, тут действие то выполняется простое соеденится и проверить и обновить, но MySQL сразу почему выдает сразу CPU 100%, кажется что код который выше (продублированный 3 раза) написан не оптимально..
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944429
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBox
Код: php
1.
2.
3.
4.
	if ($type == "init")
		
		{
			if (!$mysqli->query("SELECT '".$host."' FROM ".$base." WHERE host = '".$host."'")->num_rows > 0)

Здесь ветки if и else местами не перепутаны?
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944460
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBoxmiksoftЛибо кнопконажимательно в phpMyAdmin (деталей не подскажу), либо командой CREATE INDEX idx_host ON upd_wotspeak_ru (host)
Данное действие, нужно выполнять каждый раз при создании новой таблицы?
BossBoxУ меня в PHP файле такой код:У Вас таблицы однотипной структуры создаются скриптом. Так что, для новых таблиц достаточно один раз поправить этот скрипт. Для существующих - просто добавить индекс.

Ещё момент. Дату, конечно, можно хранить в текстовом поле. В смысле, она туда умещается. Если хотите хранить именно в текстовом, то есть смысл сменить тип поля на char с фиксированной длиной - в данном конкретном случае длина строки постоянна. Однако, для хранения даты/времени в мускуле имеется специально для этого предназначенный тип поля.

IP-адреса можно хранить в виде целого (собственно, адреса IPv4 - это и есть 32-битное целое). При таком подходе появляется необходимость дополнительной обработки данных при записи/чтении, но по компактности хранения и по производительности оно будет в разы лучше.

И ещё, касаемо безопасности. Значения $_GET["base"] и $_GET["type"] в данном коде попадают напрямую в запрос без каких-то проверок на допустимость.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944493
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё пара моментов ао коду.

Вместо "CREATE TABLE" с последующей проверкой на ошибку 1050 можно использовать "CREATE TABLE IF NOT EXISTS". Соответственно, проверка упрощается.

И ещё одна ошибка. Если таблицу создать не удалось, то дальнейшие обращения к этой несуществующей таблице попросту бесполезны.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944509
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы еще предложил сделать одну таблицу, а $base сделать в ней полем. Тогда понадобится индекс (base,host). Но не понадобится создавать таблицу на лету, что не такая уж дешевая операция.
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944577
BossBox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleBossBoxпропущено...

Данное действие, нужно выполнять каждый раз при создании новой таблицы?
BossBoxУ меня в PHP файле такой код:У Вас таблицы однотипной структуры создаются скриптом. Так что, для новых таблиц достаточно один раз поправить этот скрипт. Для существующих - просто добавить индекс.

Меня просто терзают сомнения, в PHP то нужно что-то менять чтобы задействовать индексы при запросе к БД?
Или после того как добавлю индексы к таблице, при запросе моего PHP к таблице для поиска ключей, MySQL сама все сделает (будет использовать)?
...
Рейтинг: 0 / 0
Непонятная нагрузка на CPU 100% после запуска MYSQL
    #38944590
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BossBoxИли после того как добавлю индексы к таблице, при запросе моего PHP к таблице для поиска ключей, MySQL сама все сделает (будет использовать)?Обычно да. В редких сложных случаях нужно в запросе добавить хинт для задействования индекса. Здесь же случай простой, думаю, индекс сам подхватится.
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Непонятная нагрузка на CPU 100% после запуска MYSQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]