Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5      [все]
 Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Что работает на данный момент:
Обычный компьютер i7 8 ядер 3.4ГГц / 16 Гб ОЗУ / БД на быстром SSD / Win7
БД (Firebird 2.5.5 classic) размером 55 Гб, 100-150 коннектов, 20-40 Мб памяти на коннект

Какие показатели при работе:
Занятая память: 5-8Гб
Обычная нагрузка процессоров (суммарная): 10-20%
Пиковая нагрузка процессоров (длится 3-4 часа в день непрерывно, примерно через 1 час после начала работы с БД при длительности рабочего дня 12 часов): 40-80% - это меня больше всего напрягает
Нагрузка на HDD и LAN - минимальная: HDD в пике 20 МБ/с, обычно 0-4 МБ/с; LAN в пике 40 МБит/с, обычно 2-10 МБит/с.
БД каждую ночь бэкапится\ресторится на старое место. Перед этим делается четырехкратная проверка (начиная с DDL, заканчивая данными) на восстановимость; рестор идет в другое место, и если все хорошо, то рабочая база заменяется и т.п. - в общем не суть. Т.е. в итоге: коннектов ночью к БД нет, с утра БД всегда без мусора. За рабочий день происходит около 300 тыс. транзакций.

В итоге видимое узкое место - это процессор.

Как это сказывается:
При пиковой нагрузке, когда около 60-80 операторов создают новые заявки (1 заявка - это INSERT по 20-100 записей в 5-10 таблиц огромного размера + привязанная в этому бизнес-логика на 15-20 триггеров и около 20-30 ХП, меняющих еще 10-15 таблиц) и эта заявка сохраняется (в толстом клиенте, но вся бизнес-логика выполняется на стороне сервера) до 5-7 секунд. Это много. Считаю нормой - максимум 2 секунды.
Кроме этого у пользователей есть достаточно сложные отчеты, которые могут формироваться до 1-2 минут.

Хотелось бы все это ускорить. Поскольку процессор на обычном бытовом компьютере апгредить уже нет смысла, то пора переходить на серверное железо (не исключая оптимизации DDL и запросов). С серверным железом практической работы не имел.
Поэтому прошу совета по следующим вопросам:
1) Даст ли ощутимый прирост производительности переход на процессоры Xeon Gen9 или Gen10 Silver c 16 ядрами но частотой 2.1-2.4ГГц (вместо i7 8 ядер 3.4ГГц) или же требуется увеличить кол-во ядер при сохранении примерно той же частоты что у i7 3-4 ГГц? На Gen10 цена сильно кусается, хотелось бы что-то поэкономичней.
2) Насколько сильно влияет размер кэша процессора на производительность при работе с БД Firebird?
3) Даст ли ощутимый прирост производительности переход FB с 2.5.5 на 3.х? Если да, то выбирать SuperServer?
4) Влияет ли на производительность то, что сейчас сервер БД работает под Windows7, а не под нормальной серверной ОС? Больше никаких функций кроме сервера БД этот компьютер не выполняет.
5) Будет ли какой-то эффект по производительности от перевода ОС сервера с Win на Linux?
14 мар 19, 11:00    [21832178]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8347
Даниил
Нагрузка на HDD и LAN - минимальная: HDD в пике 20 МБ/с, обычно 0-4 МБ/с; LAN в пике 40 МБит/с, обычно 2-10 МБит/с.
не смотри на мегабайты смотри на иопсы и очередь.
Даниил
БД каждую ночь бэкапится\ресторится на старое место.
Баловство, заменить на раз месяц. Мы вообще делаем примерно раз в год, приурочивая к смене версии самого фб.
Даниил
В итоге видимое узкое место - это процессор.
терзают меня на сей счет смутные сомнения.

Даниил
Занятая память: 5-8Гб
Даниил
БД (Firebird 2.5.5 classic) размером 55 Гб, 100-150 коннектов
нестыковка какая-то.

Даниил
1) Даст ли ощутимый прирост производительности переход на процессоры Xeon Gen9 или Gen10 Silver c 16 ядрами но частотой 2.1-2.4ГГц (вместо i7 8 ядер 3.4ГГц) или же требуется увеличить кол-во ядер при сохранении примерно той же частоты что у i7 3-4 ГГц? На Gen10 цена сильно кусается, хотелось бы что-то поэкономичней.
вряд ли.
Даниил
2) Насколько сильно влияет размер кэша процессора на производительность при работе с БД Firebird?
меньше чем дисковые иопсы и нехватка ОЗУ.
Даниил
3) Даст ли ощутимый прирост производительности переход FB с 2.5.5 на 3.х? Если да, то выбирать SuperServer?
Если запрограммировать хорошо прикладную логику то, да , влияет весьма положительно. Нагрузку держит лучше.
Даниил
4) Влияет ли на производительность то, что сейчас сервер БД работает под Windows7, а не под нормальной серверной ОС? Больше никаких функций кроме сервера БД этот компьютер не выполняет.
скорее всего пох, хотя мне судить трудно сервер на винде для меня скорее экзотика.
Даниил
5) Будет ли какой-то эффект по производительности от перевода ОС сервера с Win на Linux?
на линуксе фб работает вполне себе отлично.


Я бы начал с внятных замеров перфмоном дисковой активности и расхода ОЗУ, памяти на первый взгляд мало очень. Каждое утро разогрев файлового кэша заново, выделение места под новые странички тоже заново. надо ли каждый раз подменят базу ? Как по мне так свипа вполне достаточно (проверить на наличие зависших транзакций предварительно). На линукс стОит рыпаться, только если умеете с ним работать. Как по мне так линукс да, приятней в работе.
14 мар 19, 11:28    [21832219]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Любезный
Member

Откуда:
Сообщений: 597
автор
БД каждую ночь бэкапится\ресторится на старое место.

Не понял... База затирается при восстановлении???
14 мар 19, 11:32    [21832231]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1642
Даниил,

> не исключая оптимизации DDL и запросов
вот с этого бы и начинали...
и как выше сказали - помониторьте сисьтему, чтоб не получилось, что решал проблему, которой нет
14 мар 19, 11:46    [21832266]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Даниил
БД каждую ночь бэкапится\ресторится на старое место. Перед этим делается четырехкратная проверка (начиная с DDL, заканчивая данными) на восстановимость; рестор идет в другое место, и если все хорошо, то рабочая база заменяется и т.п. - в общем не суть. Т.е. в итоге: коннектов ночью к БД нет, с утра БД всегда без мусора. За рабочий день происходит около 300 тыс. транзакций.


Вы фигнёй там страдаете. Нормально спроектированная система не нуждается в постоянном b/r.
С транзакциями надо работать правильно. Для транзакций которые оборвались по Rollback есть sweep.

Даниил
1) Даст ли ощутимый прирост производительности переход на процессоры Xeon Gen9 или Gen10 Silver c 16 ядрами но частотой 2.1-2.4ГГц (вместо i7 8 ядер 3.4ГГц) или же требуется увеличить кол-во ядер при сохранении примерно той же частоты что у i7 3-4 ГГц? На Gen10 цена сильно кусается, хотелось бы что-то поэкономичней.


увеличение количества ядер даст прирост, если только ваши 100-150 коннектов реально активны, а не просто ожидают

Даниил
2) Насколько сильно влияет размер кэша процессора на производительность при работе с БД Firebird?


не думаю что сильно

Даниил
3) Даст ли ощутимый прирост производительности переход FB с 2.5.5 на 3.х? Если да, то выбирать SuperServer?


Скорее всего даст. Выбирать SS. Но только не стоит ожидать, что достаточно сделать b/r и всё будет в ажуре.
Там дело не только в общем кэше.
Sweep в 3.0 намного более щадящий.
Фоновая сборка мусора в SS позволяет убрать то, что в классике не убирается в принципе (удалённые записи которые никогда не читаются).
Есть много нового в SQL/PSQL которое позволит переписать старый код и значительно ускорить/упростить некоторые вещи, но этим надо заниматься отдельно и долго.

Даниил
4) Влияет ли на производительность то, что сейчас сервер БД работает под Windows7, а не под нормальной серверной ОС? Больше никаких функций кроме сервера БД этот компьютер не выполняет.


если ты сравниваешь Windows 7 и всякие Windows Server xxxx, то влияет отчасти. Просто в десктопных осях по умолчанию приоритет отдаётся настольным приложениям, а не службам, но это можно изменить. Ну и плюс по умолчанию в десктопных ОСях много чего лишнего включено. В серверные обычно компоненты ОСи устанавливаются более избирательно под задачу.

Даниил
5) Будет ли какой-то эффект по производительности от перевода ОС сервера с Win на Linux?


Не факт. Всё зависит от радиуса кривизны рук и знания конкретного дистрибутива Linux.
14 мар 19, 12:02    [21832298]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 598
Даниил
Перед этим делается четырехкратная проверка (начиная с DDL, заканчивая данными) на восстановимость; рестор идет в другое место, и если все хорошо, то рабочая база заменяется и т.п. - в общем не суть. Т.е. в итоге: коннектов ночью к БД нет, с утра БД всегда без мусора. За рабочий день происходит около 300 тыс. транзакций.


Первое предложение не понял совсем. Единственный способ проверить восстановимость бакапа - выполнить контрольный рестор. Выполнять эту процедуру еженощно - это комильфо это даёт уверенность в завтрашнем дне и обеспечивает своевременную диагностику фатальных проблем. А вот заменять основную базу результатом - уже излишество.

Даниил
(1 заявка - это INSERT по 20-100 записей в 5-10 таблиц огромного размера + привязанная в этому бизнес-логика на 15-20 триггеров и около 20-30 ХП, меняющих еще 10-15 таблиц) и эта заявка сохраняется (в толстом клиенте, но вся бизнес-логика выполняется на стороне сервера) до 5-7 секунд.


