Для начала предлагаю выделить несколько сценариев работы:
1.) Работа с файловой базой через общий ресурс (веб-сервер)
2.) Работа с файловой базой в терминале
3.) Работа с серверной (MSSQL) базой
Работа с файловой базой через общий ресурс (веб-сервер)
Здесь всё довольно таки просто. Если это обычные формы и 1-3 пользователя. То на "сервер" (машина, на которой будет лежать база выбираем:
- быстые винты - обращаем внимание на скорость вращения шпинделя (берем 7200rpm). Например, не берем у WD серию green, берем black или red. У Seagate можно посмотреть серию Constellation.
- Процессор - не столь важны ядра, как их частота. 1С довольно таки плохо использует многоядерность(вообще никак), поэтому выгоды от 8ми ядерного процессора вы не получите, 2ух-ядерный процессор с бОльшей частотой уделает его. Например, core i3 4360 - на текущий момент это максимальная частота у intel (4ghz в turbo режиме).
- Оперативная память - роли она тут не сыграет. Учитывая как современные приложения пожирают память, поставьте 8гб
- сеть - ну собственно, от 1гбит сети особо вы не выиграете, но тем не менее, если растянута 8ми жильная витая пара (можете посмотреть в коннекторах), то имеет смысл поставить гигабитный коммутатор, заодно будет быстрее файлообмен.
И последний штрих в этом сценарии - не нужно размещать базу где-то на отдельной машине - длительные операции будут выполняться намного быстрее локально, чем по сети. Поставьте эту машину на рабочее место, откуда планируется, например,закрывать месяц или производить обновления ИБ.
Другой момент, если база на управляемых формах. Вот тут уже если всё сдалать как описано выше, получатся тормоза. Но тем не менее выход есть:
- SSD накопитель* вместо обычного винта нас спасёт. Возьмите накопитель на 120гб, благо даже с учетом роста курса стоят они приемлемо. Рекомендую обратить внимание на intel 520/530 series, kingston v300. А лучше просто почитайте обзоры на свежие модели, т.к. этот рынок довольно быстро развивается и на рынок выходят новинки
*Примечание: Если будете объединять диски в RAID с зеркалированием, например,RAID1. В этом случае есть такой момент: большинству SSD дискам требуется trim для очистки мусора(в основном, касается довольно старых моделей), в режиме raid команда может не поддерживаться и накопитель по мере работы будет деградировать в скорости. Чтобы избежать этой проблемы можно воспользоваться минимум двумя способами: в идеале, приобрести SSD enterprise уровня, например, intel DC3500. Если это покажется дорого можно использовать связку: мат.плата с чипсетом <Z77 и накопитель Intel 530 series + утилита intel rapid storage. В такой конфигурации команда trim будет работать. Учитывайте, что накопитель 530 серии предназначен для десктоп систем и не рекомендуется при больших объемах перезаписи. - Процессор- аналогично с предыдущим пунктом. Чем больше частота тем лучше.
- Оперативная память - большой роли она тут не сыграет. Учитывая как современные приложения пожирают память, поставьте 8гб
Если с базой будет работать локально 1 пользователь то этого достаточно для его комфортной работы, но скорость сетевой работы через общий ресурс будет всё так же медленной. Но и здесь есть выход - работа через web сервер. На просторах интернета вы сможете найти большое количество статей, где описывается как организовать работу с 1С подобным образом, не буду останавливаться в данной статье на этом. Единственное, поделюсь с Вами своими наблюдениями: предпочтительнее настроить работу у пользователей не через web-браузер, а через тонкий клиент (когда добавляем в список ИБ новую базу, на странице размещения ИБ есть пункт "на web сервере"). Это, по моим наблюдениям, быстрее чем через браузер. Кроме того при работе через браузер встречаются ошибки в интерфейсе (съехавшая ТЧ и т.п.), которых нет при работе через тонкий клиент.
Собственно, воспользовавшись данным рецептом (ssd,процессор с большой частотой,web-сервер,тонкий клиент). Можно развеять миф "если число пользователей больше 1 (по некоторой версии больше 0 :) ) - нужна серверная база*.
*Хотя, конечно, с оговоркой что это не УПП или база размером > ~4гб, а количество пользователей не превышает 4 (это максимальные размер базы и количество пользователей, которые видел я, возможно кто-то встречал случаи, когда через web-сервер с файловой базой работало больше человек? Напишите в комментариях)
Работа с файловой базой в терминале
Перейдем к следующему варианту. У нас есть терминальный сервер и есть файловая база. Здесь всё аналогично сценарию 1 за исключением процессора:
- SSD накопитель вместо обычного винта.*
*Примечание: обязательно соберите в диски в RAID с зеркалированием, например,RAID1. В этом случае есть такой момент: большинству SSD дискам требуется trim для очистки мусора(в основном, касается довольно старых моделей), в режиме raid команда может не поддерживаться и накопитель по мере работы будет деградировать в скорости. Чтобы избежать этой проблемы можно воспользоваться минимум двумя способами: в идеале, приобрести SSD enterprise уровня, например, intel DC3500. Если это покажется дорого можно использовать SSD пользовательского класса, но тогда убедитесь, что его ресурс перезаписи достаточен для вашего сценария работы. - Процессор- Здесь имеет смысл взять corei5 вместо i3, т.к. 1С будет работать на терминале, дополнительные 2ядра не помешают, но не забываем и про частоту.
- Оперативная память есть такое устойчивое выражение у админов: памяти много не бывает ). Из моей практики 7 человек при работе в БП3 занимают 8-12гб на терминале (зависит сколько документов открыто у каждого пользователя). Для обычных форм количество памяти можно поделить на 2 :).Примерный расчет можно сделать так: 256мб для самой терминальной сессии + 1,5гб для 1С
Работа с серверной (MSSQL) базой
Этот сценарий наиболее сложный и, пожалуй, требует отдельной статьи. Предлагаю в рамках данной статьи рассмотреть только базовые принципы, которые влияют на производительность
- Размещение SQL сервера и сервера 1С. На разных машинах или на одной. Есть такой момент: если они находятся на одной машине, то общение между ними происходит через протокол shared memory, и в этом случае мы получаем бонус в быстродействии, которого нет, когда они находятся на разных машинах.
- Процессор. А вот здесь уже пригодится и высокая тактовая частота и многоядерность. Т.к. у нас есть процесс SQL сервра, если он на этой же машине, и несколько процессов сервера 1С rphost которые будут загружать ядра процессора.Отдельно хочу выделить двухпроцессорные системы (т.е. когда на мат.плате два сокета для и более сокета). Даже если берете с одним пустым сокетом "про запас, докупить процессор потом, если вдруг понадобится". Я видел большое количество двухсокетных серверов, которые до глубокого end of life так и простояли с пустым вторым сокетом. Хотя, если фирма платит...зачем отказывать себе в удовольствии :)
- Оперативная память. В своей работе SQL сервер* активно использует оперативную память, если её недостаточно, он будет лезть на диски, которые даже в случае ssd медленее оперативной памяти. Поэтому тут на памяти экономить не стоит. Заложите в бюджет максимально возможное количество (не забываем, конечно о здравом смысле :) ), и оставьте свободные слоты на материнской плате, чтобы иметь возможность всегда доставить дополнительную планку.
*Примечание: не забудьте ограничить максимально используемую SQL сервером ОЗУ, чтобы её хватило для ОС и терминальных сессий, а также увеличьте шаги увеличения tmp и базы SQL (по-умолчанию шаг 1мб, что очень мало, установите 200 МБ на базу и 50 МБ на лог) - Дисковая подсистема. Может появится мысль, что если объем ОЗУ будет больше размера базы, то она вся будет лежать в памяти и всё будет летать. Оно может так и было бы...до первой операции записи :) которая будет писать на диски. И вот тут то жесткие диски обломают вас :) Используйте SSD диски. И вот тут уже не экономьте не десктопных SSD, приобретите нормальные SSD enterprise уровня. Intel DC3700 -200гб,ресурс 3.7 петабайта (по 10 перезаписей всего объема накопителя в день в течение 5 лет), можно найти за 24000р/шт+второй для RAID1=48000. На лицензии уйдет во много больше.
Вроде всё. Если вопросы/жалобы/предложения - wellcome в комментарии ;)