powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обслуживание больших (>250 Гб) баз
23 сообщений из 98, страница 4 из 4
Обслуживание больших (>250 Гб) баз
    #38613046
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> первичным, imho, является понимание того, что представляют собой mon$-таблицы

Это первичным ИМХО не явлется, а когда речь касается
рекомендаций/подсказок - вообще нафиг не нужная инфа.

> сложно сказать, т.к. впервые системные таблицы мониторинга появились
> в InterBase 7.0 как минимум в 2003 году, т.е. существуют в IB уже 15 лет.
> mon$ появились в Firebird в версии 2.1, которая вышла в 2008 году, т.е. 6 лет
> назад (бета была в 2006 году).

У тебя, похоже, с арифметикой совсем худо. Кроме того, я
не уверен, что реализация таблиц мониторинга в IB как-то
схожа с оными в FB.

> ну а нафиг они нужны не снапшотом?

Вот, и у тебя понимания предмета и целей нет, а других
про суть вещей учить собрался. Это (смена уровня изоляции)
обсуждалось уже раза три, ИМХО, не меньше, в т.ч. с твоим
участием, если мне не изменяет память. ДЕ вроде тогда даже
согласился, что пусть работают как RC, а кому надо - пусть
вручную в снапшоте запускают. Но увы, это так и осталось
на уровне разговоров (впрочем, тройка ещё не вышла, ХЗ).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613047
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov> Вторую половину срезал запрет на чтение простыми пользователями.

Для этого есть гранты. Даже собирались на сей счёт
отдельную роль вводить, если мне не изменяет память.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613054
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvну а нафиг они нужны не снапшотом?
Чтобы видеть чем сервер мается в данную конкретную миллисекунду.

kdvкак ты собираешься обеспечить целостность между mon$attachments и
mon$transaction и остальным?
Никак. Потому что ни к чему она для целей мониторинга.

kdvКакой прок от чтения этих таблиц в нецелостном состоянии?
См. выше: видеть состояние сервера в данную миллисекунду. А не секунду назад и не час.
Потому что протекающие процессы мимолётны их снапшот - бесполезен.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613056
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovвидеть состояние сервера в данную миллисекунду. А не секунду назад и не час.
Потому что протекающие процессы мимолётны их снапшот - бесполезен.Ты про содержимое mon$statements.sql_text ? Так можно user-trace на небольшое время запустить ив логе его глянуть. ИМХО, это менее напряжно будет для базы.
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613066
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидТы про содержимое mon$statements.sql_text ?
Я про MON$TRANSACTIONS. Когда софтина получает в лоб "update conflict with transaction
XXXXXX", возникает логичное желание посмотреть что это за транзакция и кому принадлежит.
Немедленно. Не ожидая пока соберётся целый снапшот состояния. Вне зависимости от привилегий.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613085
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамКроме того, я не уверен, что реализация таблиц мониторинга в IB как-то схожа с оными в FB.
а ты не помнишь, как я ругался (при выходе ИБ 7.5), что идея была из Firebird, а первой ее реализовал InterBase?
Структура таблиц tmp$ и mon$ слегка отличается, например, в tmp$attachments есть уже "суммированные" столбцы по транзакциям и коннектам в отношении record/page io, и нет фишек типа remote process, исходно была возможность удалять коннекты и отменять транзакции, и т.д. Но смысл и назначение - ровно то же самое.
Насчет "реализации" - она может быть какая угодно, и разумеется, в IB нет "реализации" tmp$ для классика, и код писали разные люди, но mon$ и tmp$ показывают одно и тоже.
Например, в IBExpert пункты Services/Database monitoring показывают одинаковую информацию и для соединений с IB, и для соединений с FB, хотя запросы слегка разные.

Например,
Код: sql
1.
select * from tmp$attachments 

выдаст то же самое, что и

Код: 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.
SELECT a.mon$attachment_id as "Attachment ID", 
       a.mon$state as "State", 
       a.mon$user as "User", 
       a.mon$role as "Role", 
       a.mon$remote_address as "Remote Address", 
       a.mon$remote_pid as "Remote PID", 
       cs.rdb$character_set_name as "Character Set", 
       a.mon$timestamp as "Established At", 
       a.mon$garbage_collection as "Garbage Collection", 
       r.mon$record_seq_reads as "Non-indexed Reads",
       r.mon$record_idx_reads as "Indexed Reads",
       r.mon$record_inserts as "Records Inserted",
       r.mon$record_updates as "Records Updated",
       r.mon$record_deletes as "Records Deleted",
       r.mon$record_backouts as "Records Backed Out",
       r.mon$record_purges as "Records Purged",
       r.mon$record_expunges as "Records Expunged",
       io.mon$page_reads as "Page Reads",
       io.mon$page_writes as "Page Writes",
       io.mon$page_fetches as "Page Fetches",
       io.mon$page_marks as "Page Marks"