А на этих "ещё 15-20 таблиц" свои триггера, которые в своём теле, пусть даже при конкретных значениях данных при вставке заявки не отрабатывающем по веткам if-ов, содержат упоминания других объектов, на которых, в свою очередь... В итоге в особо тяжёлом случае по каждому чиху на препаре проверяются права пользователя на 90% объектов в базе, что не так чтоб смертельно затратно, но и не дёшево. Насчёт разницы в стоимости этого дела в 2.х и 3.х я не в курсе. Я не утверждаю, что структура и бизнес логика спроектированы через... мнэээ..., но подумать в этом направлении стоит. По крайней мере для начала сопоставить время препаре и выполнения этой внутрисерверной колбасы при вставке заявки.

Если проблема таки в выполнении, надо

а) Проверить селективность индексов и характер их заполнения, нет ли имеющих явный пик на паре-тройке значений. Даже инсёрт приводит к перестройке индексов, в основе чего лежит сортировка, которая при большом объёме дубликатов нещадно тормозит. Возможно, от некоторых из них стоит отказаться.
бе) Определить узкие места в серверном коде, сначала на уровне объектов (триггера-процедуры), затем на уровне запросов внутри подозрительных и привести в чувство индексы и планы этих запросов.
ве) Проанализировать конфиг FB на предмет соответствия задачам. Кстати, особо "удачные" решения в конфигурации оси тоже случаются. С файловым кешем, например.

И вот когда это всё не поможет, можно начинать думать о железе. Я так думаю (С).
14 мар 19, 14:15    [21832579]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8347
Старый плюшевый мишка
Насчёт разницы в стоимости этого дела в 2.х и 3.х я не в курсе.
Была разница, самолично наступал на эти грабли. В версии 3.0.5 исправлено.

Старый плюшевый мишка
И вот когда это всё не поможет, можно начинать думать о железе.
У меня в десктопе больше памяти, у тут вполне себе серверок. Добить планками памяти сколько способна вытянуть платформа будет явно не лишним. Таки да, от вдумчивого программирования эффект будет куда веселей.
14 мар 19, 14:51    [21832657]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Ivan_Pisarevsky,

Смотрел PerfMon'ом:

Обращения к диску/с
Среднее: 85000
Максимальное: 412000

Средняя длина очереди диска
Среднее: 0.051
Максимальное: 0.443

% загруженности процессора
Минимум: 6.4
Среднее: 46
Максимальное: 100

К сообщению приложен файл. Размер - 128Kb
14 мар 19, 15:12    [21832693]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Определённо надо апгредить процессор в черепе разработчика базы.

Posted via ActualForum NNTP Server 1.5

14 мар 19, 15:26    [21832716]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Старый плюшевый мишка
Первое предложение не понял совсем. Единственный способ проверить восстановимость бакапа - выполнить контрольный рестор. Выполнять эту процедуру еженощно - это комильфо это даёт уверенность в завтрашнем дне и обеспечивает своевременную диагностику фатальных проблем. А вот заменять основную базу результатом - уже излишество.

Возможно, я не совсем понятно выразился. Поскольку БД большая и в случае каких-либо проблем с ней для экономии времени сначала делается бэкап без данных. Если все хорошо, то восстановление (без данных). Если на первых двух этапах все прошло хорошо, то то же самое повторяем уже с данными. Если на каком-либо этапе что-то пошло не так - отказываемся от замены рабочей БД. Если на всех 4 этапах все хорошо, то подменяем рабочую БД (предварительно ее скопировав на всякий случай просто как обычный файл) на последнюю отресторенную БД (таким образом ежедневно проверяется БД и чистится мусор). Про такой способ где-то когда-то прочитал (возможно на ibase.ru), сделал и не трогаю уже много лет. Уже более 10 лет ни одной проблемы зафиксировано не было.


Старый плюшевый мишка
Если проблема таки в выполнении, надо

а) Проверить селективность индексов и характер их заполнения, нет ли имеющих явный пик на паре-тройке значений. Даже инсёрт приводит к перестройке индексов, в основе чего лежит сортировка, которая при большом объёме дубликатов нещадно тормозит. Возможно, от некоторых из них стоит отказаться.
бе) Определить узкие места в серверном коде, сначала на уровне объектов (триггера-процедуры), затем на уровне запросов внутри подозрительных и привести в чувство индексы и планы этих запросов.
ве) Проанализировать конфиг FB на предмет соответствия задачам. Кстати, особо "удачные" решения в конфигурации оси тоже случаются. С файловым кешем, например.

И вот когда это всё не поможет, можно начинать думать о железе. Я так думаю (С).
Про оптимизацию понял и периодически анализом долгих запросов (правда, в основном тех, которые используются в отчетах) занимаюсь.
У меня превышение загрузки процессора происходит при интенсивной работе. Если работают 20-40 пользователей, то те же самые заказы "вставляются" за время менее 2 секунд (отслеживаю по логам) и загрузка процессора при этом небольшая.
14 мар 19, 16:04    [21832768]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

а чо про конфиг никто не спрашивает?
или я пропустил?

Posted via ActualForum NNTP Server 1.5

14 мар 19, 17:29    [21832878]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Мимопроходящий,

автор
#RootDirectory =
#DatabaseAccess = Full
#ExternalFileAccess = None
#UdfAccess = Restrict UDF
#TempDirectories =
#LegacyHash = 1
#Authentication = native
#AuditTraceConfigFile =
#MaxUserTraceLogSize = 10
DefaultDbCachePages = 384
#DatabaseGrowthIncrement = 134217728
#FileSystemCacheThreshold = 65536
#FileSystemCacheSize = 0
#RemoteFileOpenAbility = 0
TempBlockSize = 2048576
TempCacheLimit = 77108864
#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 = 7048576
#LockGrantOrder = 1
#LockAcquireSpins = 0
LockHashSlots = 30011
#EventMemSize = 65536
#CpuAffinityMask = 1
#UsePriorityScheduler = 1
#PrioritySwitchDelay = 100
#PriorityBoost = 5
#GCPolicy = combined
#GuardianOption = 1
#ProcessPriorityLevel = 0
#IpcName = FIREBIRD
#RemotePipeName = interbas
#Redirection = 0
14 мар 19, 18:09    [21832910]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Dimitry Sibiryakov
Определённо надо апгредить процессор в черепе разработчика базы.
Разработчик - это я и есть.
Кроме оптимизации DDL и запросов с клиентов где по вашему мнению у меня прям ужас ужасный?
Большой объем БД при малом расходе оперативы можно объяснить тем, что значительную часть БД занимают несколько таблиц с большим количеством записей, в которых блобы по 2-3 Мб. Я принял решение не хранить их вне БД, поскольку доступ к ним (точнее к файлам в этих блобах) у меня должен регулироваться правами пользователя. А надежный способ делать это на отдельной от БД файлопомойке, куда необходимо будет давать доступ с каждого клиентского компьютера вне зависимости от операционки, залогиненного пользователя и т.п. не придумал.
14 мар 19, 18:17    [21832914]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8347
Даниил
Обращения к диску/с
Среднее: 85000
Максимальное: 412000
не кисло так, однако.

давай порознь, отдельно чтение, отдельно запись.

классику нужно чтобы в файловом кэше была активная часть БД, ему кое-как удалось закешировать 9 гиг из 55 гигов базы, есть подозрение, что этого может быть мало.

что там в хидере базы? gstat -h

DefaultDbCachePages = 384
Как-то не очень много, я бы поставил от тысячи до двух.
14 мар 19, 18:21    [21832921]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Даниил
Кроме оптимизации DDL и запросов с клиентов где по вашему мнению у меня прям ужас ужасный?

1. Неспособность посмотреть и проанализировать статистку БД.
2. Неспособность выяснить чем занят процессор когда он занят.

Отсюда вангуются:

1. Кривое управление транзакциями.
2. Пложение версий записей сверх необходимости.

Posted via ActualForum NNTP Server 1.5

14 мар 19, 18:28    [21832926]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Ivan_Pisarevsky
что там в хидере базы? gstat -h

автор
Database "e:\db\db.fdb"
Database header page information:
Flags 0
Checksum 12345
Generation 321901
Page size 16384
ODS version 11.2
Oldest transaction 319361
Oldest active 319362
Oldest snapshot 319362
Next transaction 319470
Bumped transaction 1
Sequence number 0
Next attachment ID 2423
Implementation ID 26
Shadow count 1
Page buffers 0
Next header page 0
Database dialect 3
Creation date Mar 13, 2019 22:49:37
14 мар 19, 19:16    [21832968]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Даниил
на последнюю отресторенную БД (таким образом ежедневно проверяется БД и чистится мусор)

ага. делать так можно, но особого смысла нет, и кто так делает, обычно не может дать этому вменяемого объяснения.
Особенно про "чистится мусор". Мусор правда есть? Почему он накапливается? не проще gfix -sweep по расписанию запускать?
Даниил
Про такой способ где-то когда-то прочитал

это не способ. База 55 гиг - не такая уж большая. Вот если бы она была 300-400 гиг, то тогда этот "способ" вам бы пришлось выкинуть.
Даниил
Database "e:\db\db.fdb"

как я понимаю, в базе sweep interval 20000, так что срабатывания автосвипа вполне возможны.

Ну и про конфиг - зачем приводить дефолтные (закомментированные) параметры? Лениво было их вырезать?
DefaultDbCachePages = 384
маловато как-то.
14 мар 19, 19:36    [21832980]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

kdv
как я понимаю, в базе sweep interval 20000, так что срабатывания автосвипа вполне возможны.

С какой версии автосвип начал протоколироваться в firebird.log?

Posted via ActualForum NNTP Server 1.5

14 мар 19, 19:42    [21832981]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Dimitry Sibiryakov,

не помню, но в 2.5.8 уже есть. Прикол в другом - у вновь созданной БД дефолтный свип интервал по gstat -h не выводится, то есть, его как бы нет, на самом деле он есть и равен тем самым 20000. Как пресловутый суслик.
14 мар 19, 20:37    [21833032]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
DmSer
Member

Откуда: Пенза
Сообщений: 871
[quote автор]
Нагрузка на HDD и LAN - минимальная: HDD в пике 20 МБ/с, обычно 0-4 МБ/с; LAN в пике 40 МБит/с, обычно 2-10 МБит/с./quote]

