Почему база данных на локальном компьютере часто работает быстрее, чем на сервере   

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

Сразу же договоримся о том, что выведем за пределы формулы производительность сети, а сравнивать будем производительность работы -предприятия в терминальном режиме, либо запущенного с консоли сервера с производительностью базы расположенной локально на компьютере разработчика.

Итак, с чего начнем? Для начала представим себе аппаратное обеспечение среднестатистического сервера баз данных для 1С. Итак: 2 процессора Intel Xeon с частотой от 1,8 до 3 ГГерц, в среднем обычно в районе 2,2ГГц. Память – от 2 до 4 Гбайт DDR-200 или DDR-266, иногда в двухканальном режиме, дисковая подсистема на основе SCSI RAID в режимах RAID-1, RAID-5, RAID-10 (встречается реже) на внешнем RAID-контроллере либо на встроенном (встречается программное зеркало). Винчестеры, как правило, 10000 оборотов с кеш-памятью 8 Мбайт.

Теперь рассмотрим типовую машину разработчика. Как правило, это компьютер на базе Intel P4 - 2400-3200ГГц (лично я предпочитаю Athlon),512-1024 Mбайт памяти DDR 333-4000 в одно или двухканальном режиме, одиночный винчестер 7200 оборотов 2 или 8 Мбайт кэш.

Итак, начнем сравнивать. Для начала сравним процессоры и подсистему памяти. Исторически так сложилось, что процессорные технологии серверов следуют с опозданием за десктопными машинами. Если сейчас серийно продаваемый процессор для рабочего места – P4 Prescott с 512 Кб кэш-памяти второго уровня и 1 М третьего, работающий на частоте шины 800 МГц, то широко распространенный Xeon – имеет только 512Кб кэш-памяти второго уровня. Есть разновидности с кэш-памятью третьего уровня 1 или 2 Мбайта, но они не распространены широко, ввиду их дороговизны. Итак, что мы имеем по процессору. А имеем мы следующее – настольный процессор быстрее серверного как по частоте, так и по большинству параметров. Количество процессоров при регламентных операциях как правило, не имеет значения, так как с трудом поддается распараллеливанию, а если и поддается, то затраты на разборку – сборку ветвей превышают получаемое ускорение. Таким образом, при регламентных работах важна пиковая производительность отдельного процессора, а не общая производительность процессорной подсистемы.

Память, доступная для серверов и рабочих станций, тоже отличается. Как правило, на сервере работает память DDR200 - DDR266, в то время как на большинстве рабочих станций доступна DDR400. В данном случае для нас не имеет значения тот факт, что в серверах стоит более дорогая память с ECC коррекцией ошибок. То есть по подсистеме процессор – память однозначно выигрывает наша рабочая станция.

Объем памяти установленный на компьютере имеет значение, но не решающее. В нашем случае 1 Гбайта должно хватить, в то время как на память сервере (2-4 Гбайта) используется не только для одной выполняемой операции, но и для других баз данных. Тем не менее, больший объем памяти при большой базе данных – это преимущество.

Наконец, рассмотрим и сравним дисковые подсистемы. На сервере у нас аппаратное зеркало, или RAID-5, реже RAID-10. При регламентных операциях нагрузка будет происходить на чтение и на запись. При этом операций записи будет больше. Все вышеперечисленные дисковые массивы по скорости чтения превосходят одиночный диск. По скорости записи зеркало теоретически равно одиночному диску, а вот RAID-5 значительно уступает. RAID-10 значительно превосходит одиночный диск, как по скорости чтения, так и по записи, но, как уже было отмечено, он встречается довольно редко, во всяком случае, реже, чем зеркало. Таким образом, в большинстве случаев дисковая подсистема будет работать быстрее на сервере.

Особенностью регламентных работ для дисковой подсистемы является большой процент запросов на запись из общего количества дисковых операций, таким образом, если на сервере используется массив, чувствительный к запросам на запись (это RAID-5), то производительность его будет ниже, чем локального одиночного диска. Также важно, чтобы на дисках сервера было включено кэширование записи на диск, иначе производительность записи будет значительно ниже возможной. На локальном же компьютере, как правило, кэширование записи на дисках включено по-умолчанию. Таким образом, производительность дисковой подсистемы, при правильной ее настройке, будет выше на сервере.

Теперь подведем итоги и сделаем выводы. Итак, в чем преимущество сервера: в большем объеме памяти, но не в скорости ее работы, и, при правильно выбранных и настроенных параметрах, в большей производительности дисковой подсистемы.

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

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

Отсюда следует, что, если необходимо выполнить какую-то ресурсоемкую регламентную задачу с одной из баз, часто быстрее будет проделать ее не на сервере, а локально, на десктопе (например, компьютере разработчика), избежав падения производительности работы, как самой задачи, так и снижения производительности сервера в других задачах.

 


 

Перепечатка, воспроизведение в любой форме, распространение, в том числе в переводе, любых материалов с сайта www.softpoint.ru возможны только с письменного разрешения компании "СофтПоинт". Это правило действует для всех без исключения случаев, кроме тех, когда в материале прямо указано разрешение на копирование (основание: Закон Российской Федерации "Об авторском праве и смежных правах").