Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / На внешней СХД сильно тормозит реплика / 17 сообщений из 17, страница 1 из 1
03.02.2014, 17:07:38
    #38547431
kestrel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
Добрый день!

Реплика крутится на сервере с 96 ГБ (т.е. память не в дефиците).
В сервере 8 HDD 140 GB 15K в RAID10, контроллер IBM ServeRAID M5015.
В такой конфигурации дисковая подсистема справляется с нагрузкой с большим запасом: в полупиковое время 15-минутное отставание реплика нагоняет за 4 минуты.

Всё меняется, если перенести данные на внешнюю СХД (IBM Storwize V3700, 8 HDD 300 GB 15K, RAID10, адаптер QLogic 8Gb FC Dual-port HBA): реплика догоняет, но очень медленно - 15-минутное отставание за час уменьшается до 4-минутного.
Впечатление такое, что на СХД выключен кеш записи, но это не так. Темп записи на диск при этом весьма приличный - 140 МБ/с (даже больше, чем на внутренних дисках), но на скорости реплики это не отражается.

На обоих массивах XFS, единственное отличие - strip-size: 64 K на внутренних дисках, 256 K на СХД.

CentOS 6
Ядро 2.6.32-431.el6.x86_64
Percona-Server-5.5.16

Код: plaintext
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.
[mysqld]
datadir = /srv/mysql
port = 3306
socket = /tmp/mysql.sock
character-set-server = utf8
collation_server = utf8_unicode_ci
skip-external-locking
skip-name-resolve
ft_min_word_len = 2
back_log = 100
max_connections = 200
max_user_connections = 200
interactive_timeout = 1800
wait_timeout = 120
connect_timeout = 5
key_buffer_size = 6G
myisam_sort_buffer_size = 4095M
join_buffer_size = 1M
sort_buffer_size = 2M
table_open_cache = 2048
thread_cache_size = 286
thread_stack = 196K
max_allowed_packet = 16M
max_connect_errors = 10
max_heap_table_size = 1G
tmp_table_size = 64M
innodb_data_home_dir = /srv/mysql/

innodb_data_file_path = ibdata1:10M:autoextend
innodb_file_per_table
innodb_log_group_home_dir = /srv/mysql/
innodb_buffer_pool_size = 40G
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 1900M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
innodb_lock_wait_timeout = 50
innodb_thread_concurrency = 32
transaction_isolation = REPEATABLE-READ
innodb_stats_on_metadata = 0

slow_query_log_file = /srv/mysql/mysql-slow.log
long_query_time = 0.5
log_slow_rate_limit = 1
log_slow_verbosity = full
query_response_time_stats = ON
server-id = 104

skip-slave-start
read_only = 1
binlog-format = MIXED
log-bin = mysql-bin
log-bin-index = mysql-bin.index
relay-log = relay-log
relay-log-index = relay-log.index
expire_logs_days = 10
sync_binlog = 1
binlog_cache_size = 1M
replicate-ignore-db = mystat
replicate-ignore-db = test
...
Рейтинг: 0 / 0
03.02.2014, 18:20:25
    #38547554
Aleksandr Kuzminsky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
kestrel,

Посмотрите на время отклика операции записи на локальном и внешнем диске и поймете почему в последнем случае реплика будет отставать.

На репликах можно ослабить требования по durability. У Вас всегда есть мастер. В случае чего, реплику можно синхронизировать с масторм.
Поэтому
innodb_flush_log_at_trx_commit = 0
sync_binlog = 0

Выключите всякий оверхед, если не обязятельно нужен

query_response_time_stats = OFF
...
Рейтинг: 0 / 0
04.02.2014, 10:02:40
    #38548118
kestrel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
Aleksandr Kuzminsky,