Откуда такая нагрузка на SSD, если вся база закеширована в памяти? Случайно нету длинных транзакций RW, мешающих сборке мусора в сочетании с часто срабатывающим sweep?
14 мар 19, 22:21    [21833083]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

kdv
Прикол в другом - у вновь созданной БД дефолтный свип интервал по gstat -h не выводится

И даже не в этом прикол, а в том, что ты априори утверждаешь, что он запускается, хотя не
видно ни свидетельств этого, ни даже предпосылок.

Posted via ActualForum NNTP Server 1.5

14 мар 19, 23:11    [21833110]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1642
DmSer
Откуда такая нагрузка на SSD, если вся база закеширована в памяти?

откуда она там возьмется
kdv
DefaultDbCachePages = 384
маловато как-то.
15 мар 19, 06:37    [21833212]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Ivan_Pisarevsky
Даниил
Обращения к диску/с
Среднее: 85000
Максимальное: 412000
не кисло так, однако.

давай порознь, отдельно чтение, отдельно запись.


Обращений чтения к диску/с
Среднее: 1561
Максимальное: 17999

Обращений записи на диск/с
Среднее: 72456
Максимальное: 796978
15 мар 19, 07:50    [21833229]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
kdv
как я понимаю, в базе sweep interval 20000, так что срабатывания автосвипа вполне возможны.

DefaultDbCachePages = 384
маловато как-то.


Я не полностью выложил текст gstat. Sweep у меня отключен:

автор
Variable header data:
Sweep interval: 0


Про рекомендацию от двух человек по DefaultDbCachePages понял. Почитаю более подробнее и в начале следующей недели увеличу.

kdv
Ну и про конфиг - зачем приводить дефолтные (закомментированные) параметры? Лениво было их вырезать?
Посчитал, что так будет понятнее, что большинство настроек - по дефолту.
15 мар 19, 08:09    [21833241]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Типовое добавление заказа, выполняется в одной ХП:

81 record(s) was(were) updated in TABLE1
3 record(s) was(were) updated in TABLE2

7 record(s) was(were) deleted from TABLE3

81 record(s) was(were) inserted into TABLE4
1 record(s) was(were) inserted into TABLE5
25 record(s) was(were) inserted into TABLE6
3 record(s) was(were) inserted into TABLE7
7 record(s) was(were) inserted into TABLE8
81 record(s) was(were) inserted into TABLE9

------ Performance info ------
Prepare time = 0ms
Execute time = 6s 178ms
Current memory = 13 368 928
Max memory = 15 332 664
Memory buffers = 384
Reads from disk to cache = 97 067
Writes from cache to disk = 1 248
Fetches from cache = 116 444


Query Time
------------------------------------------------
Prepare : 0,00 ms
Execute : 6 178,00 ms
Avg fetch time: 0,00 ms

Memory
------------------------------------------------
Current: 13 368 928
Max : 15 332 664
Buffers: 384

Operations
------------------------------------------------
Read : 97 067
Writes : 1 248
Fetches: 116 444
Marks : 2 603



Enchanced Info:
+-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+
| Table Name | Records | Indexed | Non-Indexed | Updates | Deletes | Inserts | Backouts | Purges | Expunges |
| | Total | reads | reads | | | | | | |
+-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+
|TABLE_READ1 | 0 | 117 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|TABLE7 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 |
|TABLE8 | 0 | 0 | 0 | 0 | 0 | 7 | 0 | 0 | 0 |
|TABLE_READ2 | 0 | 188 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|TABLE_READ3 | 0 | 7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|TABLE_READ4 | 0 | 52 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|TABLE_READ5 | 0 | 31 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|TABLE_READ6 | 0 | 71 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|TABLE1 | 0 | 1194 | 0 | 81 | 0 | 0 | 0 | 0 | 0 |
|TABLE9 | 0 | 0 | 0 | 0 | 0 | 81 | 0 | 0 | 0 |
|TABLE3 | 0 | 21 | 0 | 0 | 7 | 0 | 0 | 0 | 0 |
|TABLE2 | 0 | 12 | 0 | 3 | 0 | 0 | 0 | 0 | 0 |
|TABLE_READ7 | 0 | 85 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|TABLE_READ8 | 0 | 198 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|TABLE4 | 0 | 1820 | 0 | 0 | 0 | 81 | 0 | 0 | 0 |
|TABLE6 | 0 | 25 | 0 | 0 | 0 | 25 | 0 | 0 | 0 |
|TABLE5 | 0 | 37 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
+-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+
15 мар 19, 08:33    [21833255]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Даниил,

ужас!!! Если реально добавление одного заказа занимает 6 секунд всю эту фигню надо срочно переписать. Оно должно длится не более одной десятой секунды.
Название таблиц TABLE_N просто умиляет. Это ORM что ли?
15 мар 19, 08:39    [21833260]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Даниил,

вам надо оперативной памяти нарастить и увеличить размер страничного кеша для начала, но не более чем до 2048 страниц (это для классика).

Перейдёте на 3.0 SS там можно кеш задрать посущественней. У вас там на вставку одного заказа только 97 067 дисковых чтений!!!
15 мар 19, 08:43    [21833265]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Симонов Денис
Даниил,