from mon$attachments a
join rdb$character_sets cs on (a.mon$character_set_id = cs.rdb$character_set_id)
left join mon$record_stats r on (a.mon$stat_id = r.mon$stat_id)
left join mon$io_stats io on (a.mon$stat_id = io.mon$stat_id)



Гаджимурадов РустамВот, и у тебя понимания предмета и целей нет, а других про суть вещей учить собрался.
ну спасибо.

Dimitry SibiryakovСм. выше: видеть состояние сервера в данную миллисекунду. А не секунду назад и не час.
Потому что протекающие процессы мимолётны их снапшот - бесполезен.
извини, но это чешуя. Потому что все равно чтобы увидеть данные, нужно сделать select * from mon$, и результат запроса зафиксируется на момент его выполнения.
"не снапшот" mon$ всего лишь облегчит серверу обращение к mon$ - не надо будет делать снапшот всех mon$ таблиц при обращении к любой, и на сотнях коннектов обращение к mon$ будет слегка побыстрее, чем N секунд - , но сути mon$ и сути использования mon$ это никак не поменяет.
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613101
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> Насчет "реализации" - она может быть какая угодно

При чём тут смысл, назначения, поля и пр, если речь шла
конкретно о реализации? Если бы таблицы мониторинга
(что тут, что там) были "безвредными" при использовании,
то и применять их можно было как угодно, в хвост и в гриву.
Но у FB, увы, есть свои "особенности" (про IB не в курсе).

kdv> ну спасибо.

На здоровье. С таким подходом, действительно, какие-то
общие рекомендации составлять не стоит.

> извини, но это чешуя.

Чешуя - это то, что ты тут написал. Во-первых, если
это облегчит работу серверу - это хорошо или плохо?
Во-вторых, на данный момент не на момент выполнения,
а на момент старта транзакции - что две большие разницы.
В-третьих, про суть использования mon$ у каждого своя -
у тебя своя, у него своя (и я с ним согласен), у кого-то
третьего - будут свои цели, тут можно долго рассуждать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613187
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамВо-вторых, на данный момент не на момент выполнения, а на момент старта транзакции - что две большие разницы.
и ты меня еще попрекаешь "непониманием предмета"? mon$ заполняются не при старте транзакции, а при первом обращении к любой mon$, и данные там будут вовсе не на "момент старта транзакции". а вот для перечитывания содержимого mon - да, надо рестартовать транзакцию.

Гаджимурадов РустамНо у FB, увы, есть свои "особенности" (про IB не в курсе).
у IB все то же самое.
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613202
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> а вот для перечитывания содержимого mon - да, надо рестартовать транзакцию.

Ну и?

> у IB все то же самое.

В смысле те же тормоза? Или тоже тормоза, но не такие жёсткие?
У них же SMP много раньше появилось, там нет оптимизаций?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613231
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамНу и?
признавать свою ошибку будешь, или как? а то брякнуть легко:
" Во-вторых, на данный момент не на момент выполнения,
а на момент старта транзакции - что две большие разницы.
"

Гаджимурадов РустамВ смысле те же тормоза? Или тоже тормоза, но не такие жёсткие?
У них же SMP много раньше появилось, там нет оптимизаций?
давай, включи мозг. У IB есть только суперсервер, все коннекты в одном адресном пространстве, соответственно таблицы мониторинга можно быстро заполнить.
У ФБ наиболее используемы Classic, где процессы самостоятельны, поэтому любое обращение к mon$, даже гипотетически RC, должно опросить все запущенные процессы (при этом сами процессы могут заниматься всяким разным). То есть, сейчас обращение к mon$ получает всю инфу из процесса. Теоретическое RC будет получать только нужную инфу из процессов - mon$transactions, mon$statements, и т.д. Но получение даже частичной информации все равно будет ресурсозатратным.

В SuperClassic обращение к mon$ должно быть побыстрее, но разницу разве что Таблоид может сказать.
Кроме того, если бы (да кабы) для mon$ можно было ограничиваться своим id, например, при запросе с where mon$attachment_id = self оно бы спрашивало только "свой" процесс, исключая остальные... Но увы, в данном случае where работает "поверх" уже готового результата.

Так что пока выгода от mon$ в RC лишь гипотетическая. Практическая - да, однозначно, но вопрос в % выигрыша.

