Ну собственно узкие места при многопользовательской работе более мене понятны и обсуждены, но у меня задача другая.
База Бухгалтерия 2.0. Сейчас файловая, будет SQL.
Проблема возникает при перепроведении документов за квартал, документов много, база за год вырастает до 10 Гб.
4 квартал прошлого года перепроводился 2 суток.
Я так понимаю, что сейчас основной затык встает на дисковой подсистеме? Т.е. прежде всего вынос базы на ССД диски дас какой-либо значимый прирост?
А процессор оказывает какое-либо значимое влияние или все же винты не успевают?
Т.е. вопрос какие параметры при покупке нового сервера стараться выбирать максимальные, понятно что бюджет всегда стараются ограничить. Т.е. на чем можно экономить, а на чем нет?
(1) FreeArcher,
Советую перечитать коментарии вот к этой публикации.
В однопользовательском режиме десктопный Core i5 рвёт 2х Xeon'ы.
Нужен ПК с "Наибольшей скоростью Запись/Чтение оперативки + Наибольшая частота Ггц Ядер процессора"
(3) FreeArcher,
из личного опыта при использовании быстрого современного HDD SATA3 в файловом однопользовательском режиме для перепроведения на скорость перепроведения больше влияет "скоростью Запись/Чтение оперативки и частота Ггц Ядер процессора" (количество ядер не важно)
25.
Gilev.Vyacheslav
191528.05.13 17:37 Сейчас в теме
(1) FreeArcher, закрытие месяца (восстановление последовательности) достаточно "специфическая" нагрузка. Железо может ускорить этот процесс, но не сильно. По многократному опыту рекомендуем править код, он даст на порядок больше прироста производительности.
Пример http://www.gilev.ru/teremok/
Много ОЗУ надо, создать в ней RAM Disk, присвоить имя диску, кинуть туда базу и там перепроводить. А также удалить файл подкачки винды. И для пущей быстроты темповые директории тоже разместить в RAM. Мы так делали для 77 файловой, производительность вырастает, процентов на 30.
на сервере 2х Xeon E5520 вынос базы на RAM Disk дал не более 10%.
перенос на десктоп с Core i5 дал почти 50%.
в файловом однопользовательском режиме для перепроведения
Тут есчо важный момент - я делал для 77 версии файловой, а она как все мы знаем использует огромное количество фалов для хранения таблиц, поэтому у меня был такой не плохой результат. Конечно для файловой 8ки с одним файлом, динамика будет меньше. Но она будет))) Иногда и 10% это очень хороший результат)))))
(9) alhin,
я ни коим образом не отрицаю прирост производительности при использовании RAM Disk. Да для 1сv77 особенно хороший результат был.
я рассказываю про свой опыт использования перепроведения УТ10.3
(10) FreeArcher,
На сервере(2х Xeon E5520):
SQL - 24
Файловая - 40
Файловая RAM Disk - 45
На десктопе(Core i5):
Файловая - 75
база в оперативу не влазит, поэтому в RAM Disk не загонял.
Сделал сейчас у себя в файловом варианте и SQL: 40 и 24 соответственно. Почти в 2 раза.
Хотя так же тестировал на проведение квартала, разница фаловая база и SQL вышла 6 часов и 6:30, соответственно, т.е. 8% всего.
На счет "затыков" смотрте в логи мониторов производительности. По себе могу сказать, что корости винта вполне хватает. Проблема в процессоре. 1С не понимает многоядерности и валит все в один процесс. Поэтому современные процы не эффективны на этом убожестве. Оптимизируйте базу. Это единственный выход. Железо вам здорово не поможет.
Половина проблем с производительностью была в процедуре ЗаполнитьЗапросПартийНаСкладахУпр, правил запрос.
Актуально только для УТ 10.3, для БП 2.0 должны быть другие решения.
(18) Это понятно, что в запросе по партиям. И думаю принцип одинаковый, что в УТ что в других решениях.
Я же не код спрашиваю, а направление, просто мне не совсем понятно куда ещё можно оптимизировать запрос, ведь как не крути ему нужно получать все остатки в разрезе партий...
(19) FreeArcher,
убрал вложенные запросы, переделал на временные таблицы.
убрал всё что касается серий номенклатуры, статусов партии, качества номенклатуры (особенно меня смущало проверка на ПустоеКачество)
всё что убрал не используется в организации, по серийного учёта нет, По Ордеру ничего не списывается, резервов нет.
(21) Ну да не универсальное, но хоть знать что копать.
Дам ещё в цикле перебор таблицы или даже дерева партий делается, ты этот механизм оставлял?
Я вот думаю может вобще все попробовать одним запросом сделать, как в простых примерах в книжках, типа у Радченко.
(22) FreeArcher,
В УТ 10.3 замер производительности показывал что большую часть времени ожидания было при выполнении запроса, циклы и переборы дерева партий выполнялись гораздо быстрее.
В БП 2.0 полез и что-то аналогичного запроса не нашёл :(
Сделай замер производительности при проведении документа которых больше всего в базе или которые медленней всего проводятся, посмотри что конкретно тормозит, дальше уже будет понятно что оптимизировать.
(19) FreeArcher, (21) KroVladS, там где-то в начале идет соединение с виртуальной таблицей. Точно не помню, с какой, что в плане - тоже уже не помню. Предварительная выборка по параметрам запроса из нее в ВТ дает прирост порядка 40%.
В однопользовательском варианте критерием будут 2 вещи, это тактовая частота процессора, и скорость обмена с жестким диском. Вместо жесткого диска лучше использовать SSD. Ну и памяти минимум 4Гб.
даже не обязательно SSD - взять нормальный рейд контроллер из адаптеков ($300) и 4 обычных винта в рейд 5й - скорость всех операций приятно увеличиться.
Да тут все просто и без всяких замеров производительности.
Нужна тактовая частота процессора 3-го поколения от интел типа Intel® Core™ i7-3770 Processor
и ссдшка типа ocz revodrive 3 x2
ну и оперативки в два раза больше чем сама база. Если при проведении идет много вычислений то лучше
прикрутить к sql-лу.
и конечно парочка обычных винтов в зеркале для бэкапа базы в режиме реального времени каждые 5 минут.
(32)
Вроде, я понял в чем дело. :-)
Ваши "админы" путают линейки процессоров "Core i3" и "Xeon E3".
Это разные линейки. Хотя и "Core i3" поддерживает ECC память.
Вот сравнение "схожих" процессоров обеих линеек:
http://ark.intel.com/compare/74746,65729 Похожие характеристики? :-)
Но, я говорил о "Xeon E3"...
(37) hogik, да нет, вы наверное не совсем правильно их поняли, у них админы брутальны, Xeon E3 - по сути бюджетный слабенький серверный процессор. Не под стать например Xeon E7-8870.
(27) FreeArcher,
Использование серверных процессоров для данной задачи мягко говоря неоправданно.
Во первых снизится производительность, во вторых банально дороже выйдет.
(30)
"Использование серверных процессоров для данной задачи мягко говоря неоправданно.
Во первых снизится производительность, во вторых банально дороже выйдет. "(с) Артем (Bears).
1) Серверный процессор берут ради поддержки ECC. Т.е. повышают достоверность результата вычислений.
2) В (28) сообщении краткая информация по полноценной WS. И её скорость не уступает аналогичному по частоте "игральному" процессору". А железо - серверное в той части которая интересует автора темы.
3) Цена такой WS отличается процентов на 10-25 от аналогичной "игральной". Естественно, если самому собирать компьютер. ;-)
Проц - i5 оптимально, от i7 значительного прироста не будет.
Диск желательно SSD, хотя пойдет и отдельный HDD под базы. Просто в случае с SSD дисковая подсистема гарантированно не будет узким местом.
Ну и достаточно памяти, память сейчас достаточно недорогая, а много ее не бывает.
Вот собственно и все.
Систему и базы желательно держать на SSD, отзывчивость интерфейса улучшается серьезно, время проведения в 1с по сравнению с HDD тоже улучшается, но не так уж заметно, т.к в однопользовательском режиме диск не самое узкое место.
Все эти игры с созданием диска в памяти, не более чем игрушки - скорость по сравнению с SSD не вырастет, а проблем добавится.
И ни в коем случае не отключайте файл подкачки, его отключение никак не ускорит работу системы!