ужас!!! Если реально добавление одного заказа занимает 6 секунд всю эту фигню надо срочно переписать. Оно должно длится не более одной десятой секунды.
Название таблиц TABLE_N просто умиляет. Это ORM что ли?
Нет, в реальности названия таблиц вполне осмысленные. В статистике подчистил на всякий случай.
15 мар 19, 08:48    [21833270]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Симонов Денис
У вас там на вставку одного заказа только 97 067 дисковых чтений!!!
Для каждой позиции подтягивается свой прайс, где цена рассчитывается по нескольким параметрам (в т.ч. агрегациям по 2 немаленьким таблицам) и подтягиваются правила добавления для каждой позиции (у разной добавляемой позиции может быть различный механизм добавления сопутствующих параметров в одну/несколько таблиц (разные сущности).
Про оптимизацию понял. Пересмотрю, что можно переделать на хранимые агрегации и число чтений уменьшить.
15 мар 19, 08:59    [21833278]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1642
Симонов Денис
вам надо оперативной памяти нарастить и увеличить размер страничного кеша для начала, но не более чем до 2048 страниц (это для классика).

все равно не поможет, если 1.5 гига с диска поднимается
15 мар 19, 09:19    [21833291]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Dimitry Sibiryakov
Даниил
Кроме оптимизации DDL и запросов с клиентов где по вашему мнению у меня прям ужас ужасный?

2. Неспособность выяснить чем занят процессор когда он занят.

Можете подсказать, каким инструментом это можно посмотреть? Я могу посмотреть только имя и ID процесса и не понимаю как это можно использовать.
15 мар 19, 09:22    [21833296]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Даниил
Для каждой позиции подтягивается свой прайс, где цена рассчитывается по нескольким параметрам (в т.ч. агрегациям по 2 немаленьким таблицам) и подтягиваются правила добавления для каждой позиции (у разной добавляемой позиции может быть различный механизм добавления сопутствующих параметров в одну/несколько таблиц (разные сущности).
Про оптимизацию понял. Пересмотрю, что можно переделать на хранимые агрегации и число чтений уменьшить.


Вот с этого и надо начинать. Агрегировать каждый раз при добавлении позиции это онанизм какой-то. Во-первых прайсы так обычно не пересчитывают, хотя бы потому что плавающая цена в течении дня это не очень хорошо. Я не знаю что там у вас за бизнес правила, но скажу что делал я одного оптовика фарм препаратов. У них розничный прайс пересчитывается на оприходовании, а оптовый раз в неделю.
15 мар 19, 09:37    [21833305]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
tunknown
Member

Откуда:
Сообщений: 678
Даниил
Обычный компьютер
Если не экономить на комплектующих, то сервер не всегда обязателен.

Даниил
16 Гб ОЗУ Занятая память: 5-8Гб
Мало. Ради дискового кеша нужно больше.

Даниил
/ БД на быстром SSD /
Ширпотребный SSD не для сервера. Enterprise SSD (SLC/MLC) имеют большую цену, а ширпотребные TLC/MLC- мусор с заранее неизвестным качеством и сроком жизни. Особенно, с OLTP нагрузкой. К тому же, один ширпотребный SSD плохо держит параллельную нагрузку. Лучше аппаратная плата RAID1 на 2 HDD или RAID10 на 4. Тогда будет до 4 потоков на чтение и до двух на запись. Винчестеры лучше выбирать классом повыше.

Даниил
Win7
Если настроить и поотключать всё лишнее, то это лучше ненужного сервера. При таких объёмах серверная операционная система- лишняя трата денег на ненужный функционал.

Даниил
Нагрузка на HDD и LAN - минимальная: HDD в пике 20 МБ/с, обычно 0-4 МБ/с; LAN в пике 40 МБит/с, обычно 2-10 МБит/с.
Сетевую карту лучше поставить отдельную, встроенный Realtek слабоват. Он имеет бОльшие буфера для входящего трафика- нужно наоборот. На отдельной сетевой карте увеличить исходящие буфера до максимума.

Даниил
В итоге видимое узкое место - это процессор.
Так всегда кажется, но чаще всего узким местом является программный стек.

Даниил
При пиковой нагрузке, когда около 60-80 операторов создают новые заявки (1 заявка - это INSERT по 20-100 записей в 5-10 таблиц огромного размера + привязанная в этому бизнес-логика на 15-20 триггеров и около 20-30 ХП, меняющих еще 10-15 таблиц) и эта заявка сохраняется (в толстом клиенте, но вся бизнес-логика выполняется на стороне сервера) до 5-7 секунд. Это много. Считаю нормой - максимум 2 секунды.
Количество залогиненных пользователей не так важно. Нужно смотреть на количество одновременно выполняющихся запросов за одну секунду. Оно не должно быть существенно больше количества ядер процессора. Пики возможны, но не должны быть длительными.

Даниил
Кроме этого у пользователей есть достаточно сложные отчеты, которые могут формироваться до 1-2 минут.
Нельзя ли настроить репликацию или что-то подобное на отдельный компьютер? OLTP и отчётная (или OLAP) нагрузки плохо совместимы, начиная с определённого уровня. Отчёты можно держать на readonly базе, если софт умеет- иногда это улучшает производительность.

Даниил
Поскольку процессор на обычном бытовом компьютере апгредить уже нет смысла, то пора переходить на серверное железо
Смысл зависит от многого. Если дадут денег, то можно. Однако, серверное железо и софт будут существенно дороже. Нужно много вложить, чтобы получить сходную производительность. Серверное железо не для производительности, а для большего количества обслуживаемых клиентов и "гарантированной" безотказности.


Даниил
(не исключая оптимизации DDL и запросов).
В первую очередь. Может, не понадобится сервер.

Даниил
1) Даст ли ощутимый прирост производительности переход на процессоры Xeon Gen9 или Gen10 Silver c 16 ядрами но частотой 2.1-2.4ГГц (вместо i7 8 ядер 3.4ГГц) или же требуется увеличить кол-во ядер при сохранении примерно той же частоты что у i7 3-4 ГГц?
Смотрите на число одновременно выполняющихся запросов.

Плюсы серверного процессора: ядер больше, кеш больше. Минусы: частота либо существенно меньше, либо несущественно, но с огромным ценником и кондиционированная серверная нужна- шумит и греется. Обычно, для серверов и память медленная, но чуть надёжнее.
Если в базе много алгоритмической работы, то может требоваться большая частота. Мощные десктопные процессоры в некоторых случаях лучше:

Если одновременных запросов меньше, то предпочтительнее частота:
i7-7700k
i7-7740x

Если одновременных запросов больше, то предпочтительнее греющиеся ядра и L2 кеш:
i7-7820x
i7-9800x
15 мар 19, 10:33    [21833382]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Даниил
Можете подсказать, каким инструментом это можно посмотреть?

WinDbg, Process Explorer.

Posted via ActualForum NNTP Server 1.5

15 мар 19, 12:45    [21833613]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
tunknown
Member

Откуда:
Сообщений: 678
Dimitry Sibiryakov
WinDbg, Process Explorer.

Видимо, Process Monitor, т.к. нужно в динамике?
15 мар 19, 12:48    [21833617]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

tunknown
Видимо, Process Monitor
Нет, монитор годится для выяснения "чем занят диск/сеть/реестр". Для процессора
нужны стэки нагруженных потоков из эксплорера или отладчика.

Posted via ActualForum NNTP Server 1.5

15 мар 19, 12:51    [21833628]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
DmSer
Member

Откуда: Пенза
Сообщений: 871
Дегтярев Евгений
DmSer
Откуда такая нагрузка на SSD, если вся база закеширована в памяти?

откуда она там возьмется
kdv
DefaultDbCachePages = 384
маловато как-то.


База в ОЗУ в файловом кэше ОС.
15 мар 19, 13:12    [21833686]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Дегтярев Евгений
Симонов Денис
вам надо оперативной памяти нарастить и увеличить размер страничного кеша для начала, но не более чем до 2048 страниц (это для классика).

все равно не поможет, если 1.5 гига с диска поднимается


ну может хоть верхние уровни индексов оставаться будут
15 мар 19, 13:17    [21833700]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Симонов Денис
Даниил
Для каждой позиции подтягивается свой прайс, где цена рассчитывается по нескольким параметрам (в т.ч. агрегациям по 2 немаленьким таблицам) и подтягиваются правила добавления для каждой позиции (у разной добавляемой позиции может быть различный механизм добавления сопутствующих параметров в одну/несколько таблиц (разные сущности).
Про оптимизацию понял. Пересмотрю, что можно переделать на хранимые агрегации и число чтений уменьшить.


Вот с этого и надо начинать. Агрегировать каждый раз при добавлении позиции это онанизм какой-то. Во-первых прайсы так обычно не пересчитывают, хотя бы потому что плавающая цена в течении дня это не очень хорошо. Я не знаю что там у вас за бизнес правила, но скажу что делал я одного оптовика фарм препаратов. У них розничный прайс пересчитывается на оприходовании, а оптовый раз в неделю.

Цена на 1 позицию берется из прайса клиента на определенную дату, далее высчитывается скидка на эту позицию (по своему алгоритму выдачи возможной скидки на каждую из позиций) исходя из общей накопленной суммы за незакрытый период (месяц) и сравнивается, укладывается ли вся ненакопленная сумма незакрытого периода в ограничение по клиенту и далее ветки действий по каждому возможному случаю. Все это должно быть "онлайн" без дискретных периодов пересчета (день-неделя-месяц).
15 мар 19, 13:21    [21833711]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8347
tunknown
Лучше аппаратная плата RAID1 на 2 HDD или RAID10 на 4. Тогда будет до 4 потоков на чтение и до двух на запись. Винчестеры лучше выбирать классом повыше.

Даниил
На механических винчестерах оно будет тупить настолько безбожно, что можно даже не начинать. HDD это опечатка?


Даниил
каким инструментом это можно посмотреть?
Смотреть надо на вкладку "перфонанс аналитика" а эксперте. Не забивай голову всякой хренью тпа "чем занят проц" и так ясно, что он агрегирует данные и это надо вынести в хранимый агрегат и подновлять его в фоне. Немного нивелировать проблему может помочь переход на 3 ss и разгон закэшированных страниц до примерно половины ОЗУ. Добавление памяти до 64 гб (в десктоп врядли влезет больше), когда не хватит 64 купите полноценную серверную железку.

Отдельно ПРОЦ менять нет НИКАКОГО смысла. Из того, что можно сделать быстро, это сгонять в магазин и купить 4 планки по 16 гиг. Если бы была маркировка матплаты можно было сказать точнее.
15 мар 19, 14:47    [21833919]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
tunknown
Даниил
16 Гб ОЗУ Занятая память: 5-8Гб
Мало. Ради дискового кеша нужно больше.

Есть смысл стремится к тому, чтобы весь объем БД влезал в ОЗУ?

tunknown
Даниил
/ БД на быстром SSD /
Ширпотребный SSD не для сервера. Enterprise SSD (SLC/MLC) имеют большую цену, а ширпотребные TLC/MLC- мусор с заранее неизвестным качеством и сроком жизни. Особенно, с OLTP нагрузкой. К тому же, один ширпотребный SSD плохо держит параллельную нагрузку. Лучше аппаратная плата RAID1 на 2 HDD или RAID10 на 4. Тогда будет до 4 потоков на чтение и до двух на запись. Винчестеры лучше выбирать классом повыше.

Сейчас мы меняем SSD планово раз в год. Но сейчас под БД заготовлен нормальный RAID с батарейкой на 5 дисках. Проводил замеры скорости пока просто копированием файла - примерно одинаково (SSD = RAID). Как будет при реальной нагрузке пока не знаю.


tunknown
Количество залогиненных пользователей не так важно. Нужно смотреть на количество одновременно выполняющихся запросов за одну секунду. Оно не должно быть существенно больше количества ядер процессора. Пики возможны, но не должны быть длительными.

Как это посмотреть? Посчитать по MON$TRANSACTIONS? Но там только активные будут.

tunknown
Даниил
Кроме этого у пользователей есть достаточно сложные отчеты, которые могут формироваться до 1-2 минут.
Нельзя ли настроить репликацию или что-то подобное на отдельный компьютер? OLTP и отчётная (или OLAP) нагрузки плохо совместимы, начиная с определённого уровня. Отчёты можно держать на readonly базе, если софт умеет- иногда это улучшает производительность.
Репликацию силами самого Firebird это можно будет сделать только в 4й версии сервера?

tunknown
Даниил
Поскольку процессор на обычном бытовом компьютере апгредить уже нет смысла, то пора переходить на серверное железо
Смысл зависит от многого. Если дадут денег, то можно. Однако, серверное железо и софт будут существенно дороже. Нужно много вложить, чтобы получить сходную производительность. Серверное железо не для производительности, а для большего количества обслуживаемых клиентов и "гарантированной" безотказности.
Т.е. для 100-150 клиентов покупать серверный xeon на более десятка ядер при нормально спроектированной и оптимизированной БД не имеет смысла?

tunknown
Даниил
(не исключая оптимизации DDL и запросов).
В первую очередь. Может, не понадобится сервер.
Да, до меня это уже дошло.

Даниил
1) Даст ли ощутимый прирост производительности переход на процессоры Xeon Gen9 или Gen10 Silver c 16 ядрами но частотой 2.1-2.4ГГц (вместо i7 8 ядер 3.4ГГц) или же требуется увеличить кол-во ядер при сохранении примерно той же частоты что у i7 3-4 ГГц?
Смотрите на число одновременно выполняющихся запросов.
Про процессоры понял. Серверная есть и она более-менее нормально устроена.
15 мар 19, 15:46    [21833992]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
tunknown
Member

Откуда:
Сообщений: 678
Ivan_Pisarevsky
На механических винчестерах оно будет тупить настолько безбожно, что можно даже не начинать. HDD это опечатка?
Зависит от нагрузки. Если отдаётся много мелких непоследовательных наборов данных, то RAID 10/4 HDD не будет быстрее. Если отдаются большие последовательные данные, то 4 медленных потока могут стать лучше одного быстрого. Запись тоже имеет свои особенности. Не учитывая этого можно вынести бюджет TBW за месяц.

Но держать OLTP базу на SSD- это либо нонсенс, либо предмет гордости администратора, что у него все процессы не хуже Tier 3 и есть горячий резерв с гарантированным простоем не больше минут.
15 мар 19, 15:54    [21834005]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Ivan_Pisarevsky
На механических винчестерах оно будет тупить настолько безбожно, что можно даже не начинать.
Я уже почти собрался менять SSD на RAID5 или RAID10 на механических HDD (есть в наличии, на другом мало используемом сервере). Раньше все такие рейды были, чем плохи?
Лучше по вашему выбрать вариант RAID на SSD?
15 мар 19, 15:58    [21834010]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

15.03.2019 15:58, Даниил пишет:
> Лучше по вашему выбрать вариант RAID на SSD?

денех не хватит.

Posted via ActualForum NNTP Server 1.5

15 мар 19, 16:02    [21834014]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Даниил
Т.е. для 100-150 клиентов покупать серверный xeon на более десятка ядер при нормально спроектированной и оптимизированной БД не имеет смысла?


Имеет. Но если только купить новый сервер и ничего не переделывать результат может разочаровать. Ожидание всё должно работать в 5 раз быстрее, на деле оказывается в 2. А сервер то дорогой.
15 мар 19, 16:05    [21834017]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
tunknown
Member

Откуда:
Сообщений: 678
Даниил
Есть смысл стремится к тому, чтобы весь объем БД влезал в ОЗУ?
Не уверен, что используемая версия СУБД имеет собственное полноценное кеширование, как ведёт себя ОС- отдельный вопрос. Всегда существуют части, котором обязательно нужно сбросится на диск. И размер данных не всегда позволяет.

Даниил
Как это посмотреть? Посчитать по MON$TRANSACTIONS? Но там только активные будут.
Что-то подобное fbprofiler, вероятно, будет полезным.

Даниил
Т.е. для 100-150 клиентов покупать серверный xeon на более десятка ядер при нормально спроектированной и оптимизированной БД не имеет смысла?
Если количество одновременных запросов превышает в полтора раза количество ядер под СУБД более 2-3% рабочего времени или это происходит подряд или попадает на какое-нибудь закрытие смены, то проблему придётся решать. Сервер на нескольких W-3175X- это самое дешёвое решение в смысле усилий программиста.

Например, если при открытии документа на редактирование тянется куча редкоизменяемых справочников и эти справочники обновляются не их основными потребителями, то их можно положить на отдельный компьютер под репликацией. Пусть приложение ходит на 2 сервера. Или кешировать в локальный, например, sqlite. Тем более, что софт самописный.
15 мар 19, 16:21    [21834032]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

15.03.2019 16:21, tunknown пишет:
> то их можно положить на отдельный компьютер под репликацией.

вася, шел бы ты отсюда...

Posted via ActualForum NNTP Server 1.5

15 мар 19, 16:23    [21834036]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
tunknown
Member

Откуда:
Сообщений: 678
Даниил
RAID5
Лучше не стоит. Зеркала или RAID 10 вполне достаточно.
Даниил
Лучше по вашему выбрать вариант RAID на SSD?
И будут они жить долго и счастливо, пока не умрут в один день или раньше, от кривизны в прошивке. Или придётся следить за графиком ротации, следить за деградацией и подтягивать процессы к Tier 3.
15 мар 19, 16:25    [21834042]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8347
Даниил
Т.е. для 100-150 клиентов покупать серверный xeon на более десятка ядер при нормально спроектированной и оптимизированной БД не имеет смысла?
Серверное железо это не только "дорого" и "много ядер/памяти", это еще и мониторинг, ЕСС память, ипми, сдвоенные БП и т.п.
Даниил
Я уже почти собрался менять SSD на RAID5 или RAID10 на механических HDD (есть в наличии, на другом мало используемом сервере). Раньше все такие рейды были, чем плохи?
механический диск выдает на гора примерно 100 операций в секунду, если повезет до 200. тем и плохи рэйди старые они медленные, посмотри сколько ты ты уже укушал иопсов и сравни с чиселкой 100. Да рэйд за счет кэширования в самом контроллере может выдавать куда интересней циферки, но как только пошел обмен именно с блинами, а не с ТББУ то см. выше про 100.
tunknown
Но держать OLTP базу на SSD- это либо нонсенс
так и запишем - теоретег.
Даниил
Лучше по вашему выбрать вариант RAID на SSD?
мы сейчас упаковали свои серверы интеловыми ссдшками 4610 в зеркало+хотспар на адптеке получилось вполне себе шустро.
15 мар 19, 16:50    [21834084]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8347
tunknown
И будут они жить долго и счастливо, пока не умрут в один день или раньше, от кривизны в прошивке.
прислать наложенным платежом дюжину-другую дохлых ХДД? диски что хдд, что ссд это расходный материал, да за ними надо планово следить и планово заменять.
15 мар 19, 16:53    [21834086]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
tunknown
Member

Откуда:
Сообщений: 678
Ivan_Pisarevsky
мы сейчас упаковали свои серверы интеловыми ссдшками 4610 в зеркало+хотспар на адптеке получилось вполне себе шустро.
Если это 64-Layer 3D TLC NAND, то при наличии админов- это не проблема. Ёмкое устройство на сомнительных моделях микросхем. Следите, чтобы readonly для них не случился слишком рано.

Ivan_Pisarevsky
прислать наложенным платежом дюжину-другую дохлых ХДД? диски что хдд, что ссд это расходный материал, да за ними надо планово следить и планово заменять.
Что SSD, что HDD- видел. Но в случае с SSD лотерея несколько лотерейнее.
15 мар 19, 17:39    [21834142]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 598
Мимопроходящий
15.03.2019 16:21, tunknown пишет:
> то их можно положить на отдельный компьютер под репликацией.

вася, шел бы ты отсюда...


Я тож поржал.
15 мар 19, 18:22    [21834193]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8347
tunknown
Ёмкое устройство на сомнительных моделях микросхем.
да 37 серия мне понравилась больше, ресурс больше, ни одного отказа за 5 лет и исчерпание ресурса мизерное, несмотря на постоянную долбежку, посмотрели по факту на расход ресурса и взяли менее ресурсные, по идее должно хватить на расчетный срок. Хотя я бы и взял 37, но у поставщика были в наличии только 46, а бюджет как обычно "горит". :)
15 мар 19, 18:28    [21834203]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Сегодня перед работой поднял DefaultDbCachePages до 1536.