p.s. тестами сравнения mon$ в супере, классике и суперклассике, и tmp$, я не занимался, нет конкретного интереса. MonLogger запоминает время, которое потребовалось на получение информации из mon$, тут уже можно делать какие-то оценки.
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613237
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvВ SuperClassic обращение к mon$ должно быть побыстрее, но разницу разве что Таблоид может сказать.я не сравнивал Classic vs SuperClassic, ибо у нас последний уже года два как. Про бешеный расход памяти забыли давно, а по скорости они ничем не уступает. Заваливается весьма редко, так что причин для возврата к CS нет.
В трёшке опрос мониторинга идёт быстрее чем в 2.5 (при одинаковой арх-ре).

kdvКроме того, если бы (да кабы) для mon$ можно было ограничиваться своим id, например, при запросе с where mon$attachment_id = self оно бы спрашивало только "свой" процесс, исключая остальные... Но увы, в данном случае where работает "поверх" уже готового результата.Угу. И это действительно - "увы" :-/
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613261
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидя не сравнивал Classic vs SuperClassic, ибо у нас последний уже года два как.
я имел в виду - у тебя же есть стенд, и "молотилки", можно было бы проверить при одинаковой нагрузке на CS и SC тем же monlogger, или просто замером select count(*) from mon$attachments.
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613266
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvТаблоидя не сравнивал Classic vs SuperClassic, ибо у нас последний уже года два как.
я имел в виду - у тебя же есть стенд, и "молотилки", можно было бы проверить при одинаковой нагрузке на CS и SC тем же monlogger, или просто замером select count(*) from mon$attachments.я проверю это, но попозжее. Сейчас тут с новым ОЛТП-тестом ковыряюсь, много времени на него уходит.

Кстати: а MonLogger, когда только-только я ткнул по нему мышкой, и до момента, когда он получит снимок мон-таблиц, - он вот этот промежуток времени где-то регистрирует ? Т.е. меня интересует: пишет ли он в лог время ОЖИДАНИЯ отклика всех коннектов на команду select ... from mon$... ?
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613274
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> признавать свою ошибку будешь, или как? а то брякнуть легко:

Подучи русский язык. Каждый последующий вызов будет
выдавать то же самое, независимо от момента выполнения.
Но ты, конечно, можешь поспорить, что запрос делается
на пару миллисекунд позже старта транзакции, да.

> Но увы, в данном случае where работает "поверх" уже готового результата.

Кстати, это тоже большой минус и заслуживает тикета.

> Так что пока выгода от mon$ в RC лишь гипотетическая.
> Практическая - да, однозначно

Это просто феерия какая-то! В мемориз! (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613280
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамПодучи русский язык.
еще раз спрашиваю, ты признаешь, что содержимое mon$ не заполняется при старте транзакции, о чем ты лично заявил?
" Во-вторых, на данный момент не на момент выполнения,
а на момент старта транзакции - что две большие разницы.
"

Гаджимурадов РустамЭто просто феерия какая-то! В мемориз! (с)
а я где-то говорил, что разницы не будет?
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613291
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> о чем ты лично заявил?

Ты действительно не понимаешь смысл написанного?
Даже с третьего раза?

> а я где-то говорил, что разницы не будет?

Трудно сказать, у нас разное понимание одних и тех
же слов. "гипотетическая" и "Практическая" - да, это
близко к сомнению, как минимум. Если не к мнению
"а нафиг оно нужно" (о чём ты как раз точно заявлял).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613324
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамТы действительно не понимаешь смысл написанного? Даже с третьего раза?
разъясни мне, пожалуйста, смысл тобой написанного. непонятно, почему так сложно признать свою ошибку (или описку, или я не знаю что)?

Гаджимурадов РустамЕсли не к мнению "а нафиг оно нужно" (о чём ты как раз точно заявлял).
я не силен в использовании mon$ "a la Таблоид". Я их использую для поиска проблем. А для этого снапшот mon$ вполне достаточен. То, что я тоже был на стороне "mon$ аки RC в RC" - не спорю, и не протестую. Одновременно я вижу, что большинство и разработчиков и админов вообще не в состоянии использовать mon$, хотя, казалось бы, оно уже 8 лет существует.
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613331
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvОдновременно я вижу, что большинство и разработчиков и админов вообще не в
состоянии использовать mon$, хотя, казалось бы, оно уже 8 лет существует.
Дык в том-то и вопрос: "для чего их на практике можно использовать?"

Возвращаясь к топику: вот сегодня ТС мучил свою базу репликацией. Показывал какие-то
совершенно жуткие цифры: производительность репликатора 56 записей в секунду, загрузка ЦПУ
репликатором - 0, Firebird - 7%. Средняя очередь запросов к диску - 1. Я совершенно не
понимаю как это может быть. И не представляю что можно посмотреть в MON$-таблицах чтобы
выяснить почему оно так тормозит на ровном месте.

PS: Gallemar, результат fb_lock_print ты, кстати, так и не показал.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613350
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> разъясни мне, пожалуйста, смысл тобой написанного.

Если ты подзабыл, то всегда можно промотать страницу и
перечитать, это дело пары секунд. А смысл очень простой -
на данный момент mon-ы фризятся независимо от уровня
изоляции транзакции - т.е. мало того, что это недешевая
операция, так она ещё и в RC работать не будет - вернее,
будет, но не как в RC, а как в снапшоте. Что обсуждалось
уж года три, наверное, но воз и ныне там - то ли ДЕ чего-то
опасается (несовместимость, неконсистентность и пр.), то
ли "приоритет у тикета низкий", то ли с реализацией не
определился, то ли ещё что. А тут ещё ты появляешься с
противоположной ортодоксальной позицией в духе
"оставьте всё как есть, консистентность наше всё!".

Про то, что select (и delete?) игнорирует where-предикат я
даже как-то забыл, но тут трудно что-то изменить, наверное.

> непонятно, почему так сложно признать свою ошибку (или описку, или я не знаю что)?

Признать ошибку мне не жалко, даже если её не было.
От меня не убудет. Но, если ты забыл, то напомню,
что ты написал некую фигню, увтерждая что мнение
собеседника - чешуя, а когда тебе в трёх пунктах
объяснили, что это ты фигню несёшь - ты ухватился
за разницу между моментом старта транзакции и запроса,
как-будто кто-то утверждал, что стартанула транзакция -
и все коннекты сразу данные в "мониторинг" скинули.

> Я их использую для поиска проблем.
> А для этого снапшот mon$ вполне достаточен
> Одновременно я вижу, что большинство и разработчиков
> и админов вообще не в состоянии использовать mon$

Ну, "мне не надо, как есть хватает, а большинство -
вообще неграмотные" - хороший подход, достойный. :)
Лично мне оно тоже мало нужно, знаешь ли, ибо ни в
каких триггерах оно у меня не сидит. Но это не значит,
что там нечего улучшать и подсказать этим самым
"неграмотным" для чего и как лучше использовать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613384
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Возвращаясь к топику: вот сегодня ТС мучил свою базу репликацией. Показывал какие-то
совершенно жуткие цифры: производительность репликатора 56 записей в секунду, загрузка ЦПУ
репликатором - 0, Firebird - 7%. Средняя очередь запросов к диску - 1. Я совершенно не
понимаю как это может быть. И не представляю что можно посмотреть в MON$-таблицах чтобы
выяснить почему оно так тормозит на ровном месте.

PS: Gallemar, результат fb_lock_print ты, кстати, так и не показал.

Дима,всё будет,связь с сервером получил только поздно вечером,уже поздно было что либо запускать.
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613467
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамЕсли ты подзабыл, то всегда можно промотать страницу и перечитать, это дело пары секунд.
я твою фразу тебе три раза привел, и перечитывал неоднократно.

kdv - чтобы увидеть данные, нужно сделать select * from mon$, и результат запроса зафиксируется на момент его выполнения.
ГР - Во-вторых, на данный момент не на момент выполнения, а на момент старта транзакции - что две большие разницы.

?

Гаджимурадов РустамНо, если ты забыл, то напомню, что ты написал некую фигню, увтерждая что мнение собеседника - чешуя, а когда тебе в трёх пунктах объяснили, что это ты фигню несёшь
там была совершенно конкретная фраза про "чешую". 15871904 Твои "три пункта были"
- про то, что mon$ в RC могли бы занимать меньше ресурсов
- про то, что "на момент старта транзакции" - mon$ заполняются? Или что "на момент"?
- про то, что при использовании mon$ у каждого свои цели.

пункты 1 и 3 я не отрицаю, но они не относились к "видеть состояние сервера в данную миллисекунду и не час назад", что я и назвал чешуей.
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613748
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК, нет, при старте старте транзакции все коннекты не ломятся
формировать данные мониторинга. Это чрезвычайно важная
корректировка, определяющая, особенно в контексте разговора.

kdv> пункты 1 и 3 я не отрицаю

Аминь и на этом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обслуживание больших (>250 Гб) баз
    #38613781
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой топик у меня популярный получился,ещё бы кто нить помнил с чего всё началось:)
http://www.sql.ru/forum/1088852-a/emulyaciya-hhd-ram
...
Рейтинг: 0 / 0
23 сообщений из 98, страница 4 из 4
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обслуживание больших (>250 Гб) баз
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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