1С v8.1: Влияние HDD на быстродействие 1С:Предприятие 8.1
Ускорение работы 1С через оптимизацию размещения данных на HDD
О чем эта статья?
В ней мы поведаем о том, как ускорить работу с 1С путем лучшей реализации ее хранения и обработки на HDD.
Рассматривается только клиент-серверная версия 1С:Предприятие 8.1 с MS SQL Server.
Только кластеры файловой системы NTFS и блоки RAID массива (любого из видов RAID, даже RAID0) на ОС Windows Server 2003 и XP.
Данная статья не рассматривает RAW-partitions и обычные диски HDD, которые не входят в RAID-массивы с контроллерами, имеет не очень важное отношение к Windows Server 2008 и Windows Vista.
Желательно, чтобы размеры блоков и кластеров были одинаковыми: например, для БД SQL Server часто предлагают выбирать по 64 кб для кластеров и там, и там. Но, правда, первый кластер, то есть MBR - блок начальной загрузки, создает ОС, и его размер – 63 килобайта. Это является особенностью NTFS и ведет к тому, что каждый из последующих кластеров будет смещен на 1 килобайт, то есть все кластеры будут сдвинуты за границы блоков массива; поэтому чтение и запись всегда будут затрагивать не один, а два сектора, что будет увеличивать вдвое количество запросов ввода и вывода.
Почти все распространенные виды нагрузки ввода/вывода на MS SQL Server выигрывают от 9 до 23 процентов от оптимизации, описанной в этой статье
Как определить проблему?
1) Используя утилиту DiskPart. Больше о ней можно узнать на сайте Microsoft: http://www.microsoft.com/downloads/details.aspx?FamilyID=0FD9788A-5D64-4F57-949F-EF62DE7AB1AE&displaylang=en
Ее использование весьма простое: diskpart –i
Когда увидите число 32256, то понимайте, что 32256 разделить на 512 как раз 63; 512 – количество байт в секторе
2) Используя утилиту DiskExt; о ней также можно узнать с сайта Microsoft: http://technet.microsoft.com/en-us/sysinternals/bb896648.aspx
3) а также с использованием обработки NTFS.epf для 1С:Предприятие 8,1
Исправление геометрии RAID массива
1) Для начала, копируем всю, именно всю информацию с локального диска на другой локальный диск; допустим, эти диски у нас обозначены как D и E; для копирования необходимо использовать команду xcopy, указав параметры копирования файлов и папок, в том числе владельца файлов и ACL:
xcopy D:*.* E:DiskD /E /K /O /X
Запускаем управление дисками Disk Management и смотрим, какой именно физический диск соответствует D; например, D соответствует Диск1
В том же Disk Management удаляем логический диск D на физическом Диске1
2) ВАЖНО! Утилита DiskPart уничтожает данные с диска
В командной строке запускаем DiskPart и с ее помощью выполняем такие команды:
DISKPART> select disk 1
Disk 1 is now the selected disk.
DISKPART> create partition primary align=64 // не подходит для динамических дисков
DiskPart succeeded in creating the specified partition
DISKPART> exit
Тут команда create partition primary align=64 создает новый раздел, смещая первый кластер на 64 килобайта, ведь это позволяет выровнять границы кластеров и блоков; благодаря этому дисковая подсистема будет работать значительно быстрее
3) Создать диск в Disk Management
4) Скопировать все файлы назад, если нужно; команда для этого:
xcopy E:DiskD*.* D: /E /K /O /X
Более детальное описание работы xcopy на сайте Microsoft: http://technet2.microsoft.com/windowsserver/ru/library/edb837cc-e0db-4673-8c79-1a085cb3692c1049.mspx?mfr=true