Show Stat Database.dbcache.*

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 226
25
#1
Есть у нас в хелпе по админству вот такая вещь
Show Stat Database.DbCache.*
И решил я её полностью автоматизировать, вытянуть эти переменные не проблема, а вот чтобы их контролировать нужно более глубоко их понять
Для примера что даёт сервер:
Код:
> Show Stat Database.DbCache.*
Database.DbCache.CurrentEntries = 694
Database.DbCache.DatabaseLinkEntries = 0
Database.DbCache.HighWaterMark = 771
Database.DbCache.Hits = 92566
Database.DbCache.InitialDbOpens = 170190
Database.DbCache.Lookups = 295576
Database.DbCache.MaxBucketLength = 4
Database.DbCache.MaxEntries = 2637
Database.DbCache.NumBuckets = 2647
Database.DbCache.NumBucketsUsed = 604
Database.DbCache.OvercrowdingRejections = 0
Database.DbCache.Size = 8596
12 statistics found
Database.DbCache.CurrentEntries
Number of databases currently in the cache. If this number frequently approaches the value of Database.DbCache.MaxEntries, increase the number of databases the cache can hold.
Якобы текущее количество баз в кеше и не должно приближаться к максимальному, если приближается делаею максимуму(MaxEntries) + 20%
Вроде ясно

Database.DbCache.HighWaterMark
Maximum number of databases in the cache during this running of the server program. This number may be artificially high because of startup activity, so it may not be a genuine indicator of cache performance.
Максимум сколько было в кеше, чисто для статистики в логику не юзаю.

Database.DbCache.Hits
The number of times an "InitialDbOpen" is satisfied by finding the database in the cache. A high "hits-to-opens" ratio indicates that the database cache is working effectively. If the ratio is low, increase the number of databases the cache can hold.
Чем выше тем эффективнее, нужно считать отношение к InitialDbOpen и увеличивать, не панимаю?

Database.DbCache.InitialDbOpens
The number of times a user/server opened a database that was not already being used by another user/server. For example, if a user opens a mail file while it is being used by the Replicator, this number does not increase. Compare this number to Database.DbCache.Hits to gauge the effectiveness of the cache.
Нужно сравнить с хитами и смотреть как еффективно, как формулу составить?

Database.DbCache.Lookups
The number of lookups to the database cache. A high "Database.DbCache.Hit" to "Database.DbCache.Lookups" ratio means the database cache is effective. If the ratio is low, increase the number of databases the cache can hold.
Лукапы к кешу, отношение житов к лукапу говорит об эффективности. Это как, моё 92566 / 295576, показывает отношение меньше единицы, значит НЕ эфективно?

Database.DbCache.MaxEntries
The number of databases the server can currently hold in its cache at once. To change this value, use the NOTES.INI file setting, NSF_DbCache_Maxentries, or increase physical memory.
Сколько застолбить в кеше как максимум, основная переменная, если слишком лихо забить сожрёт слишком много ОЗУ а так чем больше тем лучше, ИБМ говорит юзать как NSF_BUFFER_POOL_SIZE / 300К а дальше уже играться по ситуации, вроде тоже всё ясно

Database.DbCache.OvercrowdingRejections
Number of times a database is not placed into the cache when it is closed because Database.DbCache.CurrentEntries equals or exceeds Database.DbCache.MaxEntries times 1.5. This number should stay low. If it begins to rise, increase the number of databases the cache can hold.
Сколько запросов не попало по кешу, ноль и есть идеал, тоже всё ясно

Обьясните мне какие формулы можно накрутить на:
Database.DbCache.Hits
Database.DbCache.InitialDbOpens
Database.DbCache.Lookups
 

Мыш

Well-Known Member
Lotus team
12.02.2008
1 085
13
#2
The number of lookups to the database cache. A high "Database.DbCache.Hit" to "Database.DbCache.Lookups" ratio means the database cache is effective. If the ratio is low, increase the number of databases the cache can hold.
Лукапы к кешу, отношение житов к лукапу говорит об эффективности. Это как, моё 92566 / 295576, показывает отношение меньше единицы, значит НЕ эфективно?
У меня (оба сервера под Win2003, Domino 6.5.6 FP2, все 32-битное):
Cервер1 (1Gb памяти, порядка 500 баз) : hits - 87 000, lookups - 105 000
Cервер2 (6Gb памяти, порядка 1000 баз) : hits - 38 000, lookups - 84 000
По-моему, какой-то бред получается... Сервер1 однозначно должен быть хуже...

PS. Вообще параметр "количество баз в кэше" у меня вызывает недоумение. Они что там - *целиком* помещаются?
Подозреваю, что хранятся какие-то "куски" (коллекции note?), причем непонятно из каких баз....

PPS. Извиняюсь, опечатался насчет кол-ва баз на сервере2 - их там порядка 1000, а не 100. Но их общий размер меньше размера баз сервера1 примерно в 8 раз.... Загадки, в общем...
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 226
25
#3
У меня (оба сервера под Win2003, Domino 6.5.6 FP2, все 32-битное):
Cервер1 (1Gb памяти, порядка 500 баз) : hits - 87 000, lookups - 105 000
Cервер2 (6Gb памяти, порядка 1000 баз) : hits - 38 000, lookups - 84 000
По-моему, какой-то бред получается... Сервер1 однозначно должен быть хуже...
а NSF_DbCache_Maxentries и NSF_BUFFER_POOL_SIZE чему равно?
если одинаковые то я охотно поверю что сервер1 лучше - у тебя же в обоих 32битка и 6Гб на втором не доступно...
 

Мыш

Well-Known Member
Lotus team
12.02.2008
1 085
13
#4
а NSF_DbCache_Maxentries и NSF_BUFFER_POOL_SIZE чему равно?
По умолчанию, ничего с ними не делал.
6Гб на втором не доступно...
Угу, но 3.7Gb-то (или сколько там?) должны ведь использоваться, не так ли? :)

PS. Хотя допускаю ,что на эту статистику влияет именно количество баз, а не их размер, интенсивность использования и т.п. Я бы очень хотел, чтоб IBM наконец-то ввел понятие приоритетных баз - чтоб они кешировались в первую очередь...
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 226
25
#5
По умолчанию, ничего с ними не делал.
по умолчанию NSF_DbCache_Maxentries=25

Угу, но 3.7Gb-то (или сколько там?) должны ведь использоваться, не так ли? :)
нет, вам светит только 2гига
итого разница между серверами по ОЗУ в 2 раза, а разница в производиотельности и того меньше так как ОЗУ это не главный аргумент

PS. Хотя допускаю ,что на эту статистику влияет именно количество баз, а не их размер, интенсивность использования и т.п. Я бы очень хотел, чтоб IBM наконец-то ввел понятие приоритетных баз - чтоб они кешировались в первую очередь...
да подожди ты, лучше обьясни про:
Database.DbCache.Hits
Database.DbCache.InitialDbOpens
Database.DbCache.Lookups

есть где-то внятное описание этих трёх величин и о том, по каким формулам их значения говорят о эффективном использовании кеша???