powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / расшифровка lock_print
37 сообщений из 37, показаны все 2 страниц
расшифровка lock_print
    #38551831
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь что влажу в чужую тему, есть вопрос
у меня lock_print выдает такое
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
LOCK_HEADER BLOCK
        Version: 145, Active owner:      0, Length: 51200000, Used: 4146736
        Flags: 0x0001
        Enqs: 10036657449, Converts: 12736440, Rejects: 9543748, Blocks: 47580701
        Deadlock scans:    286, Deadlocks:      0, Scan interval:  10
        Acquires: 10507246389, Acquire blocks: 1663339144, Spin count:   0
        Mutex wait: 15.8%
        Hash slots: 24593, Hash lengths (min/avg/max):    0/   0/   5
        Remove node:      0, Insert queue:      0, Insert prior:      0
        Owners (226):   forward: 235576, backward: 3414240
        Free owners (98):       forward: 2218240, backward: 987920
        Free locks (4712):      forward: 210696, backward: 304808
        Free requests (21433):  forward: 932664, backward: 4136088
        Lock Ordering: Enabled


Тут где то писалось что если mutex wait показатель около 12%, то следует насторожиться и анализировать причину этого. А если 20% и выше, то это уже плохо.
Хотелось бы знать чем может быть причина?
При 15.8% работает все норм, при нагрузке может до 24% дойти, начинает база тормозить (как запросы так и просто коннект к базе)
Что можно в конфиге подкрутить чтоб уменьшить этот % ?
Винда 2003 , 32 ядра, 128Гб оперативки
сервер классик, Версия FireBird - WI-V2.5.3.26739 Firebird 2.5
база около 30Гб, активных коннектов к базе в час пик может доходить до 250-300
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38551857
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82,

в пике вижу было 324 коннекта. Какой размер кеша стоит, 200-250 страниц или больше? Ну и интересно было бы посмотреть на такой же вывод в момент тормозов.
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38551871
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr, сейчас стоит 128, пробовал больше ставить - но субъективно кажется хуже становится
как будет тормозить, выложу, это часа через 4 начнется
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38551879
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrв пике вижу было 324 коннекта
а где это кстати видно?
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38551899
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82а где это кстати видно?
owners + free owners. Но это пик с момента первого коннекта к базе, т.е. обычно за текущие сутки или даже менее.
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38551900
Alex_MS82dimitrв пике вижу было 324 коннектаа где это кстати видно?owners + free owners :-)
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38551903
тьфу, не успел :-)
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552289
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот начались тормоза в базе:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
LOCK_HEADER BLOCK
        Version: 145, Active owner:      0, Length: 51200000, Used: 5284328
        Flags: 0x0001
        Enqs: 1116690139, Converts: 1959386, Rejects: 1458770, Blocks: 7996331
        Deadlock scans:      0, Deadlocks:      0, Scan interval:  10
        Acquires: 1198680305, Acquire blocks: 266335395, Spin count:   0
        Mutex wait: 22.2%
        Hash slots: 35023, Hash lengths (min/avg/max):    0/   0/   5
        Remove node: 2298692, Insert queue:      0, Insert prior:      0
        Owners (388):   forward: 496704, backward: 4927376
        Free owners: *empty*
        Free locks (3654):      forward: 3328160, backward: 2858360
        Free requests (151):    forward: 869528, backward: 4270480
        Lock Ordering: Enabled


перегрузил ФБ
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
LOCK_HEADER BLOCK
        Version: 145, Active owner: 1581960, Length: 51200000, Used: 2504544
        Flags: 0x0001
        Enqs: 11643081, Converts:  40775, Rejects:  32370, Blocks: 177077
        Deadlock scans:      0, Deadlocks:      0, Scan interval:  10
        Acquires: 13493783, Acquire blocks: 1840360, Spin count:   0
        Mutex wait: 13.6%
        Hash slots: 35023, Hash lengths (min/avg/max):    0/   0/   4
        Remove node:      0, Insert queue:      0, Insert prior:      0
        Owners (192):   forward: 292936, backward: 1740000
        Free owners (3):        forward: 2323880, backward: 2304192
        Free locks (301):       forward: 294136, backward: 1573592
        Free requests (219):    forward: 2191032, backward: 413360
        Lock Ordering: Enabled
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552322
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82,

покажите результат вот этого:
Код: plaintext
findstr /r "^[^#;]" %FIREBIRD_HOME%\firebird.conf
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552326
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы. а также результат
Код: plaintext
%FIREBIRD_HOME%\bin\gstat -h <ваша_бедная_база.fdb>
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552328
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82,

