Компьютеры(условное название) участвовавшие в тестах - описание (диски указаны только для БД):
(уточнение между серверами сеть 1 Гбит)
1) IT33 - десктоп на Core i5 4 ядра по 2.8 Ггц, DDR3 3 ГБ, один жесткий диск 7200 об/с.
2) REAL - САМЫЙ МОЩНЫЙ как мне думалось)) 8 ядер Xeon по 3 Ггц, DDR2 48 Гб, RAID10 на SSD
3) REAL2 - 8 ядер Xeon по 2 Ггц, DDR2 22 ГБ, RAID10 на жестких дисках SAS 10 000 об/с
Были проведены тесты в конфигурации 1с от Гилева:
"Сервер SQL"--->"Сервер 1с"--->"Оценка" + "Имя клиентского компьютера(если не указан то Он Же - певый в списке)"
>1)REAL2--->REAL2--->25.64(TCP--SQL)
>2)REAL2--->REAL2--->26.32(SQL--Shared Memory)
>3)REAL2--->REAL2--->25.64(SQL--Shared Memory) + IT33(клиент) - от клиента до Серверов сеть=10 Мбит
>4)REAL2--->REAL2--->24.27(SQL--Shared Memory) + REAL(клиент) - хм.. странно сеть 1 Гбит... почему же меньше попугаев..
>5)REAL2--->REAL2--->37.59(Файловый)
********************************
>1)REAL--->REAL--->8.73(TCP--SQL)
>2)REAL--->Real2--->11.99(TCP--SQL) --- это уже начало меня наводить на некоторые мысли))
>3)REAL--->REAL--->17.48(Файловый)
************************************
>1)IT33--->IT33--->26.88(TCP--SQL)
>2)IT33--->IT33--->34.72(SQL--Shared Memory)
>3)IT33--->IT33--->59.52(Файловый)
Итоги:
Смотрел результаты теста ... крутил и так и сяк)) и вот осенило (сделал замеры скорости работы Оперативной памяти),
что на скорость работы 1с 8.х (замечу что Результаты Теста основаны на ОДНОПОЛЬЗОВАТЕЛЬСКОМ режиме, но и для клиент-серверного варианта при многопользовательской работе - думаю также будут иметь немалую долю влияния) -
итак на скорость 1С влияет: частота шины CPU + частота RAM памяти
----> что влияет на скорости ЗАПИСИ и ЧТЕНИЯ в RAM. Что и есть основа быстродействия 1с 8.х.
Компьютеры разделившие призовые места По скорости работы 1с))
1)IT33--->IT33--->59.52(Файловый)
- RAM DDR 3 (Чтение 11089 Мб/с, Запись 7047 Мб/с)------ как я и предпологал разница будет значительной с серверами
2)REAL2--->REAL2--->37.59(Файловый)
- RAM DDR2 (Чтение=3474, Запись=2068)
3)REAL--->REAL--->17.48(Файловый)
- RAM DDR2 (Чтение=1737 Мб/с, Запись=1042 Мб/с) - как выяснилось скорость ниже чем на Real2 - ровно в 2 раза,
из за включенных Виртуальных ядер (Гипер-трейдинг)- будем скорее всего отключать.
ВЫВОДЫ:
Наибольшая скорость работы 1с 8.х достигается:
I) для Файлового варианта (мне лично неинтересен)
а)запуск Клиента(любого) на компьютере с большой скоростью работы с Оперативной памятью. (например Терминальный сервер
+ БД тамже).
II) для Клиент-Серверного варианта
1) Толстые клиенты 1C на "Терминальном сервере" - с Наибольшей скоростью Запись/Чтение оперативки + Наибольшая частота Ггц Ядер процессора
2) Тонкие клиенты 1C - уже нет особой разницы где... но желательно настроить через "HTTP://".
3а) "SQL сервер" +"Сервер 1с предприятия" (в режиме Shared Memory) - на одной тачке с Наибольшей скоростью Запись/Чтение оперативки + Наибольшая частота Ггц Ядер процессора + желательно ипользование RAID на SSD-дисках
Уточнения:
- поддержка Shared Memory - появилась на движке начиная с 8.2.17 (ВНИМАНИЕ в конфигурации - не должен быть включен режим совместимости с предыдущими версиями движка), на предыдущих движках будет использоватся Naimed Pipes - тоже показывающий неплохие результаты))
- RAID на SSD дисках - целесообразно использование RAID10 - для отказоустойчивости, при этом беря в расчет ШРАФ на Запись:
пример RAID10 (4 шт Штраф записи=2) , Скорость Записи= 4/2 = 2 диска, Штрафа на чтение нет.
- еще можно дополнительно поднять надежность и стабильность скорости SSD - используя не весь объем диска.
пример(поднятие надежности Десктопного SSD до уровня Серверного SSD):
Если к примеру, SSD Intel 520 series 120GB, и разметить 81 GB, а остальное пространство оставить неразмеченным -
то под over provisioning будет выделено около 32% пространства SSD дополнительно к уже имеющимся скрытым 8%. Итого получаем около 40%
Отличие серверного SSD Intel 710 series от десктопного SSD Intel 320 series как раз и составляет разница в over provisioning: более 40% для Intel 710 и 8% Intel 320.
Если клиентов 1С много от 100 и далее:
1)На текущих технологиях сети Ethernet - НЕ ЦЕЛЕСООБРАЗНО ранесение "SQL""Сервер 1С".
например из-за Латентности(задержек) в сети Gigabit Ethernet - реальная скорость обмена с SQL= 30 Мегабайт/с - что мало даже для интенсивной работы с Базой Данных 1-го пользователя.
рисунок
2)Т.к. фактически "Сервер 1с"="Объектная СУБД"(многомерные объекты), а "SQL"="Реляционная СУБД" (плоское -табличное хранение данных)
=> в базе SQL -хранится ПЛОСКАЯ проекция Объектов 1С и Сервер 1С собирает из этой проекции Объект, далее проводит работы с этим Объектом и наконец по завершении работы Опять раскладывает в плоский вид сохраня в SQL.
То как следствие между "SQL""Сервер 1С" - и приходится отказыватся от разнесение на два физических сервера. Но можно использовать по полной реализацию NUMA-узлов. (Это должна поддерживать OS и сами процессоры).
рисунок
3б) Разносим сервера SQL и Сервера 1с отдельно: На текущих технологиях Ethernet - например Gigabit - НЕ ЦЕЛЕСООБРАЗНО
-SQL на сервер с Наибольшей скоростью Запись/Чтение оперативки + Наибольшая частота Ггц Ядер процессора
-Несколько ФИЗИЧЕСКИХ серверов в Кластере 1с c Наибольшей скоростью Запись/Чтение оперативки + Наибольшая частота Ггц Ядер процессора + желательно ипользование RAID на SSD-дисках