1С сервер приложений, MS SQL и RPHOST
Введение
Многие в поисках ответа на данный вопрос (почему тормозит 1с sql) находят множество информации. Полезной и не очень. Тут я хочу поделиться своим непосредственным опытом работы с данной системой построенной на СУБД SQL Server.
Вообще тема SQL и 1с достаточно обьемная и обширная. Если вам действительно нужно научится работать с этой связкой, устанавливать ее или настраивать, то нужно набраться терпения, и читать читать. Эта статья отчасти раскроет тему, и даст ответы на вопросы касаемо именно производительности железа в связке с софтом. Чтобы более четко представлять о том как именно работает файловая база или SQLная база программ 1с можно, даже скорее нужно прочитать статью SQL Server для 1С, sql 1c 7.7, sql 1c 8.1 данный материал взят с сайта миста.ру, эту статью очень много куда уже скопировали, но я ее не просто копировал, я ее переработал и дополнил, как раз по окончанию первого апгрейда основного сервера. Так что статья обязательна к прочтению.
Для понимания причин, вызывающих медленную работу 1С на базе СУБД SQL Server нужно уяснить несколько простых вещей.
- Железо, сервер, на котором все крутится
- Софт, операционная система, СУБД, сервер предприятия, платформы клиентов.
- Конфигурация базы данных 1С
- Размер базы данных (как в файловом варианте, так и в СУБД)
- Количество пользователей
Тут же возникнут вопросы а как рассчитывать конфигурацию сервера исходя из размера базы, и количества пользователей??? Каковая же оптимальная конфигурация сервера для 1С.
Выбор конфигурации сервера для 1С
Приведу информацию, которой отрыто делиться разработчик 1с. В табл. 1 приведены наиболее типичные параметры серверов которые используют в качестве сервера баз данных, (данные получены по результатам опросов).
Это минимальные требования, и на таком конфиге нормально будет работать база размером не более 5 гигабайт и количество пользователей не более 10.
На основании анализов проведенных внедрений конфигурации «Управление торговлей» и аналогичных решений, а также на основании оценок специалистов, имеющих достаточный опыт внедрения 1С:Предприятия , приведены следующие примеры параметров оборудования которое используется в клиент-серверном варианте:
В приведенной таблице, подразумевается что сервер 1С:Предприятия и сервер MS SQL установлены и работают расположены на одном компьютере.
По поводу того что Сервер предприятия 1С и SQL Server должны устанавливаться на один и тот же компьютер, или на разные тоже момент достаточно спорный и много где обсуждаемый. А вообще зависит от многих факторов.
Реальный опыт администрирования СУБД и сервера предприятий 1С
На примере живого опыта, на предприятии когда я пришел, стоял сервер на базе Intel Xeon S5000, два 2х ядерных процессора, 5гб оперативной памяти FB DIMM, 2 жестких диска в зеркальном массиве, и еще 2 диска в обычном. Вся эта конфигурация с трудом вытягивала SQLную базу размером в 27 гигабайт, работало в ней 40 человек одновременно. Висело все очень сильно. Система стояла Windows 2003 server + SQL 2000 SP4 (кстати если используется 2000й sql для базы 1с, то четвертый сервис пак просто необходим).
Так как серверная платформа могла больше, я заменил старые уставшие жесткие диски, добавил памяти, переустановил все ПО заново, и настроил его. Диски были установлены обычные, 6 штук SATA2 емкостью 320 гигабайт в RAID 10. Тест скорости получившегося дискового массива показал 220 мб/сек, (чтение). По сравнению с предыдущими десками (60-80 мб/сек) это было очень быстро! Софт остался прежний W2003 R1 SP1 + SQL 2000 SP4, Windows установил 64х битный, SQL 2000 в 64х битной редкции нет в природе. Сервер 1С предприятия тоже остался 32х битным. Так как без помощи 1С программиста (отсутствующего на тот момент) не получилось перенести конфигурацию на SQL 2005. После проделанной работы, в целом производительность всей системы заметно увеличилась, пользователям стало работать более комфортно. Да и график нагрузки системы в WINDOWS показывал что «качать» сервер стал более продуктивнее. Спустя год база увеличилась с 27 гигабайт до 50. Еще через год уже 80. Обороты предприятия увеличивались, штат сотрудников удвоился, прибавились еще вне офисные менеджеры с ноутбуками, которые подключались к базе для оформления заказов прямо с торговых точек в городе. Все это до поры тянул один сервер.
И вот спустя 2 года с момента первого апгрейда назревал второй. Так как раздувшаяся база до 80 гигов и количество пользователей окучивающих эту базу стало около 60ти. Еще такой момент, системный диск C:\ имел обьем всего 30 гигабайт (два года назад этого было за глаза) стал ежедневно забиваться логами 1с сервера предприятий. Перенести которые не представлялось возможным.
Было решено установить свежие 1 терабайтные диски, добавить памяти и поставить 2008 windows и 2008 SQL, Сервер предприятия 8.2 все 64х битное. Предварительно закупив неслабую машинку на десктопных железках, я поставил туда все ПО, перенес бекап базы, поднял его там и все проверил, чтобы апгрейд и переустановка всей системы на самом сервере прошла более гладко и безболезненно. Данная предварительная подготовка пошла на пользу.
После установки новых дисков в массив (все также остался 10 RAID), установки дополнительных модулей памяти, общий обьем которой теперь составлял 14 гигабайт, и на новом софте, все вновь стало работать ощутимо быстрее. Скорость чтении с поверхности нового RAID массива составляла 320 мегабайт, что в 1,5 раза быстрее предыдущего.
На базе всех этих переделок можно также составить таблицу системных требований, размера базы и количества пользователей.
После апгрейда, я вновь провел тест который написал господин Гилев, как на платформе версии 8.1 так и на платформе 8.2. Результаты тестов особо не радовали. Но это не столь важный показатель. Т.к. пробные проведения документов и формирования отчетов, занимали гораздо меньше времени, по сравнению с предыдущей конфигурацией железа и софта.
Также для разгрузки основного сервера, терминальные пользователи были перенесены на дополнительный сервер. Так как терминальные сессии тоже достаточно аппетитно кушают оперативную память, примерно 200-300 мегабайт на одного пользователя при активной работе, а если их 10 это уже 3 гигабайта.
Еще одним нововведением стало создание не одного рабочего процесса RPHOST, как было ранее, их сделано 4.
При этом каждый процесс стал занимать от 150 до 400 мегабайт. Особо это ничего заметного не дало, но в теории вылеты пользователей из программы должны сократится, то есть стабильность работы повышается.
Регламентные задания SQL
Регламентные задания в SQL для баз 1С. Еще во время первого апгрейда, я нашел информацию о том, что по мимо резервирования основной рабочей базы (это как бы естественно и обязательно) в SQL нужно настраивать регламентные задания (профилактические процедуры с базой данных. В ходе которых удаляются ненужные записи, очищаются временные таблицы ,и отчасти происходит проверка целостности базы.
В первое время после настройки этих заданий процедур, размер базы даже немного снизился, чему нельзя было не радоваться. Но потом уже такого не наблюдал. С переходом на 2008 SQL, также были настроены регламентные задания. И замечен интересный факт. Размер самой базы не изменялся после произведенных процедур. А вот размер заархивированного бекапа рабочей базы немного уменьшился. Все таки есть чтото в этом новом 2008 SQL…
О том как настравивать регламентные задания будет опубликовано в другой статье, отдельно, чтобы не раздувать эту статью.
RAID массив для 1С SQL
Почему нужно использовать именно рэйд для базы данных. Этому причин несколько.
Что такое RPHOST?
Rphost это процесс службы самого сервера предприятий. И для него естественно жрать память. И процессор. Но в разумных пределах.
Также очень популярен в интернете вопрос: rphost грузит процессор или rphost жрет память. Да такой факт действительно наблюдается. Имеется еще один дежурный сервер, используемый для резервирования всех имеющихся баз данных. Кстати это очень удобно, иметь отдельную машину чисто под бекапы. Так вот на данном сервере тоже стоит сервер предприятий, винда там 2003 R1 SP1. И именно на этой ОС наиболее распространен глюк с RPHOST ом. Из всех прочитанных лекарств ничего не помогает, кроме как перезапуск службы. И то спустя 15 минут, он вновь сьедает полностью одно ядро и 500 мегабайт памяти. На W2008 такого не обнаруживалось, данный процесс потреблял процессорное время одного ядра при явной нагрузке кем то и пользователей отчетом или проведением большого документа.
Что еще можно сказать о поведении сервера под новым ПО и свежим релизом сервера предприятий 8.2. Тут есть что расскзать.
Первое отличие это то что при зависании сервера или потери с ним связи (такое уже один раз произошло) у клиентов платформа зависает, и ее нужно перезапускать. На платформе 8.1 выскакивало окошко с ошибкой, и выбором закрыть или перезапустить программу, в 8.2 пока тупо виснет, возможно исправят.
Второе отличие, элементы интерфейса немного отличаются и пользователи не сразу «втыкают» куда теперь кликать.
Конфигарация базы (УТ 10.3) изначально сильно изменена, но при переносе ее на платформу 8.2 с 8.1 все обошлось стандартными средствами. Я имею ввиду конвертацию базы под новую платформу.
По общим наблюдениям 64х битное ПО как то более рационально использует оперативную память и нагрузку на процессоры. Это больше касается SQL сервера. В отличии от старого двухтысячника, который сьедал всю оперативную память имеющуюся в системе, 2008й потребляет ровно столько, сколько ему выделено в настройках. Это безусловно плюс. Причем ненадо ничего перегружать. При изменении выделяемого обьема памяти, она сразу освобождается или занимается процессом SQL.
Таким образом, производительность всей системы в целом, под системой подразумевается:
- аппаратная часть
- серверный софт
- платформа 1с
зависит от того:
какая конфигурация 1С используется (насколько правильно в ней написаны запросы)
сколько пользователей пользует одновременно базу
Каков обьем базы (ее физический размер на диске) в большинстве случаев 1с тормозит изз за банального не соблюдения каких то простых вещей.
Итоги
В моем случае серверная платформа на базе достаточно старой материнской платы Intel S5000 работает уже четвертый год, размер базы на этом сервере (только под моим присмотром) вырос с 27 гигабайт до 80ти. Может быть, тормоза 1с или SQL вы наблюдаете на машине, не справляющейся своей аппаратной мощью с распухшей базой, или нехватка оперативной памяти. Читайте информацию, не стесняйтесь задавать вопросы на форумах (благое дело таких форум несколько в Рунете). Вам обязательно подскажут и помогут решить вопрос. Либо можете всегда обратится к фирмам, системным интеграторам или франчайзи 1С которые проведут профессиональный аудит и скажут в чем причина того, что 1с тормозит.
Теги: rphost жрет память, rphost жрет процессор, 1С тормозит, конфигурация сервера 1С