Вопрос не в том, как ускорить mysql, в конце концов innodb_flush_log_at_trx_commit = 2 всё решает.
Я не могу снизить требования к надёжности, т.к. в перспективе на такую же СХД должен быть переведён и мастер, и с такой скоростью записи он не вытянет.
Т.е. вопрос - как разогнать СХД? Может, у кого-нибудь есть опыт с этой моделью.
...
Рейтинг: 0 / 0
04.02.2014, 12:08:22
    #38548304
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
kestrel, ну разве не очевидно, что для распределенных систем важна не только пропускная способность, но и скорость ответа ?
Чем это подключено к серверу? А если попробовать другой интерфейс ?

В общем случае, правило такое - все СХД тормозят какие бы они ни были дорогие, потому что они удаленные и время отклика больше.
...
Рейтинг: 0 / 0
06.02.2014, 17:15:31
    #38552196
kestrel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
Возможно, требуют настройки размеры каких-то буферов, но не могу сообразить, каких именно.

При innodb_flush_log_at_trx_commit = 1 :
отставание реплики сокращается на 10 с за 30 с

интенсивность записи 150 МБ/с

Innodb_data_fsyncs = 600 c -1

log_writes = 0 c -1 (log i/o's done из INNODB STATUS)

Меняю innodb_flush_log_at_trx_commit = 2 :

накат реплики ускоряется до 4 с за 1 с (в 12 раз), при этом

интенсивность записи падает до 10 МБ/с

Innodb_data_fsyncs = 2 с -1

log_writes = 300 с -1
...
Рейтинг: 0 / 0
06.02.2014, 17:20:37
    #38552201
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
kestrelинтенсивность записи 150 МБ/сКак именно вы измеряете эту величину?
...
Рейтинг: 0 / 0
06.02.2014, 17:27:40
    #38552207
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
kestrelВозможно, требуют настройки размеры каких-то буферов, но не могу сообразить, каких именно.

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

Если вам так нужно отчитаться об использовании СХД, то купите еще SSD локально и соорудите flashcache на нем.
...
Рейтинг: 0 / 0
06.02.2014, 17:43:02
    #38552223
kestrel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
miksoftkestrelинтенсивность записи 150 МБ/сКак именно вы измеряете эту величину?
Это измеряет collectd, берётся из disk-octets.rrd.
Так ли важно, как это измеряется - главное, что показания релевантны и их можно сопоставлять.
...
Рейтинг: 0 / 0
06.02.2014, 17:48:29
    #38552230
kestrel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
netwindБуферизация подразумевает накопление. Но ведь вы хотите обеспечить надежность, то есть требуете немедленный ответ от дисковой подсистемы.
Буферизировать нечего. При таких настройках она будет писать сейчас же, потому что вы требуете от нее писать.
Кажется, Вы не поняли вопрос.
innodb_flush...=2, при этом накат реплики ожидаемо ускоряется, но при этом интенсивность записи ПАДАЕТ! Почему?

netwindЕсли вам так нужно отчитаться об использовании СХД, то купите еще SSD локально и соорудите flashcache на нем.
Вы придумываете, я не говорил, что мне нужно отчитаться.
...
Рейтинг: 0 / 0
06.02.2014, 18:03:15
    #38552252
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
kestrelnetwindБуферизация подразумевает накопление. Но ведь вы хотите обеспечить надежность, то есть требуете немедленный ответ от дисковой подсистемы.
Буферизировать нечего. При таких настройках она будет писать сейчас же, потому что вы требуете от нее писать.
Кажется, Вы не поняли вопрос.
innodb_flush...=2, при этом накат реплики ожидаемо ускоряется, но при этом интенсивность записи ПАДАЕТ! Почему?

по-моему тут все ожидаемо : на каждый commit приходится не менее чем одна операция записи. Операции выполняются блоками например по 16кбайт. При настройке =2 mysql не спешит писать и последовательные операции складываются в эти 16кбайт. Интенсивность записи на устройство, измеренная как байт/секунду падает.
Если же измерять сколько конкретный процесс написал байт в файл - вот тогда будет одинаково.


netwindЕсли вам так нужно отчитаться об использовании СХД, то купите еще SSD локально и соорудите flashcache на нем.
Вы придумываете, я не говорил, что мне нужно отчитаться.
Я не понимаю зачем люди создают себе "псевдокорпооративные" проблемы. Ну не работает эта СДХ так же быстро как локальные диски, ну так и не используйте.
Впрочем, возможно действительно имеет место какая-то неправильная конфигурация этой конкретной СХД. Но это уже не вопрос настройки mysql.
...
Рейтинг: 0 / 0
06.02.2014, 18:05:22
    #38552256
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
kestrelmiksoftпропущено...
Как именно вы измеряете эту величину?
Это измеряет collectd, берётся из disk-octets.rrd.
Так ли важно, как это измеряется - главное, что показания релевантны и их можно сопоставлять.У меня есть гипотеза с потолка, но для ее проверки нужно точно знать, как именно подключена и настроена СХД.
Если, допустим, на ней сделан софтовый рейд с большим размером страйпа и если измерение происходит на уровне физических носителей (точнее, их логической видимости в устройствах), то:
- при innodb_flush_log_at_trx_commit = 1 MySQL пишет данные небольшими порциями, которые меньше страйпа. Тогда будет сначала читаться весь страйп целиком, потом будет модификация измененной части и запись страйпа обратно.
- при innodb_flush_log_at_trx_commit = 2 MySQL пишет данные значительно большими порциями. Тогда многие страйпы будут просто записаны целиком, без чтения. Да и число записей будет сильно меньше, чем в первом варианте.

Повторюсь, гипотеза с потолка. И, если измерение скорости происходит между MySQL и файловой системой, то она становится неверна.
...
Рейтинг: 0 / 0
06.02.2014, 18:07:53
    #38552261
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
netwindИнтенсивность записи на устройство, измеренная как байт/секунду падает.Может, не "байт/секунду", а "операций/секунду" ?
...
Рейтинг: 0 / 0
06.02.2014, 18:20:16
    #38552288
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
miksoft, вроде да, тут прямая зависимость байт от числа операций.
Хотя странно, почему тогда мониторинг не выдает просто число операций ?
...
Рейтинг: 0 / 0
06.02.2014, 18:28:06
    #38552303
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
miksoftMySQL пишет данные небольшими порциями, которые меньше страйпа. Тогда будет сначала читаться весь страйп целиком, потом будет модификация измененной части и запись страйпа обратно.
Страйп - это подряд идущие блоки. По-моему нормальный контроллер не должен читать и писать весь страйп. Достаточно только нужный блок. Разве нет? тут ведь для raid10 не нужно рассчитывать контрольные суммы и тд.
...
Рейтинг: 0 / 0
06.02.2014, 18:38:54
    #38552337
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
netwindmiksoftMySQL пишет данные небольшими порциями, которые меньше страйпа. Тогда будет сначала читаться весь страйп целиком, потом будет модификация измененной части и запись страйпа обратно.
Страйп - это подряд идущие блоки. По-моему нормальный контроллер не должен читать и писать весь страйп. Достаточно только нужный блок. Разве нет? тут ведь для raid10 не нужно рассчитывать контрольные суммы и тд.Это внутри СХД raid10, а я говорю о том, что там понаверчено в ОС на той машине, где MySQL работает.
...
Рейтинг: 0 / 0
06.02.2014, 22:44:11
    #38552598
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
miksoft, очевидно, что ничего не понаверчено. простое блочное устройство. Вряд ли кто-то будет делать mdraid из отдельных дисков на корпоративной СХД.
...
Рейтинг: 0 / 0
06.02.2014, 22:52:11
    #38552605
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На внешней СХД сильно тормозит реплика
netwindВряд ли кто-то будет делать mdraid из отдельных дисков на корпоративной СХД.По всей вероятности - да, но чем черт не шутит...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / На внешней СХД сильно тормозит реплика / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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