|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
Даниил, ужас!!! Если реально добавление одного заказа занимает 6 секунд всю эту фигню надо срочно переписать. Оно должно длится не более одной десятой секунды. Название таблиц TABLE_N просто умиляет. Это ORM что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 08:39 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
Даниил, вам надо оперативной памяти нарастить и увеличить размер страничного кеша для начала, но не более чем до 2048 страниц (это для классика). Перейдёте на 3.0 SS там можно кеш задрать посущественней. У вас там на вставку одного заказа только 97 067 дисковых чтений!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 08:43 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
Симонов ДенисДаниил, ужас!!! Если реально добавление одного заказа занимает 6 секунд всю эту фигню надо срочно переписать. Оно должно длится не более одной десятой секунды. Название таблиц TABLE_N просто умиляет. Это ORM что ли? Нет, в реальности названия таблиц вполне осмысленные. В статистике подчистил на всякий случай. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 08:48 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
Симонов ДенисУ вас там на вставку одного заказа только 97 067 дисковых чтений!!!Для каждой позиции подтягивается свой прайс, где цена рассчитывается по нескольким параметрам (в т.ч. агрегациям по 2 немаленьким таблицам) и подтягиваются правила добавления для каждой позиции (у разной добавляемой позиции может быть различный механизм добавления сопутствующих параметров в одну/несколько таблиц (разные сущности). Про оптимизацию понял. Пересмотрю, что можно переделать на хранимые агрегации и число чтений уменьшить. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 08:59 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
Симонов Денисвам надо оперативной памяти нарастить и увеличить размер страничного кеша для начала, но не более чем до 2048 страниц (это для классика). все равно не поможет, если 1.5 гига с диска поднимается ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 09:19 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovДаниилКроме оптимизации DDL и запросов с клиентов где по вашему мнению у меня прям ужас ужасный? 2. Неспособность выяснить чем занят процессор когда он занят. Можете подсказать, каким инструментом это можно посмотреть? Я могу посмотреть только имя и ID процесса и не понимаю как это можно использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 09:22 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
ДаниилДля каждой позиции подтягивается свой прайс, где цена рассчитывается по нескольким параметрам (в т.ч. агрегациям по 2 немаленьким таблицам) и подтягиваются правила добавления для каждой позиции (у разной добавляемой позиции может быть различный механизм добавления сопутствующих параметров в одну/несколько таблиц (разные сущности). Про оптимизацию понял. Пересмотрю, что можно переделать на хранимые агрегации и число чтений уменьшить. Вот с этого и надо начинать. Агрегировать каждый раз при добавлении позиции это онанизм какой-то. Во-первых прайсы так обычно не пересчитывают, хотя бы потому что плавающая цена в течении дня это не очень хорошо. Я не знаю что там у вас за бизнес правила, но скажу что делал я одного оптовика фарм препаратов. У них розничный прайс пересчитывается на оприходовании, а оптовый раз в неделю. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 09:37 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
ДаниилОбычный компьютерЕсли не экономить на комплектующих, то сервер не всегда обязателен. Даниил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.03.2019, 10:33 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
ДаниилМожете подсказать, каким инструментом это можно посмотреть? WinDbg, Process Explorer. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 12:45 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 12:48 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
tunknownВидимо, Process Monitor Нет, монитор годится для выяснения "чем занят диск/сеть/реестр". Для процессора нужны стэки нагруженных потоков из эксплорера или отладчика. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 12:51 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
Дегтярев ЕвгенийDmSerОткуда такая нагрузка на SSD, если вся база закеширована в памяти? откуда она там возьмется kdvDefaultDbCachePages = 384 маловато как-то. База в ОЗУ в файловом кэше ОС. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 13:12 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
Дегтярев ЕвгенийСимонов Денисвам надо оперативной памяти нарастить и увеличить размер страничного кеша для начала, но не более чем до 2048 страниц (это для классика). все равно не поможет, если 1.5 гига с диска поднимается ну может хоть верхние уровни индексов оставаться будут ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 13:17 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
Симонов ДенисДаниилДля каждой позиции подтягивается свой прайс, где цена рассчитывается по нескольким параметрам (в т.ч. агрегациям по 2 немаленьким таблицам) и подтягиваются правила добавления для каждой позиции (у разной добавляемой позиции может быть различный механизм добавления сопутствующих параметров в одну/несколько таблиц (разные сущности). Про оптимизацию понял. Пересмотрю, что можно переделать на хранимые агрегации и число чтений уменьшить. Вот с этого и надо начинать. Агрегировать каждый раз при добавлении позиции это онанизм какой-то. Во-первых прайсы так обычно не пересчитывают, хотя бы потому что плавающая цена в течении дня это не очень хорошо. Я не знаю что там у вас за бизнес правила, но скажу что делал я одного оптовика фарм препаратов. У них розничный прайс пересчитывается на оприходовании, а оптовый раз в неделю. Цена на 1 позицию берется из прайса клиента на определенную дату, далее высчитывается скидка на эту позицию (по своему алгоритму выдачи возможной скидки на каждую из позиций) исходя из общей накопленной суммы за незакрытый период (месяц) и сравнивается, укладывается ли вся ненакопленная сумма незакрытого периода в ограничение по клиенту и далее ветки действий по каждому возможному случаю. Все это должно быть "онлайн" без дискретных периодов пересчета (день-неделя-месяц). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 13:21 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
tunknownЛучше аппаратная плата RAID1 на 2 HDD или RAID10 на 4. Тогда будет до 4 потоков на чтение и до двух на запись. Винчестеры лучше выбирать классом повыше. ДаниилНа механических винчестерах оно будет тупить настолько безбожно, что можно даже не начинать. HDD это опечатка? Даниилкаким инструментом это можно посмотреть?Смотреть надо на вкладку "перфонанс аналитика" а эксперте. Не забивай голову всякой хренью тпа "чем занят проц" и так ясно, что он агрегирует данные и это надо вынести в хранимый агрегат и подновлять его в фоне. Немного нивелировать проблему может помочь переход на 3 ss и разгон закэшированных страниц до примерно половины ОЗУ. Добавление памяти до 64 гб (в десктоп врядли влезет больше), когда не хватит 64 купите полноценную серверную железку. Отдельно ПРОЦ менять нет НИКАКОГО смысла. Из того, что можно сделать быстро, это сгонять в магазин и купить 4 планки по 16 гиг. Если бы была маркировка матплаты можно было сказать точнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 14:47 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
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.03.2019, 15:46 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyНа механических винчестерах оно будет тупить настолько безбожно, что можно даже не начинать. HDD это опечатка?Зависит от нагрузки. Если отдаётся много мелких непоследовательных наборов данных, то RAID 10/4 HDD не будет быстрее. Если отдаются большие последовательные данные, то 4 медленных потока могут стать лучше одного быстрого. Запись тоже имеет свои особенности. Не учитывая этого можно вынести бюджет TBW за месяц. Но держать OLTP базу на SSD- это либо нонсенс, либо предмет гордости администратора, что у него все процессы не хуже Tier 3 и есть горячий резерв с гарантированным простоем не больше минут. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 15:54 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyНа механических винчестерах оно будет тупить настолько безбожно, что можно даже не начинать. Я уже почти собрался менять SSD на RAID5 или RAID10 на механических HDD (есть в наличии, на другом мало используемом сервере). Раньше все такие рейды были, чем плохи? Лучше по вашему выбрать вариант RAID на SSD? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 15:58 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
15.03.2019 15:58, Даниил пишет: > Лучше по вашему выбрать вариант RAID на SSD? денех не хватит. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 16:02 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
ДаниилТ.е. для 100-150 клиентов покупать серверный xeon на более десятка ядер при нормально спроектированной и оптимизированной БД не имеет смысла? Имеет. Но если только купить новый сервер и ничего не переделывать результат может разочаровать. Ожидание всё должно работать в 5 раз быстрее, на деле оказывается в 2. А сервер то дорогой. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 16:05 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
ДаниилЕсть смысл стремится к тому, чтобы весь объем БД влезал в ОЗУ?Не уверен, что используемая версия СУБД имеет собственное полноценное кеширование, как ведёт себя ОС- отдельный вопрос. Всегда существуют части, котором обязательно нужно сбросится на диск. И размер данных не всегда позволяет. ДаниилКак это посмотреть? Посчитать по MON$TRANSACTIONS? Но там только активные будут.Что-то подобное fbprofiler , вероятно, будет полезным. ДаниилТ.е. для 100-150 клиентов покупать серверный xeon на более десятка ядер при нормально спроектированной и оптимизированной БД не имеет смысла?Если количество одновременных запросов превышает в полтора раза количество ядер под СУБД более 2-3% рабочего времени или это происходит подряд или попадает на какое-нибудь закрытие смены, то проблему придётся решать. Сервер на нескольких W-3175X - это самое дешёвое решение в смысле усилий программиста. Например, если при открытии документа на редактирование тянется куча редкоизменяемых справочников и эти справочники обновляются не их основными потребителями, то их можно положить на отдельный компьютер под репликацией. Пусть приложение ходит на 2 сервера. Или кешировать в локальный, например, sqlite. Тем более, что софт самописный. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 16:21 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
15.03.2019 16:21, tunknown пишет: > то их можно положить на отдельный компьютер под репликацией. вася, шел бы ты отсюда... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 16:23 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
ДаниилRAID5Лучше не стоит. Зеркала или RAID 10 вполне достаточно. ДаниилЛучше по вашему выбрать вариант RAID на SSD?И будут они жить долго и счастливо, пока не умрут в один день или раньше, от кривизны в прошивке. Или придётся следить за графиком ротации, следить за деградацией и подтягивать процессы к Tier 3. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 16:25 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
ДаниилТ.е. для 100-150 клиентов покупать серверный xeon на более десятка ядер при нормально спроектированной и оптимизированной БД не имеет смысла?Серверное железо это не только "дорого" и "много ядер/памяти", это еще и мониторинг, ЕСС память, ипми, сдвоенные БП и т.п. ДаниилЯ уже почти собрался менять SSD на RAID5 или RAID10 на механических HDD (есть в наличии, на другом мало используемом сервере). Раньше все такие рейды были, чем плохи?механический диск выдает на гора примерно 100 операций в секунду, если повезет до 200. тем и плохи рэйди старые они медленные, посмотри сколько ты ты уже укушал иопсов и сравни с чиселкой 100. Да рэйд за счет кэширования в самом контроллере может выдавать куда интересней циферки, но как только пошел обмен именно с блинами, а не с ТББУ то см. выше про 100. tunknownНо держать OLTP базу на SSD- это либо нонсенстак и запишем - теоретег. ДаниилЛучше по вашему выбрать вариант RAID на SSD?мы сейчас упаковали свои серверы интеловыми ссдшками 4610 в зеркало+хотспар на адптеке получилось вполне себе шустро. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 16:50 |
|
Помогите с подбором процессора для сервера
|
|||
---|---|---|---|
#18+
tunknownИ будут они жить долго и счастливо, пока не умрут в один день или раньше, от кривизны в прошивке.прислать наложенным платежом дюжину-другую дохлых ХДД? диски что хдд, что ссд это расходный материал, да за ними надо планово следить и планово заменять. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2019, 16:53 |
|
|
start [/forum/topic.php?fid=40&msg=39786412&tid=1560591]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 152ms |
0 / 0 |