Тормоза FireBird

Вопросы программирования БД, их оптимизации, резервирования и восстановления данных.

Модераторы: Trinity admin`s, Free-lance moderator`s

Аватара пользователя
a_shats
Advanced member
Сообщения: 5010
Зарегистрирован: 27 авг 2002, 10:55
Откуда: Москва
Контактная информация:

Сообщение a_shats » 19 дек 2006, 11:41

У мя сейчас на сервере висит порядка 50 сессий Yaffil - Classic Server, занимающие в общей сложности 332392 КБайт  :)
Нет, особой супер-производительностью похвастаться не могу, т.к. сервер оченно древний и слабенький (2xXeon 1,8 GHz/2x512 MB DDRI-266 ECC Reg/Mylex extremeRAID 2000, база лежит на зеркале 2х15К 18ГБ винтах - но пока и этого хватает :mrgreen:) - но и особых тормозов тоже нет :)

Аватара пользователя
a_shats
Advanced member
Сообщения: 5010
Зарегистрирован: 27 авг 2002, 10:55
Откуда: Москва
Контактная информация:

Сообщение a_shats » 19 дек 2006, 11:46

Ну, база конечно маленькая - 112 МБ, но главное - выполнение отчетов на этом сервере не напрягает ни-ко-го :)

LVN
Junior member
Сообщения: 19
Зарегистрирован: 15 ноя 2006, 12:53

Сообщение LVN » 19 дек 2006, 12:06

a_shats писал(а):Ну, база конечно маленькая - 112 МБ, но главное - выполнение отчетов на этом сервере не напрягает ни-ко-го :)
А у нас 1,4Гб  :( .
Из всего обсуждения понял я, что у FireBird-a есть одна только настройка - SuperServer (никому не нравится - отстой!) или ClassicServer (сразу все тормоза пропадают - круто!).  :)
Постараюсь все-таки на выходных померять производительность с разными настройками потщательнее.

Svi
member
Сообщения: 30
Зарегистрирован: 19 окт 2006, 13:08
Откуда: MOSCOW

Сообщение Svi » 19 дек 2006, 15:46

народ, я насколько помню(давно не общался с ФБ) есть файлик конфигурации и там есть настройки касаемо памяти, кол ва процов и тд... ?
называется вродe firebird.conf

Аватара пользователя
setar
Site Admin
Site Admin
Сообщения: 1990
Зарегистрирован: 22 авг 2002, 12:03
Откуда: St. Petersburg

Сообщение setar » 19 дек 2006, 17:49

вот какие параметры есть в 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

Итак имеем всё по умолчанию
какие соображения по оптимизации ?

LVN
Junior member
Сообщения: 19
Зарегистрирован: 15 ноя 2006, 12:53

Сообщение LVN » 20 дек 2006, 05:26

setar писал(а): Итак имеем всё по умолчанию
какие соображения по оптимизации ?
Есть даже специальная утилита, с помощью которой удобно редактировать этот файл: FbConfigManager.

Мне кажется, что a_shats знает, что тут можно поредактировать, но скрывает! Вот его слова: "я многократно писал о том, что почитать и где поправить в IB/FB", "Только будьте аккуратны с настройками".

Я у себя увеличил DefaultDbCachePages, но эта установка действует, пока режим Super, на Classic все-равно придется перейти, с нового года у меня сильно увеличится количество пользователей. А в режиме Classic получается, что больше 75 не увеличить никак этот параметр.

Аватара пользователя
a_shats
Advanced member
Сообщения: 5010
Зарегистрирован: 27 авг 2002, 10:55
Откуда: Москва
Контактная информация:

Сообщение a_shats » 20 дек 2006, 11:21

Я не скрываю :gigi: , но у мя FB под Win32 :mrgreen:

в файле конфига
DATABASE_CACHE_PAGES 512
SERVER_PRIORITY_CLASS 1
SERVER_CLIENT_MAPPING 16384

Остальное закомментировано.
Причем последнее исключительно ради шустрой работы IBExpert на этом же сервере :)

LVN
Junior member
Сообщения: 19
Зарегистрирован: 15 ноя 2006, 12:53

Сообщение LVN » 20 дек 2006, 12:32

a_shats писал(а):Я не скрываю :gigi: , но у мя FB под Win32 :mrgreen:

в файле конфига
DATABASE_CACHE_PAGES 512
SERVER_PRIORITY_CLASS 1
SERVER_CLIENT_MAPPING 16384

Остальное закомментировано.
Причем последнее исключительно ради шустрой работы IBExpert на этом же сервере :)
У меня тоже FB под Win32, но параметры называются как у setara. Версия 1.5. Как так? Есть параметр ProcessPriorityLevel, видимо, это аналог SERVER_PRIORITY_CLASS, по умолчанию 0, как я понимаю, если на этом сервере больше ничего не крутится, то можно 1 поставить?

LVN
Junior member
Сообщения: 19
Зарегистрирован: 15 ноя 2006, 12:53

Сообщение LVN » 25 дек 2006, 11:37

Потестировал я сервер.
При установке  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).

and3008
Заслуженный сетевик
Сообщения: 1109
Зарегистрирован: 03 янв 2004, 23:30
Откуда: Н.Новгород

Сообщение and3008 » 25 дек 2006, 21:59

Говорю еще раз, не смотрите на один счетчик.
http://support.microsoft.com/kb/139609/en-us

Высокое значение Pages/sec означает только что приложение активно использует память. Это может быть и нормально.

Как поискать бутылочные горлышки пишут тут:
http://support.microsoft.com/kb/146005/en-us

Может поможет еще чего-нибудь ускорить...

LVN
Junior member
Сообщения: 19
Зарегистрирован: 15 ноя 2006, 12:53

Сообщение LVN » 26 дек 2006, 05:21

and3008 писал(а):Говорю еще раз, не смотрите на один счетчик.
http://support.microsoft.com/kb/139609/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" - да, это как раз моя ситуация. Я за этот счетчик зацепился из-за того, что он явно выделялся на общем фоне. Кое-что удалось ускорить. Вроде все настройки, которые могут оказать существенное влияние на работу с памятью, перебрал. Думаю, что больше ничего не получится улучшить настройками, дальше дело в апгрейде железа.

Всем спасибо за советы!

Аватара пользователя
setar
Site Admin
Site Admin
Сообщения: 1990
Зарегистрирован: 22 авг 2002, 12:03
Откуда: St. Petersburg

Сообщение setar » 12 янв 2007, 09:55

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" - да, это как раз моя ситуация. Я за этот счетчик зацепился из-за того, что он явно выделялся на общем фоне. Кое-что удалось ускорить. Вроде все настройки, которые могут оказать существенное влияние на работу с памятью, перебрал. Думаю, что больше ничего не получится улучшить настройками, дальше дело в апгрейде железа.

Всем спасибо за советы!
А не могли бы привести здесь список значений параметров, наиболее оптимально подходящих под Ваши задачи ?

Ответить

Вернуться в «Серверы - ПО, Базы Данных и их использование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей