|
|
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
Добрый день! Реплика крутится на сервере с 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 17:07:38 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
kestrel, Посмотрите на время отклика операции записи на локальном и внешнем диске и поймете почему в последнем случае реплика будет отставать. На репликах можно ослабить требования по durability. У Вас всегда есть мастер. В случае чего, реплику можно синхронизировать с масторм. Поэтому innodb_flush_log_at_trx_commit = 0 sync_binlog = 0 Выключите всякий оверхед, если не обязятельно нужен query_response_time_stats = OFF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 18:20:25 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
Aleksandr Kuzminsky, Вопрос не в том, как ускорить mysql, в конце концов innodb_flush_log_at_trx_commit = 2 всё решает. Я не могу снизить требования к надёжности, т.к. в перспективе на такую же СХД должен быть переведён и мастер, и с такой скоростью записи он не вытянет. Т.е. вопрос - как разогнать СХД? Может, у кого-нибудь есть опыт с этой моделью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:02:40 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
kestrel, ну разве не очевидно, что для распределенных систем важна не только пропускная способность, но и скорость ответа ? Чем это подключено к серверу? А если попробовать другой интерфейс ? В общем случае, правило такое - все СХД тормозят какие бы они ни были дорогие, потому что они удаленные и время отклика больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 12:08:22 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
Возможно, требуют настройки размеры каких-то буферов, но не могу сообразить, каких именно. При 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 17:15:31 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
kestrelинтенсивность записи 150 МБ/сКак именно вы измеряете эту величину? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 17:20:37 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
kestrelВозможно, требуют настройки размеры каких-то буферов, но не могу сообразить, каких именно. Буферизация подразумевает накопление. Но ведь вы хотите обеспечить надежность, то есть требуете немедленный ответ от дисковой подсистемы. Буферизировать нечего. При таких настройках она будет писать сейчас же, потому что вы требуете от нее писать. Если вам так нужно отчитаться об использовании СХД, то купите еще SSD локально и соорудите flashcache на нем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 17:27:40 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
miksoftkestrelинтенсивность записи 150 МБ/сКак именно вы измеряете эту величину? Это измеряет collectd, берётся из disk-octets.rrd. Так ли важно, как это измеряется - главное, что показания релевантны и их можно сопоставлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 17:43:02 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
netwindБуферизация подразумевает накопление. Но ведь вы хотите обеспечить надежность, то есть требуете немедленный ответ от дисковой подсистемы. Буферизировать нечего. При таких настройках она будет писать сейчас же, потому что вы требуете от нее писать. Кажется, Вы не поняли вопрос. innodb_flush...=2, при этом накат реплики ожидаемо ускоряется, но при этом интенсивность записи ПАДАЕТ! Почему? netwindЕсли вам так нужно отчитаться об использовании СХД, то купите еще SSD локально и соорудите flashcache на нем. Вы придумываете, я не говорил, что мне нужно отчитаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 17:48:29 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
kestrelnetwindБуферизация подразумевает накопление. Но ведь вы хотите обеспечить надежность, то есть требуете немедленный ответ от дисковой подсистемы. Буферизировать нечего. При таких настройках она будет писать сейчас же, потому что вы требуете от нее писать. Кажется, Вы не поняли вопрос. innodb_flush...=2, при этом накат реплики ожидаемо ускоряется, но при этом интенсивность записи ПАДАЕТ! Почему? по-моему тут все ожидаемо : на каждый commit приходится не менее чем одна операция записи. Операции выполняются блоками например по 16кбайт. При настройке =2 mysql не спешит писать и последовательные операции складываются в эти 16кбайт. Интенсивность записи на устройство, измеренная как байт/секунду падает. Если же измерять сколько конкретный процесс написал байт в файл - вот тогда будет одинаково. netwindЕсли вам так нужно отчитаться об использовании СХД, то купите еще SSD локально и соорудите flashcache на нем. Вы придумываете, я не говорил, что мне нужно отчитаться. Я не понимаю зачем люди создают себе "псевдокорпооративные" проблемы. Ну не работает эта СДХ так же быстро как локальные диски, ну так и не используйте. Впрочем, возможно действительно имеет место какая-то неправильная конфигурация этой конкретной СХД. Но это уже не вопрос настройки mysql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 18:03:15 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
kestrelmiksoftпропущено... Как именно вы измеряете эту величину? Это измеряет collectd, берётся из disk-octets.rrd. Так ли важно, как это измеряется - главное, что показания релевантны и их можно сопоставлять.У меня есть гипотеза с потолка, но для ее проверки нужно точно знать, как именно подключена и настроена СХД. Если, допустим, на ней сделан софтовый рейд с большим размером страйпа и если измерение происходит на уровне физических носителей (точнее, их логической видимости в устройствах), то: - при innodb_flush_log_at_trx_commit = 1 MySQL пишет данные небольшими порциями, которые меньше страйпа. Тогда будет сначала читаться весь страйп целиком, потом будет модификация измененной части и запись страйпа обратно. - при innodb_flush_log_at_trx_commit = 2 MySQL пишет данные значительно большими порциями. Тогда многие страйпы будут просто записаны целиком, без чтения. Да и число записей будет сильно меньше, чем в первом варианте. Повторюсь, гипотеза с потолка. И, если измерение скорости происходит между MySQL и файловой системой, то она становится неверна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 18:05:22 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
netwindИнтенсивность записи на устройство, измеренная как байт/секунду падает.Может, не "байт/секунду", а "операций/секунду" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 18:07:53 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
miksoft, вроде да, тут прямая зависимость байт от числа операций. Хотя странно, почему тогда мониторинг не выдает просто число операций ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 18:20:16 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
miksoftMySQL пишет данные небольшими порциями, которые меньше страйпа. Тогда будет сначала читаться весь страйп целиком, потом будет модификация измененной части и запись страйпа обратно. Страйп - это подряд идущие блоки. По-моему нормальный контроллер не должен читать и писать весь страйп. Достаточно только нужный блок. Разве нет? тут ведь для raid10 не нужно рассчитывать контрольные суммы и тд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 18:28:06 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
netwindmiksoftMySQL пишет данные небольшими порциями, которые меньше страйпа. Тогда будет сначала читаться весь страйп целиком, потом будет модификация измененной части и запись страйпа обратно. Страйп - это подряд идущие блоки. По-моему нормальный контроллер не должен читать и писать весь страйп. Достаточно только нужный блок. Разве нет? тут ведь для raid10 не нужно рассчитывать контрольные суммы и тд.Это внутри СХД raid10, а я говорю о том, что там понаверчено в ОС на той машине, где MySQL работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 18:38:54 |
|
||
|
На внешней СХД сильно тормозит реплика
|
|||
|---|---|---|---|
|
#18+
miksoft, очевидно, что ничего не понаверчено. простое блочное устройство. Вряд ли кто-то будет делать mdraid из отдельных дисков на корпоративной СХД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 22:44:11 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38552337&tid=1835261]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
64ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 341ms |

| 0 / 0 |
