![]() |
Тормозит 1С (MS SQL). Как диагностировать?
Здравствуйте.
Имеется сеть из 25 компьютеров, одновременно работающих с 1С. Выделенный сервер Win2003 на Xeon E5410 2.53 Ghz, 16 Gb Ram, SCSI диски, сетевой интерфейс на сервере 1 Gbit/s подключен к пассивному свитчу D-Link с 2-я гигабитными портами. Остальные клиенты подключены в этот же свитч к 100 Mbit-ным портам. База MS SQL, серверная и клиентская программы 1С работают на сервере. Папка с клиентской частью общая. Пользователи на рабочих станциях запускают программу из общей папки. Также сервер используется как сервер терминалов для работы 3-х пользователей. На одном из серверов сети установлена система мониторинга Cacti. Средняя загрузка сервера с 1С в принципе не большая: загрузка всех 8-и ядер в среднем составляет 10-15% иногда подскакивает до 30-30%. Сеть в среднем загружена на 10 Mbit/s во время начала работы в 9-00 загрузка сети возрастает до 30 Mbit/s. Меня немного смущает загрузка оперативной памяти: если перезагрузить сервер то из всей RAM используется только 8 ГБ. После 2-х недель непрерывной работы, оперативка забивается на 12-15 ГБ. Причём основные потребители это sqlserver.exe = 3.5 Гб и несколько процессов rphost.exe*32 = 7 Гб. Практически все пользователи в основном утром жалуются на "тормоза программы". Я не работаю в 1С и не представляю что там может тормозить. Но они говорят что медленно проводятся документы и делаются какие-то выборки... Корреляции тормозов системы с системными ресурсами я не замечал. Подскажите пожалуйста в какую сторону копать? Где могут быть слабые стороны системы? Как можно проверить скорость текущего обмена с жёсткими дисками? P.S. Будут интересны любые мнения. |
Tonny_Bennet, сталкивался с таким. Единственное у меня все на разных серверах, .т.е. терминальный, sql и 1с - это три разных сервера. Обошел,через еженочный рестарт служб SqlServerAgent, MsSqlServer и 1C:Enterprise 8.2 Server Agent.
Если надо могу привести скрипты. |
Tonny_Bennet,
В SQL ограничьте выделение оперативной памяти. "Тормозить" 1С (кстати, Вы не указали версию) из-за одновременного составления "тяжелых" отчетов и т.п., а также (в 99% случаев) - из-за кривизны написания самих процедур отчетов. |
molodoipon, в принципе если не сложно то выложите скрипты... не мне так кому-нибудь другому понадобятся.
monkkey, если не сложно скажите где именно в SQL ограничевается выделение оперативной памяти? Для чего это нужно? И не ухудшит ли это ситуацию? На сервере по-моему крутится 2 версии 8.1 Enterprise и 8.2. Дописыванием базы занимается приходящий программист и насколько "кривые" у него скрипты я судить не могу... P.S. Достаточно серьёзно занимался программированием на С#, и когда один мой знакомый кодер узнал что код в 1С пишется на кирилице - ругался благим матом и говорил ,что в жизни писать под него не станет!!! Думаю это предрассудки.... |
Цитата:
|
Tonny_Bennet
рестарт 1С Код:
rem @echo off Код:
echo start: %DATE% %TIME% >> C:\scripts\log\restart.log |
ограничьте SQL 6 гигами памяти.
Тормоза у вас оттого что у него непомерный аппетит и он читает с диска т.е. из файла подкачки. |
Tonny_Bennet, в целях погружения в тему производительности 1С рекомендую Вам сайт Гилев - там много интересного.
На что стоит обратить внимание с ходу: - по опыту - службу 1С я перезапускал еженедельно по ночам (т.к. она непомерно начинает транжирить память) через скрипт, который сначала запускал start net stop, затем ждал 10 минут и taskkill все rphost оставшиеся в памяти... далее net start; - Вы не указали тип RAID на сервере... если у Вас RAID5 - то это тормоз для Вашей SQL базы; - дефрагментируйте диски... некоторые умельцы настраивают прирост базы SQL по 1Мб или 1%... в результате у них вся база фрагментирована; проведите shrink mdf-файла. - если у Вас на рабочем сервере висит еще пара баз, которые используются для тестов и прочих дел - это нехорошо для производительности; - общая загрузка CPU в 20-30% ни о чем не говорит - смотрите есть ли процессы, которые полностью занимают ядра процессоров. При подключении 1С сервера к базе SQL в качестве адреса следует использовать "localhost" - в этом случае обмен идет через память, а не стек TCP\IP. PS: для теста попробуйте терминально запустить 1С клиента на сервере и сравнить производительность. PS2: пассивный коммутатор Dlink - однозначно вызывает подозрения в производительности сети. |
Отдал под MS SQL 6 ГБайт оперативки. Отрубил использование файла подкачки.
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Отключил ненужные роли сервера (dns, wins). Сегодня проблем с скоростью работы базы не было т.к. на выходных сервер перезагрузил. |
zero55,
Цитата:
|
Tonny_Bennet, коммутатор не самый плохой.
Цитата:
Цитата:
Если никакого резервирования (отказоустойчивости) нет, то ругать Вас будет Ваше начальство... Цитата:
Для оценки нагрузки процесса на диск и ОЗУ - смотрите утилиту procexp (из комплекта sysinternals). Цитата:
Shrink - стандартная процедура обслуживания SQL базы. Цитата:
Цитата:
Для оптимизации нагрузки, тестовые SQL-базы можно перевести в bulk recovery mode - это немного снизит нагрузку на SQL. PS: сайт Гилева я Вам не зря рекомендовал. PS2: PerfMon никто не отменял - начинайте с него и ищите узкое место. |
Цитата:
Цитата:
Цитата:
По поводу прироста: в настройках *mdf файла указано Autogrowth: By 1 MB, unrestricted growth; в настройках *.log фала Autogrowth: By 10 percent, restricted growth to 2095172 MB. Стоит ли увеличивать размер прироста базы чтобы избежать фрагментации? На сколько? Как сильно это приведёт к разрастанию базы? Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
К разрастанию базы это приведет несущественно, т.к. расти она будет в том же темпе, просто скачков будет меньше, но будут они больше. Цитата:
Можно, например, в ночное время запускать одностороннюю репликацию с основного на тестовый сервер. А можно как Вы предложили - ночью скриптом выгрузить и загрузить базу. Цитата:
|
Tonny_Bennet, о коммутаторе -
Производительность Коммутационная матрица 13,6 Гбит/с - и это 50 Гигабитных портов? Для агрессивных нагрузок очень плохой вариант, по-мониторьте сеть на битые пакеты, можно просто при большой загрузке посмотреть на компах жалующихся - статистику сети командой netstat -e, в нормальной сети будет как-то так: Цитата:
|
|
1С сам по себе может тормозить нещадно...
Надо смотреть начиная с клиента 1. процессор 2. память 3. диски На сервере 1. процессор 2. память 3. диски Посмотрите чтение запись в файлы данных и файлы логов. 1. какая версия SQL 2. какая конфигурация файлов данных 3. установлена ли опция AUTOSHRINK |
а сколько бы вы порекомендовали оперативной памяти на сервер SQL 2008 R2, размер базы 80гб, 4х ядерный XEON 2,99ггц, диски 6шт в рейде 10. 2000й летал, 2008 подтормаживает.
|
|
Время: 20:21. |
Время: 20:21.
© OSzone.net 2001-