Ru-Board.club
← Вернуться в раздел «UNIX»

» Периодические тормоза из за процесса flush-9:2

Автор: zl0j
Дата сообщения: 24.08.2013 13:45
[more] Операционка CentOS 6, достали переодические тормоза (с интервалом в несколько минут, длительностью от нескольких секунд до секунд 30), сервер как будто зависает, в top вижу такую картину:


Код: top - 12:27:11 up 18:13, 1 user, load average: 1.98, 1.68, 1.69
Tasks: 252 total, 1 running, 251 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 1.3%sy, 0.0%ni, 77.2%id, 21.5%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16243480k total, 13631692k used, 2611788k free, 291364k buffers
Swap: 33553328k total, 41340k used, 33511988k free, 8752380k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1199 root 20 0 0 0 0 D 9.0 0.0 4:26.43 flush-9:2
536 root 20 0 0 0 0 D 6.0 0.0 2:27.12 jbd2/md2-8
470 root 20 0 0 0 0 D 4.7 0.0 2:35.53 md2_raid1
42 root 20 0 0 0 0 S 0.3 0.0 0:03.26 events/7
30842 root 20 0 15156 1484 1008 R 0.3 0.0 0:11.67 top
1 root 20 0 19228 1328 1128 S 0.0 0.0 0:00.90 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
...
Автор: bga83
Дата сообщения: 26.08.2013 09:02

Цитата:
Cpu(s): 0.0%us, 1.3%sy, 0.0%ni, 77.2%id, 21.5%wa, 0.0%hi, 0.0%si, 0.0%st
судя по этому сервер тратит довольно много времени на ожидание операций ввода/вывода, которые скорее всего завязаны на производительность дисковой подсистемы. Советую в первую очередь именно ее посмотреть в плане нагрузки/скорости работы/оптимизации. Проверить состояние RAID(какого уровня он кстати?), SMART дисков и тд.

Автор: L_S_V
Дата сообщения: 03.09.2013 07:45
нужен вывод vmstat -s
тогда станет ясно почему это происходит, flush работает с данными для data_write_back.
Автор: zl0j
Дата сообщения: 03.09.2013 07:50
L_S_V

Код: # vmstat -s
16243484 total memory
9305420 used memory
3701580 active memory
5013840 inactive memory
6938064 free memory
244012 buffer memory
4163168 swap cache
33553328 total swap
536704 used swap
33016624 free swap
7695189 non-nice user cpu ticks
446 nice user cpu ticks
3088931 system cpu ticks
401635289 idle cpu ticks
17529213 IO-wait cpu ticks
266 IRQ cpu ticks
394971 softirq cpu ticks
0 stolen cpu ticks
881338529 pages paged in
7929325860 pages paged out
317856 pages swapped in
404824 pages swapped out
813023992 interrupts
3684261766 CPU context switches
1377644193 boot time
1042564 forks
Автор: L_S_V
Дата сообщения: 03.09.2013 08:49
попробуйте, только на свой страх и риск swapoff -a

и еще переодически(можно по крону, раз в неделю)
echo 1 > /proc/sys/vm/drop_caches ; echo 0 > /proc/sys/vm/drop_caches
но памяти на сервере хоть отбавляй.

еще покажите параметры
cat /proc/sys/vm/dirty_writeback_centisecs
cat /proc/sys/vm/dirty_expire_centisecs
Автор: zl0j
Дата сообщения: 03.09.2013 09:02
L_S_V
не помогло, включил своп обратно...

[root@ ~]# cat /proc/sys/vm/dirty_writeback_centisecs
500
[root@ ~]# cat /proc/sys/vm/dirty_expire_centisecs
3000
Автор: L_S_V
Дата сообщения: 03.09.2013 09:03
если это происходит постоянно, то нужно править dirty_* параметры.
Автор: zl0j
Дата сообщения: 03.09.2013 09:05
L_S_V
пост отредактировал, что изменить?
Автор: L_S_V
Дата сообщения: 03.09.2013 09:08
echo 15000 > /proc/sys/vm/dirty_writeback_centisecs
ну и в sysctl.conf это добавить, а то после ребута старые настройки будут.
только подожди пока flush пройдет.
он всегда в стейте D?

