|
|
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидЛоги iostat'a и vmstat'a для периодов, когда шли затыки, часто не содержат никаких "особых" значений, указывающих на повышенный IO, поэтому они тут не приводятся. я бы ожидал, что колонка wa в выводе vmstat будет подскакивать в эти моменты ТаблоидКак видно по логам, при затыках 1) всегда что-то делалось потоком 26261 процесса firebird (это CACHE_WRITER ?) 26261 - коннект с инсертами, 26263 - кешрайтер ТаблоидДля информации снял три бактрассы с ФБ (с интервалом ~45 сек) - они в аттаче. два раза из трех кешрайтер пишет на диск ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 10:28:33 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
dimitrТаблоидЛоги iostat'a и vmstat'a для периодов, когда шли затыки, часто не содержат никаких "особых" значений, указывающих на повышенный IO, поэтому они тут не приводятся.я бы ожидал, что колонка wa в выводе vmstat будет подскакивать в эти моментыДа, ты прав; впрочем, значения % времени, пока проц ждал завершения IO, невелики: всего 7%. Лог isql: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: 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. 1) всегда что-то делалось потоком 26261 процесса firebird (это CACHE_WRITER ?) 26261 - коннект с инсертами , 26263 - кешрайтерТогда это еще сильнее интригует! Почему сами инсерты, а не их передача в файловый кеш линуха, грузят IO во всех затыках ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 13:42:32 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
Симонов Дениснафига? Я так понял cache_write как раз делает запись в кэш при этом сериализует и синхронизирует необходимые действия (это собственно и есть общий кэш).Ну, это так, конечно: согласно принципу careful writes, он должен записывать страницы в строго определённом порядке. Ann Harrison - On disk consistency http://www.ibphoenix.com/resources/documents/design/doc_20 when the system writes a page that references another page, that other page must have been written previously in a state that supports the reference. Before writing a page that has a pointer from a record to its back version on another page, the system must have written that other page. Before writing out a new data page, the system must write out a version of a page information page (PIP) that shows the page is in use. The new data page has to be on disk, formatted and happy, before the table's pointer page that references the new page can be written. Inter-page relationships are handled in the code through a dependency graph in the cache manager. Before a page is written, the cache manager checks the graph and writes out all pages that page depends on. If a change will create a loop in the graph, the cache manager immediately writes as many pages as necessary to avoid the loop. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 13:55:17 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
Симонов Денисвроде была идея сделать некую системную функцию которая могла бы писать в трейс пользовательские сообщения из PSQL. Это могло бы в ряде случаев упростить отладку. Но почему-то от неё отказались.Жаль, что это так. Неудобно во многих случаях. BTW, 0xFF: ты чего-нибудь начал сравнивать на тему page allocations (single vs extents) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 13:56:33 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, тогда жди вот этого Vladyslav Khorsun2. Asyncronous and multi-block disk IO, prefetch of pages for natural scans and so on This feature is implemented for disk reads and i'm looking what can be done for disk writes too. Testing and some platform dependent adaptation is needed. (The implementation was tested briefly on Windows and Linux.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 13:58:42 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидBTW, 0xFF: ты чего-нибудь начал сравнивать на тему page allocations (single vs extents) ? Начал. Уже Владу отправлял результаты. Пока не совсем однозначно. Где-то выигрываем где то проигрываем. Думаю когда вот это "Asyncronous and multi-block disk IO, prefetch of pages for natural scans and so on" сделают преимущество будет значительно заметнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 14:01:52 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисТаблоидBTW, 0xFF: ты чего-нибудь начал сравнивать на тему page allocations (single vs extents) ?Пока не совсем однозначно. Где-то выигрываем где то проигрываем.а меня только выигрыши, причём на hasj-join'ах и простых селектах - самые большие (и даже есть на NL inner & outer - но там немного совсем). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 14:20:44 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидИ соотв-щий лог vmstat'a:Только я вижу us = 0 в эти моменты ? И сильно не нулевой bo насколько я понимаю us == CPU\user bo == blocks out ТаблоидПочему сами инсерты, а не их передача в файловый кеш линуха, грузят IO во всех затыках ?Опять пальцем в небо. Тебе же dimitr показал, что "страдает" коммит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 14:31:58 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, я тебе позже отправлю свой тест в личку. Возможно причина в том, что ось Windows 7 по умолчанию не оптимизирована под сервисы, да и дисковая подсистема там обычная, никаких RAIDов нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 14:38:48 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
Таблоида меня только выигрыши, причём на hasj-join'ах и простых селектах - самые большие (и даже есть на NL inner & outer - но там немного совсем). так и должно быть. По идее выигрыш должен быть везде где есть NATURAL скан ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 14:46:23 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
Вести с полей. Изменил /etc/fstab, выключив барьеры на запись и признак обновления атрибутов файлов на каждый чих: Код: plaintext 1. 2. 3. 4. 5. Запустил с нуля isql + iotop + vmstat. Сначала был взлёт ракеты, очень долго итерации шли длительностью менее 1.5 сек. Одинг или два раза, впрочем, был затык на несколько десятков сек (около 20 сек вроде). Но вот после сотого ляма, кажись, тихо наступает Жо: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Однако, сейчас идёт заполнение БЕЗ автономных транзакций и с выключенным MaxunflushedWrites (что должны БЫЛО БЫ сбрасывать в кеш операционки фиксированные объёмы строк). Я дождусь его окончания, конечно, дабы затолкать в свой "лог успехов и поражений". После чего попробую с автономками (скрипт см выше). Если и там всё упрётся, то последнюю и опасную меру, буду добавлять в /etc/fstab атрибут выключения журнала ext4: data=writeback. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 20:11:50 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
И еще одна мысль вслух: https://www.kernel.org/doc/Documentation/filesystems/ext4.txt Write barriers enforce proper on-disk ordering of journal commits , making volatile disk write caches safe to use, at some performance penalty. If your disks are battery-backed in one way or another, disabling barriers may safely improve performance.Есть смутное ощущение, что поскольку ФБ сам выдаёт нужный порядок записи страниц (careful writes), при любом FW, то эти барьеры вообще нахрен не нужны, когда на хосте трудится только ФБ (а в бол-ве случаев именно так и происходит). И уж тем более при FW = OFF: раз мы сказали, что можем не ждать, когда ось запишет данные на ДИСК, то тем более по барабану, в какой последовательности она будет их туда записывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 20:21:23 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
Таблоидпо барабану, в какой последовательности она будет их туда записывать. Не совсем. Уже давным-давно на эти грабли нарывались все СУБД на NTFS: если уронить комп во время расширения файла, то в каталоге будет записан его новый размер, а новые страницы останутся пустыми (или наоборот: NTFS журнал откатывал расширение файла, оставляя ссылки на несуществующие страницы, уже не помню). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 20:33:58 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, про барьеры я уже говорил http://www.sql.ru/forum/964856/linux-opciya-barrier-i-firebird и вот http://www.sql.ru/forum/895986/ext4-barrier-0-ili-1 со слов людей может быть до 3 раз хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 21:33:31 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
возвращаясь к старым гипотетическим баранам: ТаблоидСначала был взлёт ракеты, очень долго итерации шли длительностью менее 1.5 сек.пишем в кеш оси ТаблоидНо вот после сотого ляма, кажись, тихо наступает Жоось начинает сливать свой кеш на диск ТаблоидОднако, сейчас идёт заполнение БЕЗ автономных транзакций и с выключенным MaxunflushedWritesт.е. никаких принудительных сбросов кеша не было до тех пор, пока он не забился ЗЫ. напомнило копирование фильма на флешку под линухом - первые 4 гига пишем мегашустро, потом с черепашьей скоростью дописываем остатки, потом еще 10 минут отключаем устройство :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 21:43:43 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
Интересно будет на idx_under_load базе проверить произв-сть DML, с и без барьеров. Там нет таких сумасшедших объёмов, всё наоборот как раз. Но зато коннектов будет штук 300. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 22:10:31 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидИзменил /etc/fstab, выключив барьеры на запись и признак обновления атрибутов файлов на каждый чих:На всякий: а файловую систему перемонтировал ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 00:22:03 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
hvladТаблоидИзменил /etc/fstab, выключив барьеры на запись и признак обновления атрибутов файлов на каждый чих:На всякий: а файловую систему перемонтировал ?я так понял, что достаточно просто отредактировать /etc/fstab и рестартануть хост. Что и было сделано. В итоге, сейчас: Код: plaintext 1. 2. 3. 4. Код: plaintext 1. Код: plaintext 1. И для верности глянул сюда: Код: plaintext 1. 2. 3. 4. 5. Вроде бы всё ОК ? ЗЫ. Скрипт всё равно в итоге стал ползти как черепаха. Сейчас только 171 млн сделано. Быстрее, конечно, чем в прошлый раз (начал его в 16:47), но всё равно не айс так долго ждать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 01:57:47 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидhvladНа всякий: а файловую систему перемонтировал ?я так понял, что достаточно просто отредактировать /etc/fstab и рестартануть хост. Что и было сделано.Ну, можно и рестартануть, если просто перемонтировать не получается :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 03:02:09 |
|
||
|
Как сопоставить результаты iostat -x и скачок длительности записи в базу пачки строк ?
|
|||
|---|---|---|---|
|
#18+
"Досчиталось" наконец. Но скрипело под занавес сильно: Код: 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. Так что буду таки пробовать с data=writeback. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 09:48:27 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38524388&tid=1563982]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
182ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 494ms |

| 0 / 0 |