Получилось следующее:
Обращения к диску/с
Среднее: 115
Максимальное: 1170

Обращений чтения с диска/с
Среднее: 2.3
Максимальное: 58

Обращений записи с диска/с
Среднее: 114
Максимальное: 1164

Средняя длина очереди диска
Среднее: 0.047
Максимальное: 0.303

% загруженности процессора
Минимум: 5.6
Среднее: 22
Максимальное: 68

Ранее средняя загрузка процессора была 46%.

Памяти стало чуть больше занимать - 7 Гб вместо 5Гб.

К сообщению приложен файл. Размер - 15Kb
19 мар 19, 08:59    [21836833]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Если недорогой RAID 1 (увеличение скорости не нужно, увеличение надежности нужно) рассматривать на 2 SSD, то что лучше в плане надежности:
1) аппаратный Adaptec/Intel + 2 SATA/SAS/U.2 - диска или
2) программный RAID на 2 PCi (у них скорость чтения/записи лучше чем у SATA/SAS/U.2 , но аппаратных рейдов для таких плат не видел)?
19 мар 19, 09:07    [21836839]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Даниил
Памяти стало чуть больше занимать - 7 Гб вместо 5Гб.

А теперь покажи результат fb_lock_print.

Posted via ActualForum NNTP Server 1.5

19 мар 19, 13:19    [21837258]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
pastor
Member

Откуда: Калуга
Сообщений: 1004
Даниил
Если недорогой RAID 1 (увеличение скорости не нужно, увеличение надежности нужно) рассматривать на 2 SSD, то что лучше в плане надежности:
1) аппаратный Adaptec/Intel + 2 SATA/SAS/U.2 - диска или
2) программный RAID на 2 PCi (у них скорость чтения/записи лучше чем у SATA/SAS/U.2 , но аппаратных рейдов для таких плат не видел)?


изучение теории надежности (Опасность и Безнадежность).

в системе с аппаратным рэйдом и двумя дисками три элемента, один из которых не имеет резервирования.
диск из программного рэйда можн прочитать на соседнем компе.
19 мар 19, 14:01    [21837327]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8347
pastor
диск из программного рэйда можно прочитать на соседнем компе.
диск(и) из аппаратного не менее успешно читается на аналогичном контроллере. Т.к. инфа о том, членом какого массива оный является записана на каждом диске массива.

софт рэйд очень весело разваливается при пропадании питания.

УПС с обратно связью надеюсь, подразумевается?
19 мар 19, 14:13    [21837342]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
pastor
Member

Откуда: Калуга
Сообщений: 1004
Ivan_Pisarevsky
pastor
диск из программного рэйда можно прочитать на соседнем компе.
диск(и) из аппаратного не менее успешно читается на аналогичном контроллере. Т.к. инфа о том, членом какого массива оный является записана на каждом диске массива.

софт рэйд очень весело разваливается при пропадании питания.

УПС с обратно связью надеюсь, подразумевается?


т.е. при наличии резервирования оного контроллера.

софт рэйд также быстро восстанавливается :).

наличие УПС сильно положительно сказывается на стабильности соединения с сервером.

в далекой молодости ставили сервера с резервированными блоками питания.
19 мар 19, 14:46    [21837391]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30321

19.03.2019 14:46, pastor пишет:
> в далекой молодости ставили сервера с резервированными блоками питания.

оные и по сей день применяются и выпускаются.

Posted via ActualForum NNTP Server 1.5

19 мар 19, 14:53    [21837401]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8347
pastor
софт рэйд также быстро восстанавливается :).
Счет идет на часы. А если вовремя не заметили?
pastor
при наличии резервирования оного контроллера.
Да, да фары дворники и тормоза придумали трусы! И хотспаре диски тоже.
19 мар 19, 15:04    [21837413]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
pastor
Member

Откуда: Калуга
Сообщений: 1004
Ivan_Pisarevsky
pastor
софт рэйд также быстро восстанавливается :).
Счет идет на часы. А если вовремя не заметили?
pastor
при наличии резервирования оного контроллера.
Да, да фары дворники и тормоза придумали трусы! И хотспаре диски тоже.


софт рейд восстановится. не намного дольше, чем аппаратный.

автор топика спрашивает о сравнении надежности одиночного аппаратного рэйда с двумя дисками и просто двумя дисками, особо оговаривая при этом, что производительность не беспокоит.

