powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
25 сообщений из 69, страница 1 из 3
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393583
webruk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть сервер с 200 блогами WP, на сами блоги в сутки добавляется от 100 до 1000 новых статей, посетителей не так много 20-30к хитов в сутки, общий размер баз данных 30 ГБ. Проверяя смарт статус своих ССД обнаружил, что за месяц на диск записано 60 тб, начал разбираться, оказывается mysql пишет 20-30 мегабайт в секунду на диск (iotop -d 10 -u mysql). От чего такая огромная активность? mytop показывает 81 запрос в секунду. Ну нет среди этих 81 запроса 20-30 МБ данных, я включал логи и смотрел, что за запросы, UPDATE да SELECT. Подскажите куда копать. Как временная мера - разрешил пользователям только SELECT, нагрузка на запись упала почти до 0.

Конфиг сервера:

mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /home/www/DEDIK/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
bind-address = 0.0.0.0
key_buffer = 6G
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 16
myisam-recover = BACKUP
table_cache = 4096
table_open_cache = 4096
query_cache_limit = 100M
query_cache_size = 6G

innodb_flush_log_at_trx_commit = 2
innodb_buffer_pool_size = 16G
innodb_log_buffer_size = 64M
log_error = /var/log/mysql/error.log
expire_logs_days = 10
max_binlog_size = 100M
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393613
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webruk,

Мужик, кто ж за тебя с этим WP будет разбираться, что он там пишет?
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393620
webruk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,
Проблема в том, что вордпресс столько не пишет. Это sql сервер что-то там переписывает бес конца. Вот хотелось бы понять что и как это отключить.
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393660
VGrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
webruk, например, пишет спам-кментарии. На сайтах они не видны, фильтруются чем-то типа Akismet, но в базу и на дискк - пишутся.
Попробуйте посмотреть в админках, если есть доступ, понапрягайте пользователей. Разберитесь, в какую таблицу валятся спам-коментарии и последите за их размерами.

А вообще, у Вас слегка странные настройки mysql. Особенно, бросается в глаза это: query_cache_size = 6G
Клиентские базы в InnoDB?
Памяти на сервере хварает, не свапит?

Если что, давайте посмотрим вместе - 200 сайтов на WP- вроде, не так уж и много, что бы вызывать проблемы с MySQL.

---
Виктор
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393673
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webruk,

Таблицы на каком движке используются? InnoDB или MyISAM?
Сколько памяти установлено?

Вообще, исходя из того как вольно раздаются гигабайты памяти, есть подозрение, что происходил активный своп.
webrukНу нет среди этих 81 запроса 20-30 МБ данныхОткуда такая уверенность? Вы учли все накладные расходы?
Например, апдейт одного поля с 4-х байтовым целым в одной записи может вызвать десятки килобайт записи.
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393803
webruk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VGrey,
Базы в InnoDB, я много чего пробовал перед тем, как написать, видимо не убрал лишнее из конфига.
По поводу спама в блоги были мысли, но я их исключил, открыл логи веб сервера и распарсил, спама не был, а поток в БД был. Значит точно не оно. Памяти на сервере 64 Гб.
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393804
webruk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
Я только про накладные расходы и думаю, ну или SQL сервер с моими настройками переписывает какой-то большой файл постоянно, но так же не должно быть. База растет за сутки на 1-2 ГБ, а mysql сервер пишет на диск 2 ТБ. в 1000 раз накладные расходы? Может как-то можно их уменьшить, под кеш ОЗУ отдать?
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393818
webruk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
webruk,
Больше всего UDPATE запросов в таблицы _options, есть способ их выложить в кеш и скидывать на диск, допустим, раз в минуту?
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393838
webruk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дал права на все запросы, включил general_log, получил
-rw-rw---- 1 mysql mysql 182M янв 28 20:53 sd2.log
Из этого объема UPDATE 180 МБ.
root@sd2:/home/www/DEDIK/mysql# cat sd2.log | grep UPDATE > 11111
root@sd2:/home/www/DEDIK/mysql# ls -lah 11111
-rw-r--r-- 1 root root 180M янв 28 22:17 11111
Получается в любом случае это все будет записано на диск? Никак не сделать, чтобы сервер проводил все свои манипуляции с определенными таблицами в ОЗУ и изредка скидывал результат на SSD?
Остается только перенести БД на RAID из HDD?
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393841
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webrukБаза растет за сутки на 1-2 ГБ, а mysql сервер пишет на диск 2 ТБ.Одно к другому никакого отношения не имеет.