Код:
ps aux | grep flush
root 5078 0.0 0.0 0 0 ? S 02:47 0:02 [flush-8:0]
Автор: zl0j
Дата сообщения: 03.09.2013 09:26
[more] L_S_V
После установки 15000 стало реже, но как показалось "ауты" системы длиньше, поставил сейчас 1000 - минут 5 смотрел - всё отлично, разок выскакивал флеш и спрятался, только думаю что всё норм - вылез флеш и опять на секунд 20 в аут...


Код: [root@ ~]# ps aux | grep flush
root 1197 1.0 0.0 0 0 ? D Aug28 93:34 [flush-9:2]
root 15532 0.0 0.0 103240 872 pts/0 S+ 08:13 0:00 grep flush
Автор: L_S_V
Дата сообщения: 03.09.2013 09:47
если базы данных со всеми данными в /
то неудивительно что последние параметры IO sec такие огромные.

1000 наверно мало для такой нагрузки как у тебя, можешь поставить 5000 что-бы не волноваться.
Если есть ups, то вообще проблем нет, а то оно ханит незаписанные данные на винт в памяти.
Автор: mck1
Дата сообщения: 12.10.2013 07:35
Здравствуйте! У меня такие же проблемы, вы решили каким нибудь образом этот вопрос?
Автор: zl0j
Дата сообщения: 12.10.2013 10:30
mck1
переехал на новый сервер с SSD
Автор: L_S_V
Дата сообщения: 12.10.2013 10:57
zl0j,
вам подстройка не помогла?

а это был виртуальный сервер, если да, то что за виртуализация(kvm, openVZ)?
Автор: zl0j
Дата сообщения: 12.10.2013 11:03
L_S_V
нет, ничего не помогло, сервера у Хетзнера, был EX4 стал EX40-SSD
правда боюсь сейчас что SSD быстро сносится, картина примерно такая:

Код: [root@ ~]# iotop -o -P -d 5
Total DISK READ: 20.75 K/s | Total DISK WRITE: 147.49 M/s
PID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
559 be/3 root 0.00 B/s 610.89 M/s 0.00 % 19.57 % [jbd2/md2-8]
524 be/4 root 0.00 B/s 0.00 B/s 0.00 % 19.29 % [md2_raid1]
23589 be/4 apache 20.75 K/s 0.00 B/s 0.00 % 0.05 % nginx: worker process
10077 be/4 mysql 0.00 B/s 636.77 M/s 0.00 % 0.02 % mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/lib/mysql/m~err --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock --port=3306
16384 be/4 apache 0.00 B/s 817.14 B/s 0.00 % 0.00 % httpd -k start
1226 be/4 root 0.00 B/s 11.97 K/s 0.00 % 0.00 % [flush-9:2]
15421 be/4 apache 0.00 B/s 3.19 K/s 0.00 % 0.00 % httpd -k start
14739 be/4 apache 0.00 B/s 12.77 K/s 0.00 % 0.00 % httpd -k start
Автор: L_S_V
Дата сообщения: 12.10.2013 11:34
ssd не использовал еще, только вот гибрид скоро начну.
но для них вроде оптимизации существуют, вроде опции commit=600 в ходе монтирования.
больше там https://wiki.debian.org/SSDOptimization

а на обычных винтах еще apm в smartctl можно поставить, если винт часто головы паркует.
вообще посмотрите на SMART винтов
smartctl --all /dev/sda /dev/sdb

на ssd похоже с обратной записью все нормально.
да и зачем вам swap?
я посмотрел на ex40ssd, 32гига ОЗУ.

похоже что у вас только запись в базу.
попробуйте insert в mysql профайлить.

или там большие запросы или их много.

SHOW PROFILES;
поможет, но смотрите доку по тому как профайл настроить на то что надо.

Автор: mck1
Дата сообщения: 12.10.2013 12:10
У меня такое впечатление, что переполняется кэш и идет запись на диск. Если перезапустить mysql то пять минут работает, а потом валится.
Автор: L_S_V
Дата сообщения: 12.10.2013 13:14
mck1, отконфигурите свой mysql по бестпрактису. Что-бы дропались долгие квери и коннекты к субд.
какой движок используется myisam или inno?
Автор: mck1
Дата сообщения: 13.10.2013 18:06
Действительно дело в базе, сервак ее уже не тянет, после того как удалил ненужное все нормально работает. Получается либо переезд, либо править базу.

Страницы: 1

Предыдущая тема: Сервер CentOS долго отвечает. Диск занят


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.