я всего лишь указал на уязвимость одинокого контроллера, который сводит всю надежность к надежности одной платы.

у нас достаточно много заказчиков, которые могут себе позволить 30 минут простоя, но не могут позволить полной потери данных.

после эксгумации сервера, диск с базой втыкается в комп кассы и молотит там пока не привезут новый.
19 мар 19, 15:21    [21837437]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8347
pastor
производительность не беспокоит.
Первый пост в топике говорит немного об обратном.
pastor
я всего лишь указал на уязвимость одинокого контроллера, который сводит всю надежность к надежности одной платы.
дисков дохлых видел реально много, дохлого адаптека или LSI до сих пор не приходилось видеть ни разу.
19 мар 19, 16:41    [21837546]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
pastor
Member

Откуда: Калуга
Сообщений: 1004
Ivan_Pisarevsky
pastor
производительность не беспокоит.
Первый пост в топике говорит немного об обратном.


Это о производительности системы в штатном режиме.
Про время допустимого простоя - нет. Возможно, это мои домыслы. Я художник, я так вижу :)

Регенерация программного рэйда идет на ходу, так же как и аппаратного. и тоже с потерей производительности.

Ivan_Pisarevsky
pastor
я всего лишь указал на уязвимость одинокого контроллера, который сводит всю надежность к надежности одной платы.
дисков дохлых видел реально много, дохлого адаптека или LSI до сих пор не приходилось видеть ни разу.


я видел. не раз.
на большом однотипном парке - терпимо. на одиночном объекте - фатально.

Критерий один - цена часа простоя. Если она превышает стоимость запасного сервака - то надо его ставить. Нет - так и пес с ним.
19 мар 19, 17:07    [21837583]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Dimitry Sibiryakov
А теперь покажи результат fb_lock_print.

LOCK_HEADER BLOCK
Version: 145, Active owner: 0, Length: 21145728, Used: 17182720
Flags: 0x0001
Enqs: 1687978558, Converts: 697888, Rejects: 5444082, Blocks: 4419070
Deadlock scans: 0, Deadlocks: 0, Scan interval: 10
Acquires: 1716058266, Acquire blocks: 66671793, Spin count: 0
Mutex wait: 3.9%
Hash slots: 30011, Hash lengths (min/avg/max): 0/ 1/ 6
Remove node: 0, Insert queue: 0, Insert prior: 0
Owners (110): forward: 279408, backward: 10713936
Free owners (15): forward: 5831976, backward: 3325504
Free locks (22811): forward: 254040, backward: 11994728
Free requests (29243): forward: 11641816, backward: 13314960
Lock Ordering: Enabled
20 мар 19, 13:52    [21838482]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Ivan_Pisarevsky
pastor
производительность не беспокоит.
Первый пост в топике говорит немного об обратном.

Сформулирую свою мысль более развернуто. Мне необходима достаточная производительность всего сервера в целом. Так же мне необходима и достаточная для моего случая надежность (ниже опишу что я под этим понимаю)

Для себя из всего обсуждения наметил следующий порядок действий (в порядке приоритета):
1) Более плотно подойти к оптимизации БД. Провести оценку структуры, индексов (избыточность), триггеров (расчет агрегаций), запросов. Цель: уменьшить количество обращений к диску, снизить нагрузку на процессор.
2) Увеличить память до 64Гб. После этого посмотреть еще раз на производительность. Возможно, процессор станет справляться с нагрузкой.
3) Поменять 1 SSD на RAID из SSD.

И тут 3 пункт для меня пока не очень понятен. С одной стороны в Firebird_Hardware_Guide говорится, что FB достаточно критичен к скорости хранилища БД. С другой стороны скорости 1 SSD вроде бы (?) достаточно, но его надежность под большим сомнением.
Поэтому оставив ту же производительность хочу поставить RAID 1, который даст некую уверенность. Относительно разумных денег будут стоить 2 SSD на PCI, которые дадут еще бОльшую производительность относительно SATA/SAS/U.2 SSD дисков, но для них нет аппаратных контроллеров. Либо, выбрав на хороших SATA/SAS/U.2 SSD дисках аппаратный RAID-контроллер даже с батарейкой, при выходе его из строя - я теряю всю БД (восстановление бэкапа рассматриваем как крайний случай - это дополнительное время и потеря новых данных с последнего бэкапа).
Если при выходе из строя железа сервера с программным RAID-ом есть надежда, что подоткнув один из SSD дисков в резервный сервер можно быстро запустить работу, то с аппаратным контроллером это будет значительно сложнее. Держать в резерве еще один контроллер я не готов.

Питание сервера сейчас такое: здание подключено по 2й категории, время переключения на 2й кабель (от другого трансформатора) 10 минут, ИБП Eaton Powerware с двойным преобразованием выдерживает 40 минут. В принципе, можно подсоединить еще 1-2 доп.батареи и увеличить время работы от ИБП часов до 2-3.
20 мар 19, 14:30    [21838528]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Даниил
Dimitry Sibiryakov
А теперь покажи результат fb_lock_print.

LOCK_HEADER BLOCK
Version: 145, Active owner: 0, Length: 21145728, Used: 17182720
Flags: 0x0001
Enqs: 1687978558, Converts: 697888, Rejects: 5444082, Blocks: 4419070
Deadlock scans: 0, Deadlocks: 0, Scan interval: 10
Acquires: 1716058266, Acquire blocks: 66671793, Spin count: 0
Mutex wait: 3.9%
Hash slots: 30011, Hash lengths (min/avg/max): 0/ 1/ 6
Remove node: 0, Insert queue: 0, Insert prior: 0
Owners (110): forward: 279408, backward: 10713936
Free owners (15): forward: 5831976, backward: 3325504
Free locks (22811): forward: 254040, backward: 11994728
Free requests (29243): forward: 11641816, backward: 13314960
Lock Ordering: Enabled
Никогда не пользовался этим инструментом. Подскажите, на какие цифры смотреть?
22 мар 19, 06:57    [21840289]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8347
Даниил
ИБП Eaton Powerware с двойным преобразованием выдерживает 40 минут. В принципе, можно подсоединить еще 1-2 доп.батареи и увеличить время работы от ИБП часов до 2-3.
Дело не во времени работы, надо чтобы система сервер-УПС корректно погасла при пропадании питания.

Даниил
восстановление бэкапа рассматриваем как крайний случай - это дополнительное время и потеря новых данных с последнего бэкапа
посмотри внимательней на утилиту nbackup и возможность работы с инкрементарным бэкапом. потери можно свести до нескольких минут. В тройке ее работа подверглась серьезной оптимизации.

Даниил
Либо, выбрав на хороших SATA/SAS/U.2 SSD дисках аппаратный RAID-контроллер даже с батарейкой
"батарейка" и соответственно райтбэк кеширование на ССД уже дает столь драматического прироста производительности как на хдд, надо просто свежий скоростной контроллер, который сможет пробросить через себя требуемые ИОпсы.
22 мар 19, 09:43    [21840360]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Даниил
Подскажите, на какие цифры смотреть?

Единственное на что можно повлиять с предсказуемыми результатами это "Hash slots: 30011,
Hash lengths (min/avg/max): 0/ 1/ 6", но у тебя и так hash slots задраны до небес.
Уменьшение слишком большого числа слотов может дать прирост производительности, но
незначительный, гораздо меньший, чем увеличение в случае если бы их не хватало.

Posted via ActualForum NNTP Server 1.5

22 мар 19, 13:10    [21840669]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Подниму свою старую тему по поводу попытки увеличения производительности.

На данный момент настраиваю сервер FB на новом железе.
Решил, что экспериментировать с переходом с 2.5 на 3.0 пока рано, поставил последнюю версию сервера ветки 2.5 (2.5.9.27139).
С целью экономии остановился на варианте быстродействующего персонального компьютера вместо серверной платформы. Цена вопроса: 200 тыс.руб. (на i9) вместо 1200 тыс. (на Xeon Gold).
Пока что провел тестирование только дисковой подсистемы с помощью backup'а. БД размером 57 Гб бэкапится в 35 Гб за 12 минут (50 Мб/с). Судя по статье (http://www.ibase.ru/backupspeed3/) - это хорошие показатели.
К сообщению приложил скриншот тестов дисков для DB и backup-а CrystalDiskMark'ом.

Сейчас хочу оптимально выставить настройки сервера для максимальной производительности.
Подскажите, правильно ли я подобрал параметры?

Исходные данные такие:
Размер БД: 57 Гб. Из них оперативные данные - это не более 5-10 Гб. Все остальные - архивные данные, которые редко читаются и практически никогда не изменяются.
Firebird 2.5.9.27139 Classic. OC WIndows 2016std.
Объем ОЗУ: 64 Гб (с возможностью нарастить до 128Гб, но пока не понятна целесообразность, пусть будет 64).
Количество одновременно работающих пользователей: 120-140.
БД расположена на отдельном от системного диска SSD. Так же в firebird.conf выделен отдельный HDD для TempDirectories (тот, что для используется для ежедневных бэкапов). Использую один и тот же диск исходя из логики, что таблицы сортировки серверу будут не нужны, когда все пользователи отключены и запущен gbak. А затем файл с бэкапом потихоньку забирается с этого быстрого но небольшого диска (запас диска от текущего размера бекапа - шестикратный) на большой медленный диск и далее на сетевые хранилища.
Исходя из статей по оптимизации настроек и размера ОЗУ, прописал в firebird.conf (для Page size 16384) следующее:


DefaultDbCachePages = 1536
# Пока поставил немного менее 2048

FileSystemCacheThreshold = 8192
# Должен быть больше CachePages. На сколько больше? Достаточно ли ограничения в 128Гб?

LockMemSize = 23040000
# LockMemSize >= Cache_pages * max_connections_count * 100 (Посчитал для 150 пользователей)

FileSystemCacheSize = 25
# Отдаем 16 Гб памяти под кэш ОС. Или не надо это явно ограничивать?

TempCacheLimit = 8192M
# Отдаем 8Гб памяти для сортировок