Более того, даже SELECT-ы могут вызвать массивную запись, если временные файлы генерятся.
webrukБазы в InnoDBТогда key_buffer уменьшайте до десятков мегабайт.

query_cache_size тоже уменьшайте до вменяемых значений, например, 256 МБ.

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

Проверьте, что в системе не возникает своп.
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393845
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще можно попробовать innodb_flush_log_at_trx_commit переключить на 0.
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393848
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webrukБольше всего UDPATE запросов в таблицы _options, есть способ их выложить в кеш и скидывать на диск, допустим, раз в минуту?А что это за таблица?
Не знаю как в WP, а если бы это была своя разработка, то можно было бы сменить движок таблицы на MEMORY и периодически делать ее копию в таблице на диске. Или вообще не делать, если ее содержимое имеет смысл только короткое время.
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393853
webruk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
wp_options таблицы, у каждого блога она своя, на MEMORY сменить можно на лету? Интересно бы было попробовать. innodb_flush_log_at_trx_commit = 0 пробовал, вообще не заметил разницы между 0 и 2. Свопа нет, сейчас свободно 32 гб ОЗУ. innodb_buffer_pool_size пробовал разный, проблему с потоком на запись это не уменьшает, но, думаю, будет актуально на HDD, на которые придется вернуться снова. С таким потоком ссд придется менять раз в 3 месяца, а стоят они по 20к.
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393858
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webrukна MEMORY сменить можно на лету?Можно. Но она будет заблокирована даже на чтение на время операции с этой таблицей.
Группу таблиц скопом изменить нельзя, придется делать скрипт для поштучного изменения.
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393862
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Была подобная проблема, вылечили добавлением памяти
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393864
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettБыла подобная проблема, вылечили добавлением памятиВ данном случае не похоже на то.
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393865
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было 64 ОЗУ на сервере физически, добавили еще 128 и размер буфера пула в два раза увеличили (до 96 вроде)
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393866
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftHettБыла подобная проблема, вылечили добавлением памятиВ данном случае не похоже на то.

Мы долго голову ломали, похоже он постоянно выгружает лишнее из памяти
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393867
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettМы долго голову ломали, похоже он постоянно выгружает лишнее из памятиЧто значит "выгружает", если свопа нет?
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39393896
webruk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я уже готов переехать на RAID, можно как-нибудь оставить одну БД на ССД диске, а остальное разместить на массиве из HDD?
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39394208
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftHettМы долго голову ломали, похоже он постоянно выгружает лишнее из памятиЧто значит "выгружает", если свопа нет?

Не знаю что он там именно делает, но просто увеличение памяти снизило запись с 30-40 МБ/с до 2-5 МБ/с.
Я тогда долго запросы анализировал, не было ничего такого, что могло бы реально столько данных изменять.
Вот моя тогдашняя тема http://www.sql.ru/forum/1232540/bolshaya-nagruzka-na-disk
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39394209
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надеюсь у тебя file_per_table включено.
Можно посмотреть при помощи утилиты sysdig скорость io по файлам.
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39394338
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webrukMasterZiv,
Проблема в том, что вордпресс столько не пишет. Это sql сервер что-то там переписывает бес конца. Вот хотелось бы понять что и как это отключить.

ага, ему делать нечего...

binary log, query log, slow query log , надеюсь, выключены ?
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39394347
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторага, ему делать нечего.
Видимо нечего.
...
Рейтинг: 0 / 0
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
    #39394360
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
sysdig -c topfiles_bytes

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
mysql> show variables like 'innodb_file_per_table';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+
1 row in set (0.00 sec)

И что он туда написывает так активно?
...
Рейтинг: 0 / 0
25 сообщений из 69, страница 1 из 3
Форумы / MySQL [игнор отключен] [закрыт для гостей] / mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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