Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / mysql, 200 блогов WP, запись на диск за сутки 2 ТБ. / 25 сообщений из 69, страница 1 из 3
28.01.2017, 00:21
    #39393583
webruk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
Есть сервер с 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
28.01.2017, 06:03
    #39393613
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
webruk,

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

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

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

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

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

Вообще, исходя из того как вольно раздаются гигабайты памяти, есть подозрение, что происходил активный своп.
webrukНу нет среди этих 81 запроса 20-30 МБ данныхОткуда такая уверенность? Вы учли все накладные расходы?
Например, апдейт одного поля с 4-х байтовым целым в одной записи может вызвать десятки килобайт записи.
...
Рейтинг: 0 / 0
28.01.2017, 18:35
    #39393803
webruk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
VGrey,
Базы в InnoDB, я много чего пробовал перед тем, как написать, видимо не убрал лишнее из конфига.
По поводу спама в блоги были мысли, но я их исключил, открыл логи веб сервера и распарсил, спама не был, а поток в БД был. Значит точно не оно. Памяти на сервере 64 Гб.
...
Рейтинг: 0 / 0
28.01.2017, 18:38
    #39393804
webruk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
miksoft,
Я только про накладные расходы и думаю, ну или SQL сервер с моими настройками переписывает какой-то большой файл постоянно, но так же не должно быть. База растет за сутки на 1-2 ГБ, а mysql сервер пишет на диск 2 ТБ. в 1000 раз накладные расходы? Может как-то можно их уменьшить, под кеш ОЗУ отдать?
...
Рейтинг: 0 / 0
28.01.2017, 19:15
    #39393818
webruk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
webruk,
Больше всего UDPATE запросов в таблицы _options, есть способ их выложить в кеш и скидывать на диск, допустим, раз в минуту?
...
Рейтинг: 0 / 0
28.01.2017, 21:01
    #39393838
webruk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
Дал права на все запросы, включил 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
28.01.2017, 21:09
    #39393841
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
webrukБаза растет за сутки на 1-2 ГБ, а mysql сервер пишет на диск 2 ТБ.Одно к другому никакого отношения не имеет.

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

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

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

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

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

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

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

binary log, query log, slow query log , надеюсь, выключены ?
...
Рейтинг: 0 / 0
30.01.2017, 08:22
    #39394347
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
авторага, ему делать нечего.
Видимо нечего.
...
Рейтинг: 0 / 0
30.01.2017, 09:11
    #39394360
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mysql, 200 блогов WP, запись на диск за сутки 2 ТБ.
Код: 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
Форумы / MySQL [игнор отключен] [закрыт для гостей] / mysql, 200 блогов WP, запись на диск за сутки 2 ТБ. / 25 сообщений из 69, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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