Забързване(тунинговане) на firebird-a.
Забързване(тунинговане) на firebird-a.
С помоща на програмистите успяхме да вдигнем скороста и бързодействието на firebird servera. Така някой операции в Атон-а като анулиране на фактура, продажба, а можеби би и анулиране на прехвърляне(не съм го пробвал още) спада 4-5 пъти времето. Прикачам тука конфигурационния файл със настройките.
DefaultDbCachePages = 32768 в момента е така настроена за по бързи и по мощни компютри.
DefaultDbCachePages = 16384 пак работи добре ама е за предпочитане на по бавни компютри с по малко рам.
П.С. DefaultDbCachePages = 32768 в момента е така настроена за по бързи и по мощни компютри.
DefaultDbCachePages = 16384 пак работи добре ама е за предпочитане на по бавни компютри с по малко рам.
Последна промяна от airking на 03-10-2008 16:07, променено общо 1 път.
Re: Забързване(тунинговане) на firebird-a.
Постижението е сериозно, затова правя темата важна с молба към всеки, който го е пробвал да си даде мнението.
Преструвай се на умен - мълчи по-често!
- mIRCata
- Admin
- Мнения: 1065
- Регистриран: 15-11-2004 15:25
- Име: инж. Мирослав Джоров
- Местоположение: Тайна майна
- Контакти:
Re: Забързване(тунинговане) на firebird-a.
Тъй като конф. файл съдържа и някой настройки типични за теб(т.е са за определена станция примерно порта за събитията), които друг може да не иска или са различни, може би е по-добре да сложим само настройките, които променихме.
Те са:
DefaultDbCachePages = 32768
TcpRemoteBufferSize = 16384
LockMemSize = 4194304
LockHashSlots = 3571
Държа да отбележа, че на последната настройка стойността 3571 може да бъде въведена само ако версията на сървъра е 2.1 нагоре. За сървърите с по-ранни версии макс. стойност е 2039 - защо е тка си пише в коментарите на файла до променливата.
Относно големината на страниците - когато правите backup/restore на базата данни най-добре е големината на страницата да отговаря на големината на файловата система. За WinXP с NTFS по подразбиране е 4К(4096).
За стойността на първата настройка - умножете числото по големината на страниците на базата данни (2,4,8 или 16К) и ще получите размера в КВ, който Firebird сървъра ще заеме като памет при връзка с базата, така че може да го намалите, ако няма достатъчно рам на сървъра. Числото най-добре да е кратно на 1024 х степен на 2-ката - 1024,2048,4096 и т.н
Друг съвет за подобряване на скоростта на моменти, е ако се използва система за backup на базата данни, то е добре самия файл да се записва на диск, отделен от този където се намира базата данни. Така се ускорява скоростта на четене и запис на архива. При по-големи бази, където обема прочетена информация е голям и се правят архиви в работно време може да облекчи пристъпите на забавяне на системата.
Те са:
DefaultDbCachePages = 32768
TcpRemoteBufferSize = 16384
LockMemSize = 4194304
LockHashSlots = 3571
Държа да отбележа, че на последната настройка стойността 3571 може да бъде въведена само ако версията на сървъра е 2.1 нагоре. За сървърите с по-ранни версии макс. стойност е 2039 - защо е тка си пише в коментарите на файла до променливата.
Относно големината на страниците - когато правите backup/restore на базата данни най-добре е големината на страницата да отговаря на големината на файловата система. За WinXP с NTFS по подразбиране е 4К(4096).
За стойността на първата настройка - умножете числото по големината на страниците на базата данни (2,4,8 или 16К) и ще получите размера в КВ, който Firebird сървъра ще заеме като памет при връзка с базата, така че може да го намалите, ако няма достатъчно рам на сървъра. Числото най-добре да е кратно на 1024 х степен на 2-ката - 1024,2048,4096 и т.н
Друг съвет за подобряване на скоростта на моменти, е ако се използва система за backup на базата данни, то е добре самия файл да се записва на диск, отделен от този където се намира базата данни. Така се ускорява скоростта на четене и запис на архива. При по-големи бази, където обема прочетена информация е голям и се правят архиви в работно време може да облекчи пристъпите на забавяне на системата.
Re: Забързване(тунинговане) на firebird-a.
Е друго си е да ме допълни програмист
-
- Мнения: 663
- Регистриран: 12-11-2004 10:48
- Име: инж. Рад Площаков
- Местоположение: Варна, България
- Контакти:
Re: Забързване(тунинговане) на firebird-a.
Може ли ламерски въпрос:
-Има ли опция да се пусне фаербърда да работри на два и повече процесора(ядра)
Защо питам - като съм наблюдавал натоварващи операции- Преизчисляване, големи справки.... (на двуядрен процесор) - едното ядро е на 100%, а другото седи на 10-ина - почти само от кърнела е заето => средната натовареност на процесора рядко качва до 60%.
-Има ли опция да се пусне фаербърда да работри на два и повече процесора(ядра)
Защо питам - като съм наблюдавал натоварващи операции- Преизчисляване, големи справки.... (на двуядрен процесор) - едното ядро е на 100%, а другото седи на 10-ина - почти само от кърнела е заето => средната натовареност на процесора рядко качва до 60%.
- mIRCata
- Admin
- Мнения: 1065
- Регистриран: 15-11-2004 15:25
- Име: инж. Мирослав Джоров
- Местоположение: Тайна майна
- Контакти:
Re: Забързване(тунинговане) на firebird-a.
Да. CpuAffinityMask. Някъде из форума съм писал и как точно се настройва. Т.е как да си сметнеш стойността, която да се напише.
Друг е въпроса колко добре се справя, защото имаше някакъв проблем с windows и неговото разпределение на задачите между процесорите/ядрата.
Потърси в нета и прочети и описанието в конфигурационния файл.
Друг е въпроса колко добре се справя, защото имаше някакъв проблем с windows и неговото разпределение на задачите между процесорите/ядрата.
Потърси в нета и прочети и описанието в конфигурационния файл.
-
- Мнения: 766
- Регистриран: 09-11-2004 19:52
- Име: Детелин Илиев
- Местоположение: Несебър
- Контакти:
Re: Забързване(тунинговане) на firebird-a.
Това последното не работи много добре, при афинити = 3 би трябвало да работи на 2-те ядра, но няма никаква разлика или поне аз не видях такава
Re: Забързване(тунинговане) на firebird-a.
А с другите по горните настройки има ли при теб някаква разлика?
-
- Мнения: 766
- Регистриран: 09-11-2004 19:52
- Име: Детелин Илиев
- Местоположение: Несебър
- Контакти:
Re: Забързване(тунинговане) на firebird-a.
Не съм пробвал още
-
- Мнения: 113
- Регистриран: 04-04-2007 10:08
Re: Забързване(тунинговане) на firebird-a.
Server:ОС Linux Ubuntu Server 9.04
CPU: Core 2 Duo 2.2Ghz
2GB RAM DDR2 800
2 x 500Gb WD в RAID 1
Tasks: 88 total, 2 running, 86 sleeping, 0 stopped, 0 zombie
Cpu(s): 6.1%us, 0.2%sy, 0.0%ni, 93.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2060212k total, 1976564k used, 83648k free, 25460k buffers
Swap: 9765496k total, 2512k used, 9762984k free, 1391296k cached
Версия на Aton 1.3.1079.948
Около 19 000 продукта.
Около 10 000 контрагента
Mинимум 5 активни users.
Това са настроките на firebird.conf
DefaultDbCachePages = 32768
TempBlockSize = 268435456
TempCacheLimit = 335544320
TcpRemoteBufferSize = 16384
LockMemSize = 33554432
LockHashSlots = 3571
Разлика в скоростта невиждам.
Къде греша и какво може още да се направи за оптимизация?
CPU: Core 2 Duo 2.2Ghz
2GB RAM DDR2 800
2 x 500Gb WD в RAID 1
Tasks: 88 total, 2 running, 86 sleeping, 0 stopped, 0 zombie
Cpu(s): 6.1%us, 0.2%sy, 0.0%ni, 93.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2060212k total, 1976564k used, 83648k free, 25460k buffers
Swap: 9765496k total, 2512k used, 9762984k free, 1391296k cached
Версия на Aton 1.3.1079.948
Около 19 000 продукта.
Около 10 000 контрагента
Mинимум 5 активни users.
Това са настроките на firebird.conf
DefaultDbCachePages = 32768
TempBlockSize = 268435456
TempCacheLimit = 335544320
TcpRemoteBufferSize = 16384
LockMemSize = 33554432
LockHashSlots = 3571
Разлика в скоростта невиждам.
Къде греша и какво може още да се направи за оптимизация?
Не ПРОБВАЙ това в къщи.
Re: Забързване(тунинговане) на firebird-a.
Classic или Super Server ползваш? С тези 2 GB потребление на RAM прилича на classic, за който тези настройки са вредни
TempBlockSize = 268435456
Това е ... неправилно. Тази настройка указва на какви "порции" се заделя RAM. Според мен е крайно непрактично да се прилагат стойности над 33554432, а при теб е почти колкото максималното позволено (възможно е да иска да си задели, но да се "въздържа" за да не прескача главното ограничение)
TempBlockSize = 268435456
Това е ... неправилно. Тази настройка указва на какви "порции" се заделя RAM. Според мен е крайно непрактично да се прилагат стойности над 33554432, а при теб е почти колкото максималното позволено (възможно е да иска да си задели, но да се "въздържа" за да не прескача главното ограничение)
Моля ви, като прочетете тема пишете по едно мнение да не ви търся по icq/телефон после ...
- mIRCata
- Admin
- Мнения: 1065
- Регистриран: 15-11-2004 15:25
- Име: инж. Мирослав Джоров
- Местоположение: Тайна майна
- Контакти:
Re: Забързване(тунинговане) на firebird-a.
Аз съм го подвел. Бях останал с впечатление, че тази опция е за начално заделяне на памет за сортиране за цялата база, а не за отделните сортировки.stoar08 написа:Classic или Super Server ползваш? С тези 2 GB потребление на RAM прилича на classic, за който тези настройки са вредни
TempBlockSize = 268435456
Това е ... неправилно. Тази настройка указва на какви "порции" се заделя RAM.
За всички, които са правели промени по настройките на Firebird-а при конвертирането на базите сложете тази настройка на 16777216 или 33554432, а не както беше описано на 256МВ.
-
- Мнения: 113
- Регистриран: 04-04-2007 10:08
Re: Забързване(тунинговане) на firebird-a.
Със Super съм.stoar08 написа:Classic или Super Server ползваш? С тези 2 GB потребление на RAM прилича на classic, за който тези настройки са вредни
TempBlockSize = 268435456
Това е ... неправилно. Тази настройка указва на какви "порции" се заделя RAM. Според мен е крайно непрактично да се прилагат стойности над 33554432, а при теб е почти колкото максималното позволено (възможно е да иска да си задели, но да се "въздържа" за да не прескача главното ограничение)
А каква е разликата?
Не ПРОБВАЙ това в къщи.
- mIRCata
- Admin
- Мнения: 1065
- Регистриран: 15-11-2004 15:25
- Име: инж. Мирослав Джоров
- Местоположение: Тайна майна
- Контакти:
Re: Забързване(тунинговане) на firebird-a.
Основно е в начина на работа с паметта и процесорите.
Superserver кешира дадения брой страници за една база, независимо от конекциите към нея. Classic-a го прави за всяка една конекция. Атон прави 6 конекции към базата. Така ако остане с голямо число страници ще ти трябват огромни количества RAM за повече станции.
Но пък Classic-a може да работи с повече от 1 ядро на процесора, докато super не.
Superserver кешира дадения брой страници за една база, независимо от конекциите към нея. Classic-a го прави за всяка една конекция. Атон прави 6 конекции към базата. Така ако остане с голямо число страници ще ти трябват огромни количества RAM за повече станции.
Но пък Classic-a може да работи с повече от 1 ядро на процесора, докато super не.
-
- Мнения: 113
- Регистриран: 04-04-2007 10:08
Re: Забързване(тунинговане) на firebird-a.
Значи съм с правилния Firebird. Или греша?
ПС: Промених стойността на 16777216 и ..... нищо по различно.
По-късно ще пробвам с по-високата сойност.
ПС: Промених стойността на 16777216 и ..... нищо по различно.
По-късно ще пробвам с по-високата сойност.
Не ПРОБВАЙ това в къщи.
Re: Забързване(тунинговане) на firebird-a.
1 Правилно, за повече от 1-2 потребителя classic server + aton е лоша комбинацияradoslav.radulov написа:Значи съм с правилния Firebird. Или греша?
ПС: Промених стойността на 16777216 и ..... нищо по различно.
По-късно ще пробвам с по-високата сойност.
2 Няма нужда от по-високи стойности. Ако сървъра прави още 50 неща може да сложиш по-ниска и да стои по-малко резервиран, но неизползван RAM.
С какви размери е базата? Правен ли е backup/restore скоро?
Може да вдигнеш sweep interval. Аз лично съм го сложил според броя транзакции на ден (горе-долу по 1 sweep дневно).
Моля ви, като прочетете тема пишете по едно мнение да не ви търся по icq/телефон после ...
-
- Мнения: 113
- Регистриран: 04-04-2007 10:08
Re: Забързване(тунинговане) на firebird-a.
Сървъра е единствено за Атон.
Базата е 768mb.
Bakup/restore е правен вчера след рестора смъкна 50мб.
Базата е 768mb.
Bakup/restore е правен вчера след рестора смъкна 50мб.
Не ПРОБВАЙ това в къщи.
-
- Мнения: 113
- Регистриран: 04-04-2007 10:08
Re: Забързване(тунинговане) на firebird-a.
Къде да го видя този sweep interval ?stoar08 написа: Може да вдигнеш sweep interval. Аз лично съм го сложил според броя транзакции на ден (горе-долу по 1 sweep дневно).
През QL Manager for InterBase & Firebird ми дава следната информация за базата:
Всичко ОК ли е ?
- Прикачени файлове
-
- general.jpg (34.64 KиБ) Видяна 124689 пъти
-
- users.jpg (37.29 KиБ) Видяна 124713 пъти
Не ПРОБВАЙ това в къщи.
Re: Забързване(тунинговане) на firebird-a.
Изглежда правилно Според мен sweep interval можеш спокойно да го сложиш на около 100 000. Вероятно ще ускори растежа на базата (по-рядко ще се 'чисти'), но ако правиш backup/restore на 2-3 седмици веднъж не би трябвало да е проблем.
Друго възможно решение (за под linux) е да изключиш "forced writes" и да промениш "maxunflushed*" параметрите (например на 30 секунди). Под windows е опасно, но за linux би трябвало да да се случи следното :
1 Записваш голямо количество промени
2 те остават в RAM
3 след >= 30 секунди приключва транзакция, която предизвиква физическия запис в/у твърдия диск.
Със сигурност ще даде отражение в/у оперативността (за справки е малко вероятно да помогне).
Естествено, рискуваш да спре ток и да загубиш дадения интервал от време (или даденото количество записи), но е възможно да си струва риска ...
Друго възможно решение (за под linux) е да изключиш "forced writes" и да промениш "maxunflushed*" параметрите (например на 30 секунди). Под windows е опасно, но за linux би трябвало да да се случи следното :
1 Записваш голямо количество промени
2 те остават в RAM
3 след >= 30 секунди приключва транзакция, която предизвиква физическия запис в/у твърдия диск.
Със сигурност ще даде отражение в/у оперативността (за справки е малко вероятно да помогне).
Естествено, рискуваш да спре ток и да загубиш дадения интервал от време (или даденото количество записи), но е възможно да си струва риска ...
Моля ви, като прочетете тема пишете по едно мнение да не ви търся по icq/телефон после ...
-
- Мнения: 113
- Регистриран: 04-04-2007 10:08
Re: Забързване(тунинговане) на firebird-a.
Благодаря ти за компетентните отговори.
Ето последните настройки на firebird.conf
Sweep Interval = 10000
Force Writes = off
DefaultDbCachePages = 65536
TempBlockSize = 33554432
TempCacheLimit = 335544320
MaxUnflushedWriteTime = 30
TcpRemoteBufferSize = 16384
LockMemSize = 33554432
LockHashSlots = 3571
Да правя ли някакви промени ?
Ето последните настройки на firebird.conf
Sweep Interval = 10000
Force Writes = off
DefaultDbCachePages = 65536
TempBlockSize = 33554432
TempCacheLimit = 335544320
MaxUnflushedWriteTime = 30
TcpRemoteBufferSize = 16384
LockMemSize = 33554432
LockHashSlots = 3571
Да правя ли някакви промени ?
Не ПРОБВАЙ това в къщи.
Re: Забързване(тунинговане) на firebird-a.
По-скоро по-високи стойности. С gstat можеш да провериш "next transaction" в началото и края на деня. Спокойно можеш да сложиш число за sweep на 1-2-3 дни (с нарастване на базата ще става все по-тежък=> колкото по-рядко - толкова по-добре).radoslav.radulov написа: Sweep Interval = 10000
И ... излишно е да казвам "редовен архив" нали ?
Моля ви, като прочетете тема пишете по едно мнение да не ви търся по icq/телефон после ...
-
- Мнения: 113
- Регистриран: 04-04-2007 10:08
Re: Забързване(тунинговане) на firebird-a.
Не ПРОБВАЙ това в къщи.
-
- Мнения: 113
- Регистриран: 04-04-2007 10:08
Re: Забързване(тунинговане) на firebird-a.
Статистика към момента:
- Прикачени файлове
-
- stats.jpg (27.73 KиБ) Видяна 124613 пъти
Последна промяна от radoslav.radulov на 08-06-2009 18:06, променено общо 3 пъти.
Не ПРОБВАЙ това в къщи.
-
- Мнения: 113
- Регистриран: 04-04-2007 10:08
Re: Забързване(тунинговане) на firebird-a.
13 740 реда в лога с :
Database:
I/O error for file "/database/Aton.fdb"
Error while trying to write to file
Invalid argument
На какво се дължи и какво да направя.
ПС: Без от сорта "Изгасили сте сървъра принудително или не както трябва" имам 4,5kw UPS.
Няма как да стане. Не е пипан.
Нова грешка се появи: INET/inet_error: read errno = 104
Database:
I/O error for file "/database/Aton.fdb"
Error while trying to write to file
Invalid argument
На какво се дължи и какво да направя.
ПС: Без от сорта "Изгасили сте сървъра принудително или не както трябва" имам 4,5kw UPS.
Няма как да стане. Не е пипан.
Нова грешка се появи: INET/inet_error: read errno = 104
Последна промяна от radoslav.radulov на 09-06-2009 07:13, променено общо 1 път.
Не ПРОБВАЙ това в къщи.
Re: Забързване(тунинговане) на firebird-a.
Опитай да върнеш forced writes ...
Моля ви, като прочетете тема пишете по едно мнение да не ви търся по icq/телефон после ...
- mIRCata
- Admin
- Мнения: 1065
- Регистриран: 15-11-2004 15:25
- Име: инж. Мирослав Джоров
- Местоположение: Тайна майна
- Контакти:
Re: Забързване(тунинговане) на firebird-a.
Ето какво отговарят от Firebird за това:radoslav.radulov написа: Нова грешка се появи: INET/inet_error: read errno = 104
errno=104: Connection reset by peer
This is not firebird error. Firebird just reports about lost connections with clients (i.e. when client did not disconnect, but OS detected lost TCP connection). This may happen due to LAN problems or (very often) due to client plugged of computer without normal shutdown.
-
- Мнения: 113
- Регистриран: 04-04-2007 10:08
Re: Забързване(тунинговане) на firebird-a.
Не става. Пак генерира същата грешка.stoar08 написа:Опитай да върнеш forced writes ...
По 2-3 грешки в 1 сек.
Не ПРОБВАЙ това в къщи.
Re: Забързване(тунинговане) на firebird-a.
Дори след stop/start на сървъра?
Принципно, forced writes е "синхронен режим" на запис, което ще рече, че запис Б е длъжен да изчака гаранция за приключването на запис А (от където идва и ускорението - в асинхонен режим не е необходимо да се изчаква flush на cache). Не съм го ползвал и не знам дали интервала не му идва "къс" . Ако не си усетил подобрение в производителността е по-добре си ги включиш, в противен случай - можеш да увеличиш интервала на 2-3 минути и да наблюдаваш дали се променя положението.
Ако грешката се е появила след "оптимизациите" - опитай да backup/restore след като включиш forced writes и рестартираш firebird процеса ...
Заобиколен начин да го "забързаш", който ще даде по-слаби резултати(не твърдя, че ще се усетят ...), е да създадеш ext2 дял, на който да преместиш временните файлове на firebird. Така, ако случайно му окъси RAM-а по някаква причина, временните файлове ще са на по-бърза файлова система. Не съм сигурен дали GTT също не се пазят в temp директориите ...
Принципно, forced writes е "синхронен режим" на запис, което ще рече, че запис Б е длъжен да изчака гаранция за приключването на запис А (от където идва и ускорението - в асинхонен режим не е необходимо да се изчаква flush на cache). Не съм го ползвал и не знам дали интервала не му идва "къс" . Ако не си усетил подобрение в производителността е по-добре си ги включиш, в противен случай - можеш да увеличиш интервала на 2-3 минути и да наблюдаваш дали се променя положението.
Ако грешката се е появила след "оптимизациите" - опитай да backup/restore след като включиш forced writes и рестартираш firebird процеса ...
Заобиколен начин да го "забързаш", който ще даде по-слаби резултати(не твърдя, че ще се усетят ...), е да създадеш ext2 дял, на който да преместиш временните файлове на firebird. Така, ако случайно му окъси RAM-а по някаква причина, временните файлове ще са на по-бърза файлова система. Не съм сигурен дали GTT също не се пазят в temp директориите ...
Моля ви, като прочетете тема пишете по едно мнение да не ви търся по icq/телефон после ...
-
- Мнения: 113
- Регистриран: 04-04-2007 10:08
Re: Забързване(тунинговане) на firebird-a.
Вчера правих Backup/Restore сутринта пуснах и Forced Write през IBExpret-a.
Няма промяна според хората които работят активно с Атон.
I/O .... грешката продължава да пълни лога.
Няма промяна според хората които работят активно с Атон.
I/O .... грешката продължава да пълни лога.
Не ПРОБВАЙ това в къщи.
Re: Забързване(тунинговане) на firebird-a.
Изключи ли
след като върна forced writes? Те са локални за базата, но firebird.conf има по-глобален характер ...MaxUnflushedWriteTime = 30
Моля ви, като прочетете тема пишете по едно мнение да не ви търся по icq/телефон после ...