|
|
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
hi all Имеется вызов ХП: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Трассировка этого дела с таким вот конфигом: Код: 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. Вот два примера: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Код: sql 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. Помимо этой функции, в базе определено еще пяток аналогичных ей, и одна из таких "сестёр" тоже вызывается (fn_oper_retail_reserve()), однако с ней затыков нету. С базой никто больше не работает, заданий в кроне нет, коннект к ней в данный момент - единственный. Чем могут быть обусловлены такие странные паузы, причём строго после выполнения одной и той же stored-функции ? ЗЫ. В аттаче: 1) trace_customer_reserve_293646_full.txt - полный текст трейса 2) trace_customer_reserve_293646_timestamps.txt - результат выжимки из первого только строк с моментами времени и номерами строк (grep -n "2014-04-26T" trace_customer_reserve_293646_full.txt), проблемные места отмаркированы так: " #+++ " Остальные файлы (по ~800 байт) - это фрагменты из полного трейса, соотв-щие "странным местам". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2014, 19:41 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
Поднимаю тему. Ибо вижу снова и снова: необъяснимые затыки в активности ФБ, показываемой трейсом, после завершения deterministic stored-функции. Причём, всё время одной и той же (хотя в базе их десятка два). Итак. 1) Запущен трейс, его конфиг: "всё включено", time_threshold = 0 Код: 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. 3) по завершении вызова вытаскиваю из трейса все моменты времени: Код: plaintext первые его строки Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 5) Если такие паузы происходят между окончанием и началом <чего-то там>, то отмечаю такие фрагментики строкой "+++++": Код: plaintext 1. 2. 3. 4. 5. 6. 5) по мере этого "визуального парсинга" замечаю, что все такие паузы происходят только после окончания функции . Их *нет* после завершения триггеров или ХП. Вот результат: Код: 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. 6.1) 1399:2014-05-22T18:16:22.8770 . . . 1410:2014-05-22T18:16:24.8420 Код: 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. Код: 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. Код: 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. ЗЫ. Никаких прочих активностей на хосте нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2014, 19:01 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
Таблоид, чего ты привязался к функции, если "затыки" происходят в промежутках между ее выполнениями? ХЗ что там твоя ХП делает в это время. Даже если там банальный селект, то обращения к диску (cache misses) могут давать такой же эффект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2014, 20:08 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
dimitrчего ты привязался к функции, если "затыки" происходят в промежутках между ее выполнениями? ХЗ что там твоя ХП делает в это время. Даже если там банальный селект, то обращения к диску (cache misses) могут давать такой же эффект.Эээ, неееет! :-) Если бы в промежутках между завершением F1 и началом F2 что-то выполнялось, это было бы зафиксировано мессагами вида execute_<statement | trigger | procedure | function>_start. Ибо трейсу приказано фиксировать все события. А тут просто НИЧЕГО не происходит! И самое интересное - всегда по завершении одной и той же функции, FN_OPER_RETAIL_RESERVE: её DDL Код: sql 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. Функций fn_oper_***, почти дословно повторяющих эту, у мну еще восемь штук. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2014, 20:21 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
dimitrДаже если там банальный селект, то обращения к диску (cache misses) могут давать такой же эффект.Кажись, я понял твою мысль: ты говоришь про селект, в котором участвует эта ф-ция. Блин, но по две секунды паузы - это как-то... "круто" типа... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2014, 20:31 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
dimitrХЗ что там твоя ХП делает в это время. Даже если там банальный селект, то обращения к диску (cache misses) могут давать такой же эффект. А, стоп! Хальт! Если бы затыки были из-за лазания на диск или в кеш операционки, это бы отразилось в статистике ненулевыми read(s). Но их вообще не было! Т.е. всё торчало в страничном кеше ФБ (а он у мну большой, 512К страниц). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2014, 21:05 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
Я правильно помню, что у классика и суперклассика обеспечение когерентностей кэшей в разных процессах - достаточно ресурсоёмкая операция? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2014, 21:16 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЯ правильно помню, что у классика и суперклассика обеспечение когерентностей кэшей в разных процессах - достаточно ресурсоёмкая операция?наверное... только у мну SuperServer. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2014, 21:22 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
ТаблоидЕсли бы затыки были из-за лазания на диск или в кеш операционки, это бы отразилось в статистике ненулевыми read(s). Но их вообще не было! Т.е. всё торчало в страничном кеше ФБ (а он у мну большой, 512К страниц). это был лишь пример. Ты не знаешь чего именно делает сервер между вызовами твоей функции. Предполагать что ничего не делает - в крайней степени наивно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2014, 21:59 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
dimitrТаблоидЕсли бы затыки были из-за лазания на диск или в кеш операционки, это бы отразилось в статистике ненулевыми read(s). Но их вообще не было! Т.е. всё торчало в страничном кеше ФБ (а он у мну большой, 512К страниц). это был лишь пример. Ты не знаешь чего именно делает сервер между вызовами твоей функции. Предполагать что ничего не делает - в крайней степени наивно.я как раз и терзаюсь сомнениями, что он действительно чего-то делает . Но если нет read(s) > 0, то значит это не связано с IO. А что еще тогда может так заклинивать, при операциях с данными, сидящими кеше ФБ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2014, 22:25 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
ТаблоидА что еще тогда может так заклинивать, при операциях с даннымиТипичные ОСи, что винды, что линухи не являются ОСями реального времени. Гарантировать отклик тебе никто не обязывался. Я к тому, что дело может быть не совсем в ФБ, он всего лишь прикладная программа. Типа хинт от КО. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2014, 10:33 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
ТаблоидА что еще тогда может так заклинивать, при операциях с данными, сидящими кеше ФБ ? Было бы прикольно иметь возможность при конкретном затыке писать в лог инфу о загруженности системы, чтобы было понятно кто именно ест ресурсы (очередь к диску, загрузка процессора по-процессно, кол-во памяти). Чтобы можно было понять - это процессор не справился, или винт, или автообновление винды запустилось :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2014, 18:39 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
Ivan_Pisarevskyдело может быть не совсем в ФБ, он всего лишь прикладная программа.Ога. Только странное дело: затыки в 2 секунды всё время на одном и том же месте, после завершения одной и той же stored-функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2014, 18:45 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
ТаблоидIvan_Pisarevskyдело может быть не совсем в ФБ, он всего лишь прикладная программа.Ога. Только странное дело: затыки в 2 секунды всё время на одном и том же месте, после завершения одной и той же stored-функции.В общем, всё прояснилось. Позор на мою б о шку. Одна из ХП обращалась к этой самой deterministic-функции F1 (впрочем, там могло быть обращение и к обычной ХП - см ниже), а затем выполняла несколько действий <M>, среди которых был один сверхтормознутый DML <T>. После чего делала еще чего-то, также обращающееся к какой-то determ-функции F2. Ну так вот: трейс при всех включенных параметрах честно показывал старт+финиш F1, затем ФБ начинал делать <M> и, разумеется, упирался в <T>. Далее происходил вызов F2 и трейс опять показывал её старт + финиш. То, что происходило в <M>, в том числе в <T>, трейс не показывает. Минимальной "гранулой" для показа на сегодня является ХП / функция / триггер, но не отдельные стейтменты внутри этого. Стейтменты были вне подозрений, пока не запустил трассировку этой ХП на 2.5 - там, слава богу, можно увидеть не просто "PLAN P(NATURAL)", а пусть и винегрет из планов всех стейтментов, но это по-любому хоть какая-то зацепка. Вот DDL: Код: 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. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. Код: plaintext Трейс в 2.5 : Код: 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. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. Код: 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. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. ЗЫ. 2 dimitr : отсутствие в 3.0 показа планов всех выполнявшихся внутри модуля стейтментов - может, и не зло. А вот отсутствие даже возможности включить их показ - Центр Мирового Зла. Потеря времени при поиске источника проблемы обеспечена. Как и трёхэтажная ругань тех, кто еще этого не знает. Либо надо научить трейс выталкивать статистику до уровня отдельных стейтментов внутри модулей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2014, 22:26 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
Таблоид> В общем, всё прояснилось. Позор на мою бошку. Как обычно. :) В твоём другом недавнем топике про deterministic-функции то же самое, поди? Таблоид> А вот отсутствие даже возможности включить их показ Таблоид> ... Таблоид> Либо надо научить трейс выталкивать статистику до Таблоид> уровня отдельных стейтментов внутри модулей. Если я правильно понял, то это одно и то же. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2014, 22:34 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамТаблоид> В общем, всё прояснилось. Позор на мою бошку. Как обычно. :) В твоём другом недавнем топике про deterministic-функции то же самое, поди?Ога :-) Гаджимурадов РустамТаблоид> А вот отсутствие даже возможности включить их показ Таблоид> ... Таблоид> Либо надо научить трейс выталкивать статистику до Таблоид> уровня отдельных стейтментов внутри модулей. Если я правильно понял, то это одно и то же.Не, второе ("микро-гранулированный trace") - это было бы действительно круто. Представь: в каком-нить модуле отрабатывает 5 отдельных стейтментов, каждый лезет в базу со своим планом - и трейс их по-отдельности показывает, с планами и со статистикой... Oooh-h, yeah-h!.. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2014, 22:39 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
Таблоид> Не, второе ("микро-гранулированный trace") - это было бы действительно круто Ты не понял. Я имею в виду, что твои "первое" и "второе" одно и то же. Если трейс и научится показывать не только внешние стейтменты, но и внутримодульные, то, по идее, они будут показываться аналогично остальным. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2014, 23:19 |
|
||
|
trace со всеми включенными опциями: паузы до 1200 мс после deterministic stored ф-ции.Why?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, "первое" - это я про возможность показа только ПЛАНОВ (в виде винегрета), как это происходит в трейсе 2.5. Статистика по отдельным стейтментам в 2.5 не показывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2014, 23:33 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38696407&tid=1563475]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
63ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 382ms |

| 0 / 0 |