TempBlockSize = 64M
# По совету dimitr (TempBlockSize я бы советовал выставлять не более 5% от TempCacheLimit и не менее 1МБ (дефолтное значение))

LockHashSlots = 30011
# Из оптимизированного конфига с ibase.ru

К сообщению приложен файл. Размер - 131Kb
27 авг 19, 15:41    [21958417]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Даниил
FileSystemCacheThreshold = 8192
# Должен быть больше CachePages. На сколько больше? Достаточно ли ограничения в 128Гб?


эту настройку можно было вообще не трогать. Там и так большое значение по умолчанию Для классика полюбас подойдёт.
Как гигабайты насчитал?

Даниил
TempCacheLimit = 8192M
# Отдаем 8Гб памяти для сортировок


для классика многовато будет. Этот параметр общий в SS и SC, но не в классике. Надеюсь буковку M не оставил. Это работает начиная с 3.0.
27 авг 19, 16:37    [21958456]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9302
Даниил
Размер БД: 57 Гб. Из них оперативные данные - это не более 5-10 Гб. Все остальные - архивные данные, которые редко читаются и практически никогда не изменяются.
Firebird 2.5.9.27139 Classic. OC WIndows 2016std.
Объем ОЗУ: 64 Гб (с возможностью нарастить до 128Гб, но пока не понятна целесообразность, пусть будет 64).
Количество одновременно работающих пользователей: 120-140.
БД расположена на отдельном от системного диска SSD. Так же в firebird.conf выделен отдельный HDD для TempDirectories (тот, что для используется для ежедневных бэкапов).
Плохая идея.
В C:\ProgramData\firebird расположены lock-файлы, для которых (тоже) нужен быстрый доступ. И для сортировок.
В вашем раскладе легко получить 100% загрузки системного диска с огромной очередью и огрестись тормозами "вообще всего".
Если не хотите размещать систему на SSD целиком, то "откусите" от SSD диска несколько гигабайт, создайте отдельный раздел и подмонтируйте его к пустому C:\ProgramData\firebird.
Всё это можно проделать "онлайн" и остановка FB потребуется только для того, чтобы очистить ProgramData/firebird и смонтировать туда подготовленный раздел.
Чтобы переместить на SSD fb_table, fb_sort и прочие временные файлы FB, установите глобальную переменную FIREBIRD_TMP (setx /m или аплет sysdm.cpl) в отдельный (существующий) каталог SSD-диска.
27 авг 19, 17:41    [21958498]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9302
Даниил
FileSystemCacheSize = 25
# Отдаем 16 Гб памяти под кэш ОС. Или не надо это явно ограничивать?
TempCacheLimit = 8192M
# Отдаем 8Гб памяти для сортировок
Вы бы эта ... Комментарии firebird.conf читали, что ли ...
Причём от соответствующей версии, а не от произвольной:

# Type: integer, measured in % of total physical RAM
#FileSystemCacheSize = 0

# Type: integer, measured in database pages
#FileSystemCacheThreshold = 65536

В пропущенном тоже немало интересного.
Предельный размер буфера сортировок SuperClassic'а (общий на все подключения) должен быть менее 2ГБ.
27 авг 19, 17:52    [21958504]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Симонов Денис
Даниил
FileSystemCacheThreshold = 8192
# Должен быть больше CachePages. На сколько больше? Достаточно ли ограничения в 128Гб?

эту настройку можно было вообще не трогать. Там и так большое значение по умолчанию Для классика полюбас подойдёт.
Как гигабайты насчитал?


Как я понял из https://ib-aid.com/download/webinar/memory_usage_in_firebird1.pdf
8192 - это максимальный размер кэша ОС, который может использовать FB при необходимости, измеряется в количестве страниц
Поэтому 8192*16384=134217728=128Гб

Симонов Денис
Даниил
TempCacheLimit = 8192M
# Отдаем 8Гб памяти для сортировок

для классика многовато будет. Этот параметр общий в SS и SC, но не в классике. Надеюсь буковку M не оставил. Это работает начиная с 3.0.

Вообще-то оставил, но пока на обсуждаемом конфиге не запускал. Комп сейчас свободный стоит, пока все хотя бы первоначально не настрою. Про ошибку свою понял.
Про память для сортировок читал http://www.ibase.ru/files/firebird/Firebird_Hardware_Guide_2015_rus.pdf и https://ib-aid.com/download/webinar/memory_usage_in_firebird1.pdf но в итоге посчитал кэш общим для всех процессов (как в FB 3.0).
Скачанный с www.ibsurgeon.com конфиг для Firebird 2.5 64-bit Classic содержит значение для TempCacheLimit = 77108864 и TempBlockSize = 2048576. Сделаю их такими.
28 авг 19, 07:16    [21958711]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Basil A. Sidorov
Даниил
Размер БД: 57 Гб. Из них оперативные данные - это не более 5-10 Гб. Все остальные - архивные данные, которые редко читаются и практически никогда не изменяются.
Firebird 2.5.9.27139 Classic. OC WIndows 2016std.
Объем ОЗУ: 64 Гб (с возможностью нарастить до 128Гб, но пока не понятна целесообразность, пусть будет 64).
Количество одновременно работающих пользователей: 120-140.
БД расположена на отдельном от системного диска SSD. Так же в firebird.conf выделен отдельный HDD для TempDirectories (тот, что для используется для ежедневных бэкапов).
Плохая идея.
В C:\ProgramData\firebird расположены lock-файлы, для которых (тоже) нужен быстрый доступ. И для сортировок.
В вашем раскладе легко получить 100% загрузки системного диска с огромной очередью и огрестись тормозами "вообще всего".
Если не хотите размещать систему на SSD целиком, то "откусите" от SSD диска несколько гигабайт, создайте отдельный раздел и подмонтируйте его к пустому C:\ProgramData\firebird.
Всё это можно проделать "онлайн" и остановка FB потребуется только для того, чтобы очистить ProgramData/firebird и смонтировать туда подготовленный раздел.
Чтобы переместить на SSD fb_table, fb_sort и прочие временные файлы FB, установите глобальную переменную FIREBIRD_TMP (setx /m или аплет sysdm.cpl) в отдельный (существующий) каталог SSD-диска.

Firebird 2.0 Administrators Manual
Use the TempDirectories parameter to specify where the server will create temporary sort files.

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ Борри Хелен
Переменная окружения FIREBIRD_TMP (В версии 1.0.x - INTERBASE TMP) задает пользовательское размещение для файлов сортировки Firebird. Доступны также другие способы определения размещения этих файлов. Конфигурирование параметра TempDirectories
Зачем мне тогда указывать FIREBIRD_TMP? Или параметр TempDirectories в конфиге задает место для сортировок, а системная переменная FIREBIRD_TMP не только сортировки, но еще и другие файлы? Не нашел этого в инструкциях.
Диск для ОС у меня на самом деле точно такой же модели как для файла сортировок и еженочных оперативных бэкапов - SSD SAMSUNG 970 EVO Plus MZ-V7S250BW 250Гб, M.2 2280, PCI-E x4, NVMe. Это достаточно быстрый диск. Тормозов "вообще всего" быть не должно.
А файл базы лежит на еще более быстром диске - зеркале из двух SSD INTEL Optane 900P SSDPED1D280GASX 280Гб, PCI-E AIC (add-in-card), PCI-E x4, NVMe
Их скорости я выкладывал вчера.
28 авг 19, 07:41    [21958721]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Basil A. Sidorov
Даниил
FileSystemCacheSize = 25
# Отдаем 16 Гб памяти под кэш ОС. Или не надо это явно ограничивать?
TempCacheLimit = 8192M
# Отдаем 8Гб памяти для сортировок
Вы бы эта ... Комментарии firebird.conf читали, что ли ...
Причём от соответствующей версии, а не от произвольной:

# Type: integer, measured in % of total physical RAM
#FileSystemCacheSize = 0

# Type: integer, measured in database pages
#FileSystemCacheThreshold = 65536

В пропущенном тоже немало интересного.
Предельный размер буфера сортировок SuperClassic'а (общий на все подключения) должен быть менее 2ГБ.

Про FileSystemCacheThreshold ошибку свою понял, а с FileSystemCacheSize в чем проблема? В оригинальном .conf написано, что его не надо дель меньше 10%, а рекомендуемое значение - это 30%. Я сделал 25%. От 64Гб ОЗУ это = 16Гб. Должно быть достаточно для ОС. Никаких других задач кроме сервера БД, этот компьютер выполнять не будет.
28 авг 19, 07:49    [21958725]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Даниил
Симонов Денис

эту настройку можно было вообще не трогать. Там и так большое значение по умолчанию Для классика полюбас подойдёт.
Как гигабайты насчитал?


Как я понял из https://ib-aid.com/download/webinar/memory_usage_in_firebird1.pdf
8192 - это максимальный размер кэша ОС, который может использовать FB при необходимости, измеряется в количестве страниц
Поэтому 8192*16384=134217728=128Гб


ну что за привычка придумывать что-то от себя. В конфиге в комментарии к этому параметру всё написано.

автор
Параметр FileSystemCacheThreshold устанавливает порог использования системного файлового
кэша сервером Firebird. Системный файловый кэш используется, если размер страничного
кэша (установленного явно в заголовке базы данных или через параметр конфигурации
DefaultDbCachePages) меньше чем значение FileSystemCacheThreshold.

Параметр имеет целочисленный тип. Единица измерения – страница базы данных. По умолчанию
параметр имеет значение — 65536 страниц. Если значение параметра FileSystemCacheThreshold
равно 0, то сервер не будет использовать системный файловый кэш.
28 авг 19, 08:16    [21958740]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Даниил,

у меня ощущение что с английским у вас не очень. А ведь этот материал есть на русском языке. Причём он изначально на нём был, и только потом переведён для зарубежных семинаров.

http://www.ibase.ru/news/materialy-vebinara-effektivnoe-ispol-zovanie-pamati-subd-firebird/
28 авг 19, 08:27    [21958745]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Alibek B.
Member

Откуда:
Сообщений: 3190
Симонов Денис
Вы фигнёй там страдаете. Нормально спроектированная система не нуждается в постоянном b/r.

Чушь.
Даже если исключить физическое повреждение данных (чего исключать нельзя), то данные могут быть испорчены логически, ошибочно выполненной необратимой операцией.
28 авг 19, 09:43    [21958788]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Alibek B.,

чушь у вас написана. Я не сказал что база данных не нуждается в backup. Он то как раз нужен всегда.
restore нужен как раз только тогда когда вы обнаружили что БД повреждена, ну и для проверки бекапа.

А вот ежедневный/недельный... backup/restore с заменой оригинальной БД — это как раз попытка спрятать мусор под ковёр — обойти кривые решения программистов и не умение работать с транзакциями.
28 авг 19, 10:04    [21958806]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Alibek B.
Member

Откуда:
Сообщений: 3190
Всегда нужно проверять целостность полученного бэкапа.
А лучший способ для этого — восстановить его.
Все остальное — компромиссы, иногда вынужденные (например если база очень большая).

Вот замена оригинальной БД — это действительно странно, тут соглашусь.
Я обычно восстановленным бэкапом меняю тестовую базу.
28 авг 19, 10:17    [21958814]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
KreatorXXI
Member

Откуда: Москва
Сообщений: 783
Alibek B.
Всегда нужно проверять целостность полученного бэкапа.


В какой момент по-Вашему этот должен испортиться?
28 авг 19, 10:25    [21958821]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
KreatorXXI
Member

Откуда: Москва
Сообщений: 783
KreatorXXI,

этот бэкап должен испортиться?
28 авг 19, 10:28    [21958827]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Даниил
Поэтому 8192*16384=134217728=128Гб

прикольно получилось:
8к страниц * 16к байт, равно 128 гигабайт :-) мегабайт, конечно.
В общем, главное что разобрались.
28 авг 19, 10:42    [21958843]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Даниил
с FileSystemCacheSize в чем проблема?
Не трогай его. Оставь 0 и забудь, что он есть.
28 авг 19, 11:07    [21958868]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Alibek B.
Member

Откуда:
Сообщений: 3190
KreatorXXI, в неожиданный, разумеется.
Если бы отказы можно было бы предопределять, они бы не были отказами.
28 авг 19, 11:22    [21958894]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Симонов Денис
Даниил,

у меня ощущение что с английским у вас не очень. А ведь этот материал есть на русском языке. Причём он изначально на нём был, и только потом переведён для зарубежных семинаров.

http://www.ibase.ru/news/materialy-vebinara-effektivnoe-ispol-zovanie-pamati-subd-firebird/
Как показали в предыдущем сообщении, у меня и с математикой аналогично) Спасибо за ссылку на вебинар, обязательно посмотрю (мне кажется, саму презентацию уже где-то видел). У меня пока знаний по настройке сервера на уровне "возьму рекомендуемый оптимизированный конфиг и посмотрю как будет работать", но хотелось бы конечно во всем разобраться. Спасибо всем за помощь.
28 авг 19, 11:54    [21958945]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
KreatorXXI
Member

Откуда: Москва
Сообщений: 783
Alibek B.
KreatorXXI, в неожиданный, разумеется.
Если бы отказы можно было бы предопределять, они бы не были отказами.

Если что-то отказывает, особенно в неожиданный момент, надо это лечить. Либо отказываться от такой системы. Тут же несколько вариантов. 1. Сбой gbak. Тогда претензия к разработчикам ФБ. 2. Файловый сбой. Меняем железо. И т.д. Не понимаю, когда "Система крайне ненадёжна. Приходиться ставить кучу костылей." И продолжать работать в таком режиме.
28 авг 19, 11:58    [21958952]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
KreatorXXI,

В Firebird до 3.0 можно выполнить такой запросик

alter table t1 add filed1 integer not null;


Если в таблице были данные и после этого запроса не сделали update для field1, то с restore будут проблемы.
Это с одной стороны косяк разработчика БД, с другой сама СУБД не проконтроллировала.
Но я бы не назвал такой бекап невосстановимым.
28 авг 19, 12:06    [21958960]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9302
Alibek B.
Всегда нужно проверять целостность полученного бэкапа.
А лучший способ для этого — восстановить его.
А худший способ восстановления - перезаписать исходную базу.
28 авг 19, 12:22    [21958970]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Alibek B.
Member

Откуда:
Сообщений: 3190
KreatorXXI
Если что-то отказывает, особенно в неожиданный момент, надо это лечить.

Откровения теоретика?
Если что-то отказало, то лечить может быть уже поздно.
А отказать может что угодно и когда угодно.
28 авг 19, 13:00    [21959000]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Alibek B.
Если что-то отказало, то лечить может быть уже поздно.

Ну да, если не заниматься профилактикой и полагаться исключительно на бэкап, то пушной
зверёк всегда приходит неожиданно.

Posted via ActualForum NNTP Server 1.5

28 авг 19, 13:04    [21959002]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Alibek B.
Member

Откуда:
Сообщений: 3190
Проверка целостности бэкапа рестором — и есть профилактика.
28 авг 19, 14:14    [21959091]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Alibek B.
Проверка целостности бэкапа рестором — и есть профилактика.

Нет. Поздно пить боржоми бэкап делать если база побита.

Профилактика это сервер с ECC, RAID, SMART, Hot Swap и прочими страшными аббревиатурами.

Posted via ActualForum NNTP Server 1.5

28 авг 19, 14:26    [21959108]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8347
Dimitry Sibiryakov
полагаться исключительно на бэкап
В бинарном транспортном формате, который генерируется утилитой gbak, то
Dimitry Sibiryakov
пушной зверёк всегда приходит неожиданно.
Возможности бэкапа не исчерпываются одной утилитой.

Dimitry Sibiryakov
Профилактика это сервер с ECC, RAID, SMART, Hot Swap и прочими страшными аббревиатурами.
+онлайн УПС с обратной связью и с настроенным алгоритмом гашения сервера.

дополнилКартинка с другого сайта.
28 авг 19, 15:01    [21959139]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Ivan_Pisarevsky
+онлайн УПС с обратной связью и с настроенным алгоритмом гашения сервера.

Два. По одному на каждый из дублированных блоков питания. Лет 20 назад мы такое чудо
пользовали.

Posted via ActualForum NNTP Server 1.5

28 авг 19, 16:37    [21959259]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9302
/me всегда с интересом слушает байки операторов карьерных самосвалов в кафешке, где собрались водители газелей и газонов
28 авг 19, 16:56    [21959275]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Alibek B.
Member

Откуда:
Сообщений: 3190
Dimitry Sibiryakov
сервер с ECC

Бывает сервер без ECC?
Вы его с ПК в стоечном корпусе не путаете?

Dimitry Sibiryakov
RAID, SMART, Hot Swap и прочими страшными аббревиатурами.

Я аббревиатур тоже много знаю, например SAN, FC, ISCSI.
Только какое это имеет отношение к логическим ошибкам, когда не файлы БД повреждаются, а данные в БД портятся или удаляются?
28 авг 19, 17:09    [21959284]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8347
Alibek B.
например SAN, FC,
зело полезная весчь для сервера БД, правда в контексте: "заменили сервак на продвинутый десктоп" обсуждать санку как-то странно. Айскази в боевом режиме не шшупал, ничего сказать не могу.
Dimitry Sibiryakov
Два. По одному на каждый из дублированных блоков питания. Лет 20 назад мы такое чудо
пользовали.
почему чудо? почему лет 20? у нас и сейчас головной сервак так запитан, на периферийных, правда сэкономили, грешным делом.

Автору, выше была картинка про диски, мегабайты в секунду для БД нафиг не интересны, смотри на ИОпсы! чем больше тем лучше.
28 авг 19, 18:18    [21959341]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Alibek B.
Только какое это имеет отношение к логическим ошибкам, когда не файлы БД повреждаются, а
данные в БД портятся или удаляются?

Никакого. Если, конечно, не считать того, что бэкап и в этом случае делать уже поздно. Тут
нужен PITR, коий выкатить, конечно, можно, но толпы инвесторов я чегой-то не наблюдаю.

Posted via ActualForum NNTP Server 1.5

28 авг 19, 18:45    [21959357]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Alibek B.
Member

Откуда:
Сообщений: 3190
Dimitry Sibiryakov
Если, конечно, не считать того, что бэкап и в этом случае делать уже поздно.

Лишний бэкап лишним не бывает.
Логические ошибки он не предотвратит, но зато минимизирует потери (времени).
Да и в любых других случаях свежий бэкап поможет больше, чем бэкап месячной давности.
28 авг 19, 20:02    [21959396]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
Ivan_Pisarevsky
Автору, выше была картинка про диски, мегабайты в секунду для БД нафиг не интересны, смотри на ИОпсы! чем больше тем лучше.

Померял сейчас с помощью Iometer файлик размером 64Гб (примерно как БД). Настройки и результат - на скриншоте.

К сообщению приложен файл. Размер - 139Kb
29 авг 19, 12:49    [21959759]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
o_v_a
Member

Откуда: Тула
Сообщений: 1063
автор
Shadow count 1

А это и по сей день там есть?..
30 авг 19, 09:26    [21960285]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
o_v_a
Member

Откуда: Тула
Сообщений: 1063
... это я про ответ на Иваново
Ivan_Pisarevsky
что там в хидере базы? gstat -h
30 авг 19, 09:28    [21960286]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
Даниил
Member

Откуда: Челябинск
Сообщений: 1031
o_v_a
автор
Shadow count 1

А это и по сей день там есть?..
На рабочем сервере - да, пока есть теневая копия на отдельном ssd. Но на новом, где 2 pci-e ssd объединены в зеркало, я shadow уже делать не буду.
30 авг 19, 11:18    [21960384]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с подбором процессора для сервера  [new]
o_v_a
Member

Откуда: Тула
Сообщений: 1063
Даниил, это я к тому, что, быть может, какие-то неочевидные тормоза из-за тени могут быть
30 авг 19, 14:27    [21960587]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5      [все]
Все форумы / Firebird, InterBase Ответить