Тормоза FireBird
Модераторы: Trinity admin`s, Free-lance moderator`s
- a_shats
- Advanced member
- Сообщения: 5010
- Зарегистрирован: 27 авг 2002, 10:55
- Откуда: Москва
- Контактная информация:
У мя сейчас на сервере висит порядка 50 сессий Yaffil - Classic Server, занимающие в общей сложности 332392 КБайт :)
Нет, особой супер-производительностью похвастаться не могу, т.к. сервер оченно древний и слабенький (2xXeon 1,8 GHz/2x512 MB DDRI-266 ECC Reg/Mylex extremeRAID 2000, база лежит на зеркале 2х15К 18ГБ винтах - но пока и этого хватает ) - но и особых тормозов тоже нет
Нет, особой супер-производительностью похвастаться не могу, т.к. сервер оченно древний и слабенький (2xXeon 1,8 GHz/2x512 MB DDRI-266 ECC Reg/Mylex extremeRAID 2000, база лежит на зеркале 2х15К 18ГБ винтах - но пока и этого хватает ) - но и особых тормозов тоже нет
А у нас 1,4Гб :( .a_shats писал(а):Ну, база конечно маленькая - 112 МБ, но главное - выполнение отчетов на этом сервере не напрягает ни-ко-го
Из всего обсуждения понял я, что у FireBird-a есть одна только настройка - SuperServer (никому не нравится - отстой!) или ClassicServer (сразу все тормоза пропадают - круто!). :)
Постараюсь все-таки на выходных померять производительность с разными настройками потщательнее.
вот какие параметры есть в firebird.conf касающихся производительности (исключая пути, которые могут вести на разные по скорости физические носители):
и опции кеширования на диск
есть некие блокировки памяти
Итак имеем всё по умолчанию
какие соображения по оптимизации ?
Код: Выделить всё
# ----------------------------
# Number of cached database pages
#
# This sets the number of pages from any one database that can be held
# in cache at once. If you increase this value, the engine will
# allocate more pages to the cache for every database. By default, the
# SuperServer allocates 2048 pages for each database and the classic
# allocates 75 pages per client connection per database.
#
# Type: integer
#
#DefaultDbCachePages = 2048
# ----------------------------
# In-memory sorting module
#
# The amount of memory allocated for each sort block.
#
# Type: integer
#
#SortMemBlockSize = 1048576
#
# The maximum amount of memory to be allocated by the in-memory
# sorting module.
#
# For Classic servers, this setting is defaulted to 8 MB.
# Although it can be increased, the value applies to each client
# connection/server instance and thus consumes a lot of memory.
#
# Type: integer
#
#SortMemUpperLimit = 67108864
и опции кеширования на диск
Код: Выделить всё
# ----------------------------
#
# How often the pages are flushed on disk
# (for databases with ForcedWrites=Off only)
#
# Number of unflushed writes which will accumulate before they are
# flushed, at the next transaction commit. For non-Win32 ports,
# the default value is -1 (Disabled)
#
# Type: integer
#
#MaxUnflushedWrites = 100
#
# Number of seconds during which unflushed writes will accumulate
# before they are flushed, at the next transaction commit. For non-Win32
# ports, the default value is -1 (Disabled)
#
# Type: integer
#
#MaxUnflushedWriteTime = 5
Код: Выделить всё
# ----------------------------
# Locking and shared memory parameters
#
# Bytes of shared memory allocated for lock manager.
# In Classic mode, the size given is used for the initial allocation. The
# table expands dynamically up to the limit of memory. In SuperServer, the
# initial size is also the final size.
# Default is 96K on Linux and Solaris, 256K on Windows.
#
# Type: integer
#
#LockMemSize = 262144
#
# Number of semaphores for interprocess communication.
# In non-threading environments, this sets the number of semaphores
# available
#
# Type: integer
#
#LockSemCount = 32
#
# When a connection wants to lock an object, it gets a lock request
# block which specifies the object and the lock level requested. Eack
# locked object has a lock block. Request blocks are connected to those
# lock blocks either as requests that have been granted, or as pending
# requests.
#
# The settings:
# 1 means locks are granted first come, first served.
# 0 means emulate InterBase v3.3 behavior, where locks are granted
# as soon as they are available; can result in lock request
# starvation.
#
# Type: integer/boolean
#
#LockGrantOrder = 1
#
# In Classic, only one client process may access the lock table at any
# time. Access to the lock table is governed by a mutex. The mutex can
# be requested conditionally - a wait is a failure and the request must
# be retried - or unconditionally - the request will wait until it is
# satisfied. This parameter establishes the number of attempts that
# will be made conditionally. Zero value means unconditional mode.
# Relevant only on SMP machines.
#
# Type: integer
#
#LockAcquireSpins = 0
#
# Tune lock hash list; more hash slots mean shorter hash chains. Only
# necessary under very high load. Prime number values are recommended.
#
# Type: integer
#
#LockHashSlots = 101
Итак имеем всё по умолчанию
какие соображения по оптимизации ?
Есть даже специальная утилита, с помощью которой удобно редактировать этот файл: FbConfigManager.setar писал(а): Итак имеем всё по умолчанию
какие соображения по оптимизации ?
Мне кажется, что a_shats знает, что тут можно поредактировать, но скрывает! Вот его слова: "я многократно писал о том, что почитать и где поправить в IB/FB", "Только будьте аккуратны с настройками".
Я у себя увеличил DefaultDbCachePages, но эта установка действует, пока режим Super, на Classic все-равно придется перейти, с нового года у меня сильно увеличится количество пользователей. А в режиме Classic получается, что больше 75 не увеличить никак этот параметр.
У меня тоже FB под Win32, но параметры называются как у setara. Версия 1.5. Как так? Есть параметр ProcessPriorityLevel, видимо, это аналог SERVER_PRIORITY_CLASS, по умолчанию 0, как я понимаю, если на этом сервере больше ничего не крутится, то можно 1 поставить?a_shats писал(а):Я не скрываю , но у мя FB под Win32
в файле конфига
DATABASE_CACHE_PAGES 512
SERVER_PRIORITY_CLASS 1
SERVER_CLIENT_MAPPING 16384
Остальное закомментировано.
Причем последнее исключительно ради шустрой работы IBExpert на этом же сервере
Потестировал я сервер.
При установке Memory usage/Adjust for best performance of: System Cache обработка выполняется примерно на 10 процентов быстрее, чем при установке Programs. Это если сервер Super, если сервер Classic, то производительность становится одинаковой. Но сам сервер Classic медленнее Super на те же 10 процентов. Тестирование я проводил в монопольном режиме, счетчик Pages/sec (который меня больше всего беспокоил с самого начала) при этом не выходил за пределы нормативных 20. Сегодня установил режим Classic, время реакции на действия пользователей сократилось, тормозов точно меньше стало. В многопользовательском режиме значение Pages/sec среднее - 26, максимум - 188. (Было среднее - 111-177, максимальное
509-2496).
При установке Memory usage/Adjust for best performance of: System Cache обработка выполняется примерно на 10 процентов быстрее, чем при установке Programs. Это если сервер Super, если сервер Classic, то производительность становится одинаковой. Но сам сервер Classic медленнее Super на те же 10 процентов. Тестирование я проводил в монопольном режиме, счетчик Pages/sec (который меня больше всего беспокоил с самого начала) при этом не выходил за пределы нормативных 20. Сегодня установил режим Classic, время реакции на действия пользователей сократилось, тормозов точно меньше стало. В многопользовательском режиме значение Pages/sec среднее - 26, максимум - 188. (Было среднее - 111-177, максимальное
509-2496).
Говорю еще раз, не смотрите на один счетчик.
http://support.microsoft.com/kb/139609/en-us
Высокое значение Pages/sec означает только что приложение активно использует память. Это может быть и нормально.
Как поискать бутылочные горлышки пишут тут:
http://support.microsoft.com/kb/146005/en-us
Может поможет еще чего-нибудь ускорить...
http://support.microsoft.com/kb/139609/en-us
Высокое значение Pages/sec означает только что приложение активно использует память. Это может быть и нормально.
Как поискать бутылочные горлышки пишут тут:
http://support.microsoft.com/kb/146005/en-us
Может поможет еще чего-нибудь ускорить...
"...high number of Memory: Pages/sec, a "normal" (average, relative to the system being monitored) or high number of Memory: Available Bytes, and a normal or small amount of Paging File: % Usage" - да, это как раз моя ситуация. Я за этот счетчик зацепился из-за того, что он явно выделялся на общем фоне. Кое-что удалось ускорить. Вроде все настройки, которые могут оказать существенное влияние на работу с памятью, перебрал. Думаю, что больше ничего не получится улучшить настройками, дальше дело в апгрейде железа.and3008 писал(а):Говорю еще раз, не смотрите на один счетчик.
http://support.microsoft.com/kb/139609/en-us
Всем спасибо за советы!
А не могли бы привести здесь список значений параметров, наиболее оптимально подходящих под Ваши задачи ?LVN писал(а):"...high number of Memory: Pages/sec, a "normal" (average, relative to the system being monitored) or high number of Memory: Available Bytes, and a normal or small amount of Paging File: % Usage" - да, это как раз моя ситуация. Я за этот счетчик зацепился из-за того, что он явно выделялся на общем фоне. Кое-что удалось ускорить. Вроде все настройки, которые могут оказать существенное влияние на работу с памятью, перебрал. Думаю, что больше ничего не получится улучшить настройками, дальше дело в апгрейде железа.
Всем спасибо за советы!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 32 гостя