ага, пик уже 388 коннектов. И "mutex wait" вырос пропорционально. Вообще, я не вижу каких-либо проблем непосредственно с лок-таблицей (кроме того, что ее постоянно долбят :-) Я бы скорее начал мониторить сервер на тему запросов с неудачными планами. И еще попробовал бы на денек суперклассик вместо классика.
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552331
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
ExternalFileAccess = Full
TempDirectories = D:\Tmp
DefaultDbCachePages = 128
FileSystemCacheThreshold = 5120000
TempBlockSize = 8388608
TempCacheLimit = 1000000000
LockMemSize  = 51200000
LockHashSlots = 35023
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552335
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

Код: 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.
Database header page information:
        Flags                   0
        Checksum                12345
        Generation              25280588
        Page size               8192
        ODS version             11.2
        Oldest transaction      21232958
        Oldest active           23770153
        Oldest snapshot         23770153
        Next transaction        23770428
        Bumped transaction      1
        Sequence number         0
        Next attachment ID      1510153
        Implementation ID       26
        Shadow count            0
        Page buffers            0
        Next header page        0
        Database dialect        3
        Creation date           Feb 5, 2014 2:52:44
        Attributes              force write

    Variable header data:
        Sweep interval:         0
        *END*
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552344
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

суперслассик завтра попробую
вообще странно как то, работало нормально, потом в один миг затык, все стало. перегрузил фб - все норм пошло работать
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552355
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82DefaultDbCachePages = 128[/SRC]В заголовке базы (gstat -h) Page buffers = 0, а значит, у вас кеш = 128 страниц на коннект.
При 128 Гб оперативы выглядит неуместным жмотством :-)
Даже если поставите 4096, то под кеш на 400 аттачей уйдёт 400*4096*8192= ~13,4 Гб - всё равно мизер по сравнению с общим объёмом памяти сервера (надеюсь, там больше ничего кроме ФБ не вертится ?)
Да, и еще: "TempDirectories = D:\Tmp" - база на ЭТОМ же физ. диске или на другом ?
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552358
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82,

FileSystemCacheThreshold для классика вообще не надо трогать. TempCacheLimit я бы не стал так задирать при почти 400 коннектах, но думаю все же вряд ли у вас все коннекты одновременно гигабайты сортируют, так что это не должно быть проблемой.
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552361
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82,

23 миллиона транзакций за полтора суток - это сильно. Это значит 660300 транзакций в час, 11к транзакций в минуту, или 183 транзакции в секунду, НЕПРЕРЫВНО.
Допустим, 300 пользователей сидят у своих компов уже 36 часов и непрерывно жмут на кнопки. Получается, что каждый пользователь генерит транзакцию каждые 2 секунды.

Что-то тут не так.
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552362
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82,

когда "затык, все встало", то заголовка лок-таблицы недостаточно, надо смотреть вывод как минимум с ключом -w плюс при необходимости с ключом -a. Но тут вам эти портянки расшифровывать вряд ли кто-то будет.
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552368
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvДопустим, 300 пользователей сидят у своих компов уже 36 часов и непрерывно жмут на кнопки
непрерывно точно не жмут :-) Ибо за последние 4 часа лок-таблица была пересоздана, т.е. хотя бы однажды были отключены все пользователи.
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552371
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvкаждый пользователь генерит транзакцию каждые 2 секунды.Это могут быть всякие пакетные задания (да еще с автономками). Или датчики какие-нибудь, мало ли что там у них.
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552374
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82вообще странно как то, работало нормально, потом в один миг затык, все стало. перегрузил фб - все норм пошло работатькогда затык, то быстро ли делается коннект из isql'я (НЕ из ИБЭ) ?
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552376
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидЭто могут быть всякие пакетные задания (да еще с автономками). Или датчики какие-нибудь, мало ли что там у них.
могут. а могут и не быть. Поэтому я всегда так спрашиваю. И как правило, первый ответ это "ээээээ....".
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552385
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82потом в один миг затык, все стало. перегрузил фб - все нор

блобы не могли потечь ? или OIT заклинить.

Это не OIT ?
Oldest transaction 21232958
Oldest active 23770153
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552386
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидДа, и еще: "TempDirectories = D:\Tmp" - база на ЭТОМ же физ. диске или на другом ?
на этом же, планирую на рам-диск перенести , 8Гб должно хватить
DefaultDbCachePages попробую 1024 поставить
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552394
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrAlex_MS82,

FileSystemCacheThreshold для классика вообще не надо трогать. TempCacheLimit я бы не стал так задирать при почти 400 коннектах, но думаю все же вряд ли у вас все коннекты одновременно гигабайты сортируют, так что это не должно быть проблемой.

Спасибо, сейчас поменяю конфиг
кстати я ж так понимаю настройки в конфиге применяются после перезагрузки ФБ или на новый коннект к базе уже пойдет и конфиг новый?
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552399
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82в один миг затыкеще можно попробовать запустить пользовательский трейс, в конфиге которого указано:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<database (%[\\/](%имя_файла_вашей_базы%).fdb)|(алиас_вашей_базы_если_он_есть)>
  enabled true

  #include_filter = select%
  #include_filter = %list\(% escape \
  #include_filter = %list\(%

  log_connections true
  log_transactions true

  log_statement_finish true
  log_sweep true
  log_errors true
  
  log_trigger_finish true
  log_procedure_finish true

  print_perf true
  print_plan true
  max_sql_length 4096
   time_threshold 5000 
</database>

Запускайте его так:
Код: plaintext
%FIREBIRD_HOME%\bin\fbtracemgr -sta -c your_trace_config.conf -se service_mgr | mtee production_trace.log
(утилиту mtee.exe возьмите в пакете SysInternals)

Когда будут затыки, в трейсе появятся сообщения о выполняемых стейтментах, длительность которых свыше 5000 мс (или поставьте time_threshold в другое значение). Покажите сюда с планами и статистикой самые одиозные из них. Прервать трейс можно просто по Ctrl-C.

Да, и еще.автор
Код: sql
1.
Sweep interval:         0

- я правильно понимаю, что свип у вас там по ночам, отдельным заданием ?
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552401
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvAlex_MS82,

23 миллиона транзакций за полтора суток - это сильно. Это значит 660300 транзакций в час, 11к транзакций в минуту, или 183 транзакции в секунду, НЕПРЕРЫВНО.
Допустим, 300 пользователей сидят у своих компов уже 36 часов и непрерывно жмут на кнопки. Получается, что каждый пользователь генерит транзакцию каждые 2 секунды.

Что-то тут не так.

ну большая часть программно без клиентов отрабатывает
а клиентов вообще больше, но не все одновременно работают и не напрямую с базой а через сервер приложений
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552402
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82кстати я ж так понимаю настройки в конфиге применяются после перезагрузки ФБ или на новый коннект к базе уже пойдет и конфиг новый?в КЛАССИКЕ - нет, там каждый новый коннект перечитывает конфиг заново.
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552406
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82не все одновременно работают и не напрямую с базой а через сервер приложенийпул коннектов в нём есть ?
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552411
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,
из isql не замерял , а программно долго (pFIBDatabase.Connected := true)
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552414
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати: а к таблицам мониторинга в вашем приложении много обращений ? ( особенно - из триггеров на commit/rollback или на connect/disconnect; например, для аудита там всякого: кто вошел/вышел и проч.)
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552420
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид- я правильно понимаю, что свип у вас там по ночам, отдельным заданием ?

да , в 4 утра каждый день запускается
gfix.exe -sweep -user SYSDBA -password ........ d:\db\main.FDB
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552425
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидпул коннектов в нём есть ?
не везде, на нагруженных командах есть

Таблоидкстати: а к таблицам мониторинга в вашем приложении много обращений ? ( особенно - из триггеров на commit/rollback или на connect/disconnect; например, для аудита там всякого: кто вошел/вышел и проч.)

неа, в основном только вручную
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552426
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82из isql не замерялчто в этом сложного ?
Создайте батник:
Код: plaintext
1.
2.
3.
echo quit;>dummy.sql
echo %time%
%firebird_home%\bin\isql xxx.xxx.xxx.xxx/3050:production_alias -user sysdba -pas ***** -i dummy.sql
echo %time%
- и запустите его.

ЗЫ. Когда (и если) захотите жаловаться ФБ-разрабам, то помните: они не знают других инструментов, кроме как isql :-)
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552434
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82неа, в основном только вручнуюВрубайте трейс через час после старта ФБ (лучше так: незадолго до того, как по вашим прикидкам будут тормоза), параметры конфига я привёл выше. Он выдаст сообщение о своём старте и ЗАМРЁТ в ожидании тормозных запросов.
Введите в новом окне для проверки что-нибудь вроде:
Код: plaintext
SQL> set stat on; select count(*) from rdb$types,rdb$types,rdb$types;
- и посмотрите, отреагирует ли трейс (при условии, что выполнение этого запроса было свыше 5 сек).
Если отреагирует - всё пучком, ждите тормозов и постарайтесь побольше собрать инфы.
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552441
Alex_MS82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

ага спасибо, завтра уже сделаю - сегодня уже вряд ли будут тормоза
...
Рейтинг: 0 / 0
расшифровка lock_print
    #38552489
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_MS82да , в 4 утра каждый день запускается
Это слишком редко. Верни автосвип обратно в дефолт. Или даже на значение поменьше.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / расшифровка lock_print
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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