|
|
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Проблема такая, после 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 19:37:00 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
Погодите на MySQL валить. Вы уверены что с веб-сервером все в порядке? Что нет атаки, не пришел краулер или еще какая зараза? BossBoxkey_buffer_size = 1M ... skip-innodbЭто как это? Какой тип таблиц реально используете? Первый ключ делает практически неработоспособным MyISAM, а второй напрочь отключает InnoDB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 19:44:44 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
И что скажет SHOW FULL PROCESSLIST во время нагрузки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 19:47:28 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
BossBoxCPU на 100%Какие-то запросы при этом выполняются, есть ли "зависшие" или "долгоиграющие" в списке процессов? BossBoxПомогает только перезапуск сервиса MySQLОстановка на некоторое время потока запросов (отключение клиента и т.п.) не помогает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 19:49:25 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
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) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 19:51:58 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
vkleBossBoxCPU на 100%Какие-то запросы при этом выполняются, есть ли "зависшие" или "долгоиграющие" в списке процессов? BossBoxПомогает только перезапуск сервиса MySQLОстановка на некоторое время потока запросов (отключение клиента и т.п.) не помогает? В списке только MySQL висит в самом вверху с пометкой в графе CPU 98-99%, остальные нормально работают, но NGINX соответственно начинает долго отдавать страницы (из-за CPU наверно) Вот сейчас запустил сервер ( картинка ), подожду когда будет CPU 100% выложу скрин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 19:57:42 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
Блин, извиняюсь, тут нельзя что ли редактировать сообщения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 20:05:08 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
Вот SHOW FULL PROCESSLIST ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 20:07:55 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 20:08:28 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
BossBoxВот когда нагрузка CPU 100%Со стороны системы не увидите ничего. Смотрите, чем сам мускуль занят - mytop или периодическим вызовом SHOW FULL PROCESSLIST. Если смотреть на картинку, криминального ничего не вижу на ней. Одно ядро выделено на машину? Если это так, и оно загружено чуть более чем наполовину (если верить LA) за последнюю минуту - то беспокоиться тут вообще не о чем. Что по мне, так лучше при возможности выделить машине ресурсов с некоторым запасом. Больше чем сможет откусить, всё равно не съест, зато при решения авральных задач в ступор не впадает сразу. PS: Текстовые сообщения на этом форуме вполне можно размещать в виде текста с форматированием. Не обязательно постить картинки на весь экран. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 20:38:48 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
vkleBossBoxВот когда нагрузка CPU 100%Со стороны системы не увидите ничего. Смотрите, чем сам мускуль занят - mytop или периодическим вызовом SHOW FULL PROCESSLIST. Если смотреть на картинку, криминального ничего не вижу на ней. Одно ядро выделено на машину? Если это так, и оно загружено чуть более чем наполовину (если верить LA) за последнюю минуту - то беспокоиться тут вообще не о чем. Что по мне, так лучше при возможности выделить машине ресурсов с некоторым запасом. Больше чем сможет откусить, всё равно не съест, зато при решения авральных задач в ступор не впадает сразу. PS: Текстовые сообщения на этом форуме вполне можно размещать в виде текста с форматированием. Не обязательно постить картинки на весь экран. Да, 1 ядро. Так как жить то дальше, если MySQL начинает грузить CPU 100%, сервер то страдает от этого, страницы отдает долго и сам тормозит ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 20:40:32 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
Установил mytop заметил, что при CPU 100% значение Key Efficiency: 90.1% становится ВЫСОКИМ.( картинка ) Из-за него может быть и как оптимально его выставить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 21:06:06 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
BossBoxДа, 1 ядро. Так как жить то дальше, если MySQL начинает грузить CPU 100%, сервер то страдает от этогоНу оно вполне логично. Ведь кроме мускуля на сервере есть ещё и вебсервер, да и собственные нужды тоже никто не отменял. Всё это эффективно разрулить на одном ядре не очень то получается. То есть, получится, конечно, когда запросы относительно редки. Но когда к вебсерверу приходит запрос странички, а проц в это время дико занят перемалыванием базы данных - разумеется, нагрузка будет расти. Способов выхода из такой ситуации не слишком много. Добавить машине одно или два ядра - это может сильно улучшить ситуацию, но дальнейшее наращивание скорее всего будет практически бесполезным - бутылочное горлышко переместится в другое место. Второй путь - это оптимизация настроек мускуля и оптимизация таблиц и запросов. В первую очередь следует выявить медленные запросы и постараться от них избавиться. Во время выполнения одного долгоиграющего запроса другие (полученные от других запросов к вебсерверу) могут выстраивать очереди. Это как раз создаёт иллюзию тормознутости сервера в целом. BossBoxCPU 100% значение Key Efficiency: 90.1% становится ВЫСОКИМНу это вроде статистики использования буфера индексов в памяти, без обращения к диску. Возможно, при возрастании нагрузки выполняется большое количество однотипных запросов и индексы не вымываются из буфера. Само по себе это значение мало чего говорит (чем больше - тем лучше, 100% - идеал), но будет полезным при хорошем представлении об используемых в запросах таблицах. Во всяком случае, имеющееся key_buffer_size = 1M лично мне кажется слишком низким значением для сколько-то серьёзной работы. Если и при нормальной работе (при низкой нагрузке) значение эффективности остаётся высоким - то есть смысл посмотреть, все ли необходимые индексы установлены. А если снижается - ну тут понятно, пожадничали с памятью и мускуль вынужден заново считывать индексы с диска, что совершенно не улучшает производительность системы в целом. До 100% эффективность может и не догоните, но уж 95 надо бы получить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 21:50:31 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
vkle... У меня в общем сейчас такая ситуация, в БД 27 таблиц, примерно в 40% из них содержится около 1000-10000 записей (строка с 2 значениями, IP и DATA), всего около 100 000 записей в этой БД. Я почитал про индексы, но так и не понял, как ими пользоваться, через php что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 22:14:34 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
BossBoxЯ почитал про индексы, но так и не понял, как ими пользоваться Если очень коротко, то индексы позволяют обращаться непосредственно в нужное место таблицы (или файла таблицы, если так угодно) без необходимости "прокручивания" всей таблицы в поисках нужных записей. Это одна из основных функций индекса, есть ещё и другие. Когда индекс портится (например, при пропадании ляктричества), то сервер часто после включения продолжает вроде бы нормально работать, но при этом нещадно тупит, попутно инициируя множество ненужного чтения с диска. Вообще то, правильное использование индексов должен был предусмотреть программист, писавший приблуду приложение, которое использует базу данных. Однако, все мы люди, и ошибки/недороаботки не исключены - бывает, что какого-то индекса не хватает для достижения хорошей производительности при выполнении какого-то запроса, а бывает, что лишний индекс сказывается неблагоприятным образом. Потому при проблемах СУБД с индексами приходится сталкиваться практически всегда - и при первоначальном осмотре, и при разного рода восстановлении, и при оптимизации запросов и таблиц... BossBoxвсего около 100 000 записей в этой БДЭто немного. Описываемая БД единственная на сервере, или есть ещё другие, активно или не очень используемые? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2015, 23:00:26 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 07:26:36 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
Я конечно понимаю, что ждать что кто то решит мою проблему и напишет готовый вариант, глупо. Но зачем я написал тогда на форум, в итоге ни решения ничего, одна теория не нужная.. Ее почитать и в сети, я читал. Команда: 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) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 09:09:18 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
BossBoxЯ конечно понимаю, что ждать что кто то решит мою проблему и напишет готовый вариант, глупо. Но зачем я написал тогда на форум, в итоге ни решения ничего, одна теория не нужная.. Ее почитать и в сети, я читал. Простите, а что конкретно Вы ожидали от форума? Предложение увеличить размер буфера ключей - было. Сделали? Понаблюдали за результатом? Что изменилось? Предложение показать грузящие запросы - было. Не показали. Предлагаете гадать на кофейной гуще, что там выполняется? Структура таблицы есть. Это хорошо. Запросов, которые на ней выполняются - не видно. Сложно сказать, достаточно ли для нормальной работы единственного индекса на поле `id` или нужны какие-то ещё. Наверняка, нужны. Какие именно - надо смотреть по запросам. Показывайте их. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 09:27:47 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
BossBoxНо зачем я написал тогда на форум, в итоге ни решения ничего, одна теория не нужная..Спокойствие, только спокойствие. Про то, что нужно увеличить key_buffer_size вам уже написали. Теперь создайте индекс по полю host в таблице upd_wotspeak_ru. UPDATE, который был показан выше, должен начать работать заметно быстрее. А если в поле `host` всегда хранятся только ip-адреса, то имеет смысл сменить тип поля на unsigned int, тогда сократится и размер таблицы, и размер индекса. И поиск станет еще немного быстрее. Правда, тогда придется и запросы править, которые с этой таблицей работают. Если включите sloq query log, то сможете наловить еще запросов, которые можно оптимизировать. И мой вопрос насчет роста интенсивности внешних запросов вы пропустили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 09:33:46 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
vkleЗапросов, которые на ней выполняются - не видно.На скриншоте я таки один разглядел :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 09:34:35 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, что не всю информацию предоставил. Я сейчас установил, phpMyAdmin там вроде есть советы по оптимизации после как сервер проработает какое то время и переустановлю MariaDB, в течении 2-3 дней подыму тему, как сервер проработает и если повторится нагрузка на CPU 100%. miksoftТеперь создайте индекс по полю host в таблице upd_wotspeak_ru. UPDATE, который был показан выше, должен начать работать заметно быстрее. А если в поле `host` всегда хранятся только ip-адреса, то имеет смысл сменить тип поля на unsigned int, тогда сократится и размер таблицы, и размер индекса. И поиск станет еще немного быстрее. Правда, тогда придется и запросы править, которые с этой таблицей работают.Извиняюсь, я не знаю как это сделать. miksoftИ мой вопрос насчет роста интенсивности внешних запросов вы пропустили.Не увидел, какой вопрос был? [quot vkle]Предложение увеличить размер буфера ключей - было. Сделали? Понаблюдали за результатом? Что изменилось?/quot] Сервер был выключен, сейчас включил, после отдыха CPU на 100% не сразу подымается, через некоторое время как проработает. vkleПредложение показать грузящие запросы - было. Не показали. Извиняюсь, я не знаю как это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 10:18:48 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
Файл настроек для MySQL я накидал бегло (просто занизил все значения), если может кто помочь, накидайте пожалуйста какие параметры лучше прописать (хотя бы основные) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 10:26:05 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
miksoftТеперь создайте индекс по полю host в таблице upd_wotspeak_ru. UPDATE, который был показан выше, должен начать работать заметно быстрее. А если в поле `host` всегда хранятся только ip-адреса, то имеет смысл сменить тип поля на unsigned int, тогда сократится и размер таблицы, и размер индекса. И поиск станет еще немного быстрее. Правда, тогда придется и запросы править, которые с этой таблицей работают. Расскажите пожалуйста это поподробнее!!! Я нулевой уровень, в этих настройках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 10:29:54 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
BossBoxmiksoftТеперь создайте индекс по полю host в таблице upd_wotspeak_ru.Извиняюсь, я не знаю как это сделать.Либо кнопконажимательно в phpMyAdmin (деталей не подскажу), либо командой CREATE INDEX idx_host ON upd_wotspeak_ru (host) BossBoxmiksoftИ мой вопрос насчет роста интенсивности внешних запросов вы пропустили.Не увидел, какой вопрос был?miksoftЧто нет атаки, не пришел краулер или еще какая зараза?Это к тому, что если выросло количество внешних запросов, то неудивительно, что сервер перегружен, а MySQL просто оказался узким местом. Возможно, есть смысл ввести какой-то контроль или ограничения на уровне файерволла или веб-сервера. Например, мне пришлось запретить в файерволле ip-адреса некоторых ботов, которые имеют наглость присылать десятки http-запросов в секунду. А иногда адреса вашего сервера публикуют на популярном сайте и количество посещений резко возрастает. Т.е. такого рода случаи тоже нельзя упускать из рассмотрения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 10:32:27 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
BossBox, Но поскольку мы в подфоруме по MySQL, то предлагаю им и заняться. Выполните рекомендации, данные выше, и включите Slow query log. Думаю, там наберутся еще запросы, которые нужно оптимизировать. Показывайте их здесь в текстовом виде в тэге SRC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 10:36:41 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
BossBoxФайл настроек для MySQL я накидал бегло (просто занизил все значения), если может кто помочь, накидайте пожалуйста какие параметры лучше прописать (хотя бы основные)Лучше всего, оставить дефолтовые настройки. Если конфига нет после установки - и не надо его делать. Для многих и многих случаев это самый простой способ настройки СУБД на первое время, особенно, если нет ясного понимания влияния каждого из вносимых в файл параметров. Будут проблемы - сделаете правки для устранения конкретных проблем. У меня были случаи, когда руками писаный конфиг отсутствовал на сервере - и никто этого не замечал годами. Для Вашего случая, пожалуй, можно только skip-innodb оставить, если этот движок не нужен и skip-networking , если сетевые подключения не нужны. А так в конфиге ляпы, конечно... port = 3306 - указывает номер порта для сетевых подключений, а skip-networking запрещает сетевые подключения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 10:59:10 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 11:39:47 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
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 удалить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 11:42:01 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
BossBoxmiksoftЛибо кнопконажимательно в phpMyAdmin (деталей не подскажу), либо командой CREATE INDEX idx_host ON upd_wotspeak_ru (host) Данное действие, нужно выполнять каждый раз при создании новой таблицы?Это нужно сделать один раз. Для новых таблиц могут потребоваться или не потребоваться другие индексы. Зависит от запросов и фактических даных, которые будут лежать в этих таблицах. BossBoxПо по поводу, в конфиге несколько секцийСейчас речь идет о секции [mysqld]. Именно в ней задаются настройки для сервера. Остальные секции играют роль для соответствующих утилит. BossBox2. Обращение к файлу PHP на сервере > PHP обращается к MYSQL >> Запись/обновление данных в таблице, где есть этот IPПодозреваю, что этот блок можно заменить одной командой LOAD DATA INFILE. Или двумя - загрузкой в промежуточную таблицу и вставкой в рабочие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 11:52:51 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
У меня в 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. Я тут попробовал, чтобы не ждать CPU100%, скопировал данный участок 3 раза, тут действие то выполняется простое соеденится и проверить и обновить, но MySQL сразу почему выдает сразу CPU 100%, кажется что код который выше (продублированный 3 раза) написан не оптимально.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 12:04:11 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
BossBox Код: php 1. 2. 3. 4. Здесь ветки if и else местами не перепутаны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 12:28:38 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
BossBoxmiksoftЛибо кнопконажимательно в phpMyAdmin (деталей не подскажу), либо командой CREATE INDEX idx_host ON upd_wotspeak_ru (host) Данное действие, нужно выполнять каждый раз при создании новой таблицы? BossBoxУ меня в PHP файле такой код:У Вас таблицы однотипной структуры создаются скриптом. Так что, для новых таблиц достаточно один раз поправить этот скрипт. Для существующих - просто добавить индекс. Ещё момент. Дату, конечно, можно хранить в текстовом поле. В смысле, она туда умещается. Если хотите хранить именно в текстовом, то есть смысл сменить тип поля на char с фиксированной длиной - в данном конкретном случае длина строки постоянна. Однако, для хранения даты/времени в мускуле имеется специально для этого предназначенный тип поля. IP-адреса можно хранить в виде целого (собственно, адреса IPv4 - это и есть 32-битное целое). При таком подходе появляется необходимость дополнительной обработки данных при записи/чтении, но по компактности хранения и по производительности оно будет в разы лучше. И ещё, касаемо безопасности. Значения $_GET["base"] и $_GET["type"] в данном коде попадают напрямую в запрос без каких-то проверок на допустимость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 12:49:39 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
Ещё пара моментов ао коду. Вместо "CREATE TABLE" с последующей проверкой на ошибку 1050 можно использовать "CREATE TABLE IF NOT EXISTS". Соответственно, проверка упрощается. И ещё одна ошибка. Если таблицу создать не удалось, то дальнейшие обращения к этой несуществующей таблице попросту бесполезны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 13:05:56 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
Я бы еще предложил сделать одну таблицу, а $base сделать в ней полем. Тогда понадобится индекс (base,host). Но не понадобится создавать таблицу на лету, что не такая уж дешевая операция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 13:14:53 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
vkleBossBoxпропущено... Данное действие, нужно выполнять каждый раз при создании новой таблицы? BossBoxУ меня в PHP файле такой код:У Вас таблицы однотипной структуры создаются скриптом. Так что, для новых таблиц достаточно один раз поправить этот скрипт. Для существующих - просто добавить индекс. Меня просто терзают сомнения, в PHP то нужно что-то менять чтобы задействовать индексы при запросе к БД? Или после того как добавлю индексы к таблице, при запросе моего PHP к таблице для поиска ключей, MySQL сама все сделает (будет использовать)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 13:58:01 |
|
||
|
Непонятная нагрузка на CPU 100% после запуска MYSQL
|
|||
|---|---|---|---|
|
#18+
BossBoxИли после того как добавлю индексы к таблице, при запросе моего PHP к таблице для поиска ключей, MySQL сама все сделает (будет использовать)?Обычно да. В редких сложных случаях нужно в запросе добавить хинт для задействования индекса. Здесь же случай простой, думаю, индекс сам подхватится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2015, 14:05:52 |
|
||
|
|

start [/forum/topic.php?all=1&fid=47&tid=1833274]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 328ms |

| 0 / 0 |
