Работает отказоустойчивый кластер Hyper-V из 2-х серверов (на Intel Xeon E5 2609, 16 Гб ОЗУ), на котором крутится виртуальная машина на Windows Server 2012 Standart, на ней 1C 7.7 и 8.3 нескольких конфигураций. Виртуальная машина кластеризована, находится на дисковой полке Synology.
Работает 10-30 пользователей одновременно. Обновили платформу 1С до версии 8.3.10.2753 и установили конфигурацию «Бухгалтерия государственного учреждения». Начались тормоза при формировании отчётов, 1-2 минуты минимум приходилось ждать, также долго запускается.
Дисковая полка поддерживает SSD кеширование, думаю попробуем ускорить ускорить систему установив твердотельные диски и добавить памяти, т.к. свободно было 1-2 Гб в среднем на виртуалке из 9 доступных для неё вначале.
Показываю тест скорости дисков до установки SSD диска для кэша и дополнительных модулей ОЗУ. Посмотрев монитор работы системы было заметно когда используют 1С ГБУ, сразу подскакивает обращение к диску. Причем когда сидит 15-20 человек — нагрузка до 5%, как только садится 1 пользователь 1С 8.3 ГБУ — подскакивает до 20%.
Добавил оперативной памяти, теперь на обоих серверах по 32 Гб, выделил 20 Гб под виртуальную машину с 1С.
Ставим SSD-диски на полку и запускаем SSD-кеш
Дисковая полка Synology RackStation RS2414+, обновил DSM до версии DSM 6.2-23739 Update 2, вместо дисков:
- RAID10 6*500 гб Hitachi Ultrastar A7K2000 HUA722050CLA330 – 1 пул и
- RAID10 6*2000гб Hitachi Ultrastar 7K4000 HUS724020ALA640 – 2 пул
Установил 10 дисков 4ТБ WD Red Pro WD4003FFBX в Raid 10, для SSD кэша буду ставить 2 SSD 2.5» Seagate XF1230-1A0480:
- Ёмкость 480 GB
- Тип памятиe MLC
- Максимальная скорость чтения 560 МБ/с
- Максимальная скорость записи 500 МБ/с
- Скорость случайного чтения (блоки по 4 кБ) 98000 IOPS
- Скорость случайной записи (блоки по 4 кБ) 15800 IOPS
Вставляю 2 диска в полку, создаю в диспетчере хранения SSD-кеш с помощью мастера, выбираю использовать для «чтение/запись», и кешировать массив дисков №1, на котором LUN-ы с виртуальными дисками, на которых крутится 1C.
Если кратко, то LUN это идентификатор, логический том внутри массива дисков, который для наших серверов, работающих в кластере виден как физический диск.
На форумах читал, что для корректной работы кэша 2 дисков такого же как у меня объема необходимо 16 Гб ОЗУ, у меня же 2 и максимум 4 может быть, посмотрим, что получится. С дисками можно было бы проще, 1 и на меньший объем я думаю.
Смотрим работу 2 дня, несколько дней. Настроек никаких нет
Увеличение скорости есть, для запуска 1С, формирования отчетов и прочее, заметно быстрее, но работа 1С ГБУ также идет медленно.
Тест Гилёва TPC-1C http://www.gilev.ru/tpc1cgilv/ показал 16.23 баллов.
Проведя тест скорости видим незначительные улучшения, так быть не должно, как будто SSD и нет.
Скорее всего это из-за того, что диск у виртуальной машины располагается на подключенном , созданный на и нужно было SSD-кеш не делать, а ставить машину на эти 2 физических диска в массиве RAID-1. По-пробуем.
Переносим виртуальный жесткий диск на SSD
Ради интереса, даст ли это прирост. Удаляем SSD кеш, создаём новый пул дисков, добавляем в него наши 2 SSD в RAID1.
Создаём новый Lun и сопоставляем с новым Target.
Заходим в Microsoft iSCSI Initiator, обновляем, появляется наш новый конечный объект, жмём подключить, ставим галочку на «добавить Favorite Targets», вводим CHAP имя и пароль, которые добавили при создании Target.
В управлении дисками делаем наш SSD массив «в сети», скопируем для теста виртуальные диски виртуальной машины на подключенный новый объект с SSD.
Замеряем скорость: стало даже хуже.
Если SSD кеш не помог и расположение виртуальных дисков на SSD массиве тоже, идём дальше.
SSD кеш дело интересное, но нам он не помог.
Перенос баз на SSD без виртуальных дисков
Предоставим SSD диски напрямую виртуальной машине через iSCSI.
Первый диск виртуальной машины — ОС, второй — базы данных, оставляем первый на пуле дисков в RAID10, второй виртуальный диск оставляем также и для сравнения подключаем третий диск как физический SSD массив напрямую.
С точки зрения производительности виртуальные диски IDE и SCSI друг от друга не отличаются. Я оставил IDE. Копируем базы на наш SSD.
Запускаем виртуальную машину и смотрим.
Из под сервера гипервизора виден неинициализированный диск, в виртуальной машине видим наш новый как бы физический SSD.
Кидаю туда базы, переписываю пути к ним в 1С, не забываем про права доступа на новые папки баз, чтобы не было APPCRASH у 1С при запуске.
Запускаю, тестируем скорость, пользователи при этом тоже работают. Тест Гилева дал 22 балла.
Может потому, что это из-под виртуалки? Тогда делаем тест скорости не из-под виртуальной машины, а напрямую из под папки — результат тот же. Думал разница в файловых системах, но BTRFS в общем работает быстрее EXT4, скорость немного выше у первой.
Дело в полке или настройках виртуальной машины. Ставлю базу с 1С к себе на компьютер (у меня 12 Гб ОЗУ, i5-4440, SSD), запускаю при работающих приложениях (занято ОЗУ 9 из 12) и проверяю как работает. Тест SSD показывает 523 на чтение и 156 на запись, тест Гилева:
В 2.5 раза скорость выше. Поэтому остаётся последний вариант: добавить в виртуальную машину физический диск, то есть на сервер напрямую его подключить, чтобы он был инициализирован, но в состоянии offline. Затем добавить его также как описано выше.
Дополнительные настройки
Отключил лишние регламентные и фоновые задания (новости, поиск и прочее) в 1С: в разделе «Администрирование» и в панели «Поддержка и обслуживание», может чуть меняться название.
Отключаем в ОС Dynamic Fair Share Scheduling: открываем PowerShell и запускаем команду
(gwmi win32_terminalservicesetting -N «root\cimv2\terminalservices»).enabledfss
Должно быть 0 — значит выключено. Открываем реестр и меняем в нем:
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System параметр EnableCpuQuota на 0
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Diskпараметр EnableFairShare на 0.
Спасибо http://blogmax.ru/blog/10-windows-server-2012r2-i-1s-8-3-medlennaya-rabota.html.