|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
Добрый день! Есть FB 2.5.5 x64 (SC\SS), Windows Server 2012 R2 16Gb ОЗУ, SSD под систему и 1Тб под базу. База 150Гб и растет. Требуется добиться максимальной производительности сервера при работе приложения. Запускается одно клиентское приложение (x32) на этой же машине либо по сети и выполняется длительная процедура над 1-1.5 мл записей. Параметры firebird.conf значительно увеличены по сравнению с оптимизированными конфигами от ibsurgeon. FB в ОЗУ в любом режиме (SS/SC) занимает до 1.5Гб. А вот кеш системы файла базы не растет выше 1.5-2Гб. Свободно еще 12-13Гб ОЗУ. Как заставить систему или FB использовать всю оперативную память? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 11:22 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
alex342, система и так использует оперативную память под кэш вашей базы. вы просто не туда смотрите. http://www.ibase.ru/devinfo/Firebird_Hardware_Guide_2015_rus.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 11:27 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
Hello, Alex342! You wrote on 4 декабря 2015 г. 11:28:50: Alex342> Есть FB 2.5.5 x64 (SC\SS)точно x64? хидер базы покажи заодно (gstat -h) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 11:29 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
Database "D:\RGB\RGB_DATA.FDB" Database header page information: Flags 0 Checksum 12345 Generation 5505 Page size 16384 ODS version 11.2 Oldest transaction 3827 Oldest active 4115 Oldest snapshot 4113 Next transaction 4252 Bumped transaction 1 Sequence number 0 Next attachment ID 1604 Implementation ID 26 Shadow count 0 Page buffers 0 Next header page 0 Database dialect 1 Creation date Dec 2, 2015 17:28:24 Attributes force write Variable header data: Sweep interval: 0 *END* ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 11:37 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
alex342, эээ... Запустили сервер, к базе никто не обращается. Базы в памяти нет. Подключились к базе. базы в памяти нет. Считали что-то из базы. Это что-то попало в кэш Firebird, и в кэш ОС. Еще что-то считали - тоже попало в кэш ФБ и кэш ОС. Читаем дальше - если информация есть в кэше ФБ, она читается оттуда. Нет - из файлового кэша ОС. Нет и там - читается с диска. Зачем вы картинку rammap даете при совсем непонятном состоянии вашей системы? Потом, запросы можно разделить на 2 типа. Одни жрут процессор, а другие жрут дисковый ввод-вывод. Например, select count(*) по самой большой вашей таблице - второго типа. А запрос первого типа, если еще и мало с диска читает, никак загрузку кэша ОС не покажет. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 11:57 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
alex342, Надо смотреть что делает ваша процедура. Например, если используется внешняя сортировка, то имеет смысл увеличить TempChacheLimit. alex342А вот кеш системы файла базы не растет выше 1.5-2Гб. он и не будет расти если из 150Гб читается только 1.5-2Гб ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 12:15 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
kdv, В программе последовательно выполняется start select - 300 записей execute procedure - 300 раз commit Из файла базы (монитор ресурсов) идет постоянное чтение до 1 мб/сек и такая же, поменьше примерно запись. FB сервер (SC) привязал к одному ядру процессора, приложение к другому. При запуске второго, третьего приложения, что локально, что по сети нагрузка на FB сервер растет, чтение/запись файла базы растет (до 3Мб\сек), вот кеш файла больше 2Гб не бывает. Простаивает память, обидно. В это же время при копировании большого файла или при бэкапе базы кеш Windows заполняется полностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 12:20 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
Цифры в firebird.conf увеличивал многократно... TempCacheLimit = 167108864 TempBlockSize = 18048576 TempCacheLimit = 1127108864 LockMemSize = 110048576 LockHashSlots = 130011 CpuAffinityMask = 128 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 12:24 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
Симонов Денис, темр файлов нет. Под них выделена отдельная директория c:\temp и она всегда пуста. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 12:26 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
alex342, зачем TempCacheLimit два раза написал? каковы значения DefaultDbCachePages и FileSystemCacheThreshold? Какая именно архитектура используется сейчас? А то написал SC\SS и фиг поймёшь ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 12:33 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
Симонов Денис, TempCacheLimit вытаскивал блокнотом и зацепил закомментированное. Все остальные параметры закомментированы. Сейчас стоит SC. Но картина с кешем базы одинакова и на SS. Для него также увеличивал на порядок параметры из "оптимизированного" конфига для SS. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 12:40 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
alex342, skype на сервере БД - это пять. PS не сдержался ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 12:42 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
alex342, ещё раз повторю вопрос. Каковы значения DefaultDbCachePages и FileSystemCacheThreshold? Это важно. Если DefaultDbCachePages > FileSystemCacheThreshold, то файловый кеш будет отключен ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 12:44 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
DefaultDbCachePages = 20000 (не заметил, он тоже активен) #FileSystemCacheThreshold = 65536 #FileSystemCacheSize = 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 12:44 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
Hello, Hvlad! You wrote on 4 декабря 2015 г. 12:44:27: Hvlad> skype на сервере БД - это пять. скорее всего там и Fallout, или GTA есть Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 12:45 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
hvlad, это машина для теста. Но могу и снести... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 12:46 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
alex342вот кеш файла больше 2Гб не бывает. Простаивает память, обидно. значит больше двух гиг данных из базы не читается. только и всего. И нечему там простаивать. База ваша 150 гиг, и в 16 гиг ОЗУ она никак не влезет, при всем желании. ОС сама разберется, сколько ей кэшировать. alex342select - 300 записей execute procedure - 300 раз 300 записей никак 2 гига не займут, и уж тем более 16. вызов процедуры - да, в зависимости от того, сколько данных там обрабатывается. Вам надо сделать так 1 перегрузить комп. 2 запустить вашу программу, замерять время выполнения вот этих самых выборок и выполнений процедуры. 3 отключиться от ФБ, выполнить пункт 2 еще раз, опять замерять время. 4 выполнить еще раз действия в вашей программе, замерять время По разнице во времени между пунктами 2 и 3 будет понятно, кэширует ОС что-либо, или нет. а между пунктами 3 и 4 будет видна разница между кэшированием ФБ. При первом обращении к данным ни в кэше ФБ ни кэше ОС ничего нет. Повторное обращение позволяет выяснить, попадает что в кэш, или вытесняется. Если же ваши процедуры елозят по всем 150 гиг, то все будет вытесняться из кэша и ФБ, и ОС, и время будет одинаковым Можно еще процедуру и запрос выполнить в IBExpert, посмотреть на page reads from disk, при первом и втором запуске. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 12:59 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
alex342Sweep interval: 0 Зачем? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 13:29 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, А это следующий вопрос... После обработки 150000-200000 строк FB сервер начинал занимать 100% ядра и обработка падала с 600 строк в минуту вначале до 50 через несколько часов. Я думал, мешает уборка мусора. Оказалось , что нет. Но 0 оставил. У меня задача - максимально ускорить обработку кусков по 1-2 млн строк. В начале: select - 7-10 сек, execute proc 0.01-0.02 сек, commit - 1-2 сек Через несколько часов времена пропорционально увеличиваются. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 14:02 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
жЭнтльмэны! а вам не кажется что это пятничный разводняк? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 14:06 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
alex342После обработки 150000-200000 строк FB сервер начинал занимать 100% ядра и обработка падала с 600 строк в минуту вначале до 50 через несколько часов. Крутить железо не поможет, вам там нужен вменяемый DBA и разработчик приложения. Возможно, в одном лице. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 14:07 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
alex342, ты бы уже показал что там твоя процедура делает. А то может быть надо её подкручивать, а не в конфиге копаться ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 14:08 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
Симонов Денис, Мосье даже простой скриншот не может обрезать, а ты такие сложности требуешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 14:10 |
|
Firebird и ОЗУ Windows
|
|||
---|---|---|---|
#18+
kdv, Раскомментировал FileSystemCacheThreshold = 65536 по совету Симонова Дениса. Win кеш остановился вообще на 300К. Возвращаю назад, а пока картинку прикладываю. Стер 8-ку. Время обработки первого запуска 8 мин и второго после перезапуска приложения тоже 8 минут. Кеш выключился. Вот весь конфиг: #RootDirectory = #DatabaseAccess = Full #ExternalFileAccess = None #UdfAccess = Restrict UDF #TempDirectories = #LegacyHash = 1 #Authentication = native #AuditTraceConfigFile = #MaxUserTraceLogSize = 10 #DefaultDbCachePages = 512 DefaultDbCachePages = 20000 #DatabaseGrowthIncrement = 134217728 FileSystemCacheThreshold = 65536 #FileSystemCacheSize = 0 #RemoteFileOpenAbility = 0 #TempBlockSize = 2048576 TempBlockSize = 18048576 TempCacheLimit = 1127108864 #CompleteBooleanEvaluation = 0 #DeadlockTimeout = 10 #MaxUnflushedWrites = 100 #MaxUnflushedWriteTime = 5 #BugcheckAbort = 0 #OldColumnNaming = 0 #OldSetClauseSemantics = 0 #RelaxedAliasChecking = 0 #ConnectionTimeout = 180 #DummyPacketInterval = 0 #RemoteServiceName = gds_db #RemoteServicePort = 3050 #RemoteAuxPort = 0 #TcpRemoteBufferSize = 8192 #TcpNoNagle = 1 #RemoteBindAddress = #LockMemSize = 5048576 LockMemSize = 110048576 #LockGrantOrder = 1 #LockAcquireSpins = 0 LockHashSlots = 130011 #EventMemSize = 65536 CpuAffinityMask = 128 #UsePriorityScheduler = 1 #PrioritySwitchDelay = 100 #PriorityBoost = 5 #GCPolicy = combined #GuardianOption = 1 #ProcessPriorityLevel = 0 #IpcName = FIREBIRD #RemotePipeName = interbas #Redirection = 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 14:33 |
|
|
start [/forum/topic.php?fid=40&msg=39120417&tid=1562456]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 266ms |
total: | 404ms |
0 / 0 |