Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows NT/2000/2003 (http://forum.oszone.net/forumdisplay.php?f=5)
-   -   Медленная работа при работе с БД (MS SQL Server) (http://forum.oszone.net/showthread.php?t=254284)

masyaka 18-02-2013 06:40 2093118

Медленная работа при работе с БД (MS SQL Server)
 
Доброго Всем времени суток!

Имеется следующее "железо":
Процессор: Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
Оперативная память: 4096 MBytes
Жесткие диск: Serial ATA 1.5Gb/s, Seagate ST3500630AS, (500 GB). Жестких диска 2шт. (не RAID), один из них сетевой ресурс с расшаренными папками, второй разделен на два логических диска, на одном из которых установлена система, а на втором хранятся часть различных резервных копий.
На этом "железе" ОС Microsoft Windows Server 2003 EE, сервер в роли основного контроллера домена, DNS, DHCP при этом рабочих станции в домене 25 шт. На сервере установлена MS SQL 2005 в которой две БД ~ 500Мб. С этими БД по локальной сети работает приложение "Комплексная система управления учебным заведением". Пользователей работающих в этих приложениях 4 шт. (все работают за разными рабочими станциями и одновременно работают редко, в основном одновременно работают 2 пользователя). Проблема в том что при работе в этом приложении в последнее время стали появляться раздражающие "тормоза" (особенно при внесении новых данных, но также и просто при просмотре информации) то есть может спокойно повиснуть на секунд 10-20 я думаю, но точно не засекал. Также на сервере установлен Антивирус Касперского 6.0 для WinServers EE, когда-то давно было установлено VirtualBox, Java, но VirtualBox сейчас вообще не используется.

Когда появились "тормоза" начал разбираться и заметил, что "тормоза" проявляются вроде, в то время когда на сервере антивирус начинает обновлять свои базы.
Вот показания некоторых счетчиков. Время сбора информации в журнал было 10 минут. Слева на графиках журнал запускал на 10 минут и просто работал в приложении, справа на графиках журнал запускал на 10 минут, в это время работал в приложении и примерно через минуту от начала запуска журнала запустил задачу обновления баз Касперского.



В общем ситуация пока не критическая, но очень хочется услышать мнения людей более опытных в вопросах производительности и работы со счетчиками.

1. Можно ли по графикам сказать, что при задаче обновления баз Касперского наблюдается явная перегрузка дисковой подсистемы, что соответственно означает что именно диски (не процессор, не оперативная память) являются узким местом или это вполне рабочая нагрузка и дисковая система справляется, а причина "тормозов" в чем то другом.
2. Почему именно при обновлении баз Касперского наблюдается увеличение показателей связанных с дисковой подсистемой в разы?
3. Как объяснить то, что раньше таких "тормозов" не было, а сейчас они появились, что-нибудь могло произойти с жестким диском (кстати сервер стоит рядом и с определенного времени стало слышно хруст жёсткого диска).
4. Может быть необходимо еще что-нибудь помониторить?

alef2474 26-02-2013 18:57 2099583

Имхо, так мало памяти для сервера с таким количеством ролей недопустимо. С ростом баз памяти стало не хватать.
Диски на сбойные кластеры тоже можно проверять, хотя им и положено быть шумными и старыми.

__sa__nya 27-02-2013 08:20 2099984

Цитата:

Цитата alef2474
Имхо, так мало памяти для сервера с таким количеством ролей недопустимо. »

последний скрин - available Mbytes - 2051
masyaka,
1) Если подозреваете антивирус, настройте на нем задачу получения обновлений раз в сутки ночью, когда гарантированно никто не работает
2) Проверьте диски с помощью MHDD или Victoria
3) ПРоверьте журнал "Система" на наличие ошибок, с источником "ntfs" или "disk"
4) Проверьте фрагментацию ваших разделов и если есть фрагментация, сделайте дефрагментацию
5) В момент подвисания в диспетчере задач сделайте скриншот вкладки "быстродействие"
Отпишитесь по результатам.

alef2474 01-03-2013 15:29 2101861

Цитата:

Цитата __sa__nya
последний скрин - available Mbytes - 2051 »

Видел я про available Mbytes и не считаю, что для такого сервера этого достаточно.(где нормы??) У меня как раз при достижении такого уровня available Mbytes сервер гораздо более мощный с подобными ролями начинал зависать.

__sa__nya 01-03-2013 20:22 2102086

Цитата:

Цитата alef2474
.(где нормы??) »

-
Цитата:

Цитата alef2474
Имхо, так мало памяти для сервера »

- вот именно, где нормы? Если у сервера наблюдается зависание, и причина этого - оператива, то свободно будет не более 300 мегабайт.
А теперь давайте посчитаем:
1) ОС- 500 МБ
2) AD, DNS, DHCP - 200 МБ
3) SQL - как писал ТС - 2 базы по 500 МБ, + 100 МБ на нужды самого SQL'я - 1100 МБ
4) Касперыч 6.0 - до 200 МБ
ИТОГО:2000 МБ

- Ну а теперь давайте ваши
Цитата:

Цитата alef2474
нормы »


alef2474 03-03-2013 15:44 2103235

Цитата:

Цитата __sa__nya
1) ОС- 500 МБ
2) AD, DNS, DHCP - 200 МБ
3) SQL - как писал ТС - 2 базы по 500 МБ, + 100 МБ на нужды самого SQL'я - 1100 МБ
4) Касперыч 6.0 - до 200 МБ
ИТОГО:2000 МБ
- Ну а теперь давайте ваши »

Я по таким нормам не считаю, т.к. имел сервера 2008 с 1Гб памяти и AD - и ничего, работали с 10 пользователями.
В то же время почти аналогичный по ПО 2008 сервер с AD, SQL и антивирусом у меня сразу при старте незагруженный пользователями потребляет 2,2 Гб, а потом нагрузка может быстро расти за счет потребления памяти SQL сервером в зависимости от его настройки. Надо просто время от времени смотреть procexplorer'ом, особенно когда торможение и сравнивать цифры. Причем у меня может доходить тоже до полного зависа, если не обнулить перезагрузкой память отбираемую SQL. У меня правда есть еще терминальные клиенты, а у него нет похоже.
Автор темы не проявляется, поэтому может нет смысла дискутировать. Может ему еще имеет смысл помониторить еще сеть, т.к. у него это может быть узким местом, т.к. терминальные клиенты не использует. У меня тоже бывал сетевой шторм при массовых обновлениях антивируса.
А память подбросить на сервер никогда не помешает, пока она еще продается такого типа.
В своем описании автор похоже право с лево перепутал, т.к большие скачки графиков слева.

__sa__nya 03-03-2013 18:51 2103371

Цитата:

Цитата alef2474
Причем у меня может доходить тоже до полного зависа, если не обнулить перезагрузкой память отбираемую SQL »

можете выставить в свойствах SQL'а допустимый объем оперативы, он больше забирать не будет, перезагружать службу не нужно будет.

masyaka 01-04-2013 12:33 2123363

Цитата:

Цитата alef2474
Автор темы не проявляется, поэтому может нет смысла дискутировать »

Приношу свои извинения, был занят совсем другой работой.
Цитата:

Цитата alef2474
Имхо, так мало памяти для сервера с таким количеством ролей недопустимо »

На другом форуме мне то же сказали что оперативной памяти маловато, но я то же ориентировался на available Mbytes и объем памяти как узкое место не брал в счет....теперь вот и не знаю...если будет возможность добавить памяти то попробую добавить.
Цитата:

Цитата alef2474
В своем описании автор похоже право с лево перепутал, т.к большие скачки графиков слева. »

По ходу действительно перепутал.
Цитата:

Цитата __sa__nya
masyaka,
1) Если подозреваете антивирус, настройте на нем задачу получения обновлений раз в сутки ночью, когда гарантированно никто не работает
2) Проверьте диски с помощью MHDD или Victoria
3) ПРоверьте журнал "Система" на наличие ошибок, с источником "ntfs" или "disk"
4) Проверьте фрагментацию ваших разделов и если есть фрагментация, сделайте дефрагментацию
5) В момент подвисания в диспетчере задач сделайте скриншот вкладки "быстродействие"
Отпишитесь по результатам. »

1) Антивирус перенастроил на обновление рано утром, когда еще никого нет на работе.
2) С этим долго разбирался в итоге вот так
SMART диска на котором установлена система.

SMART второго диска(сетевой ресурс)


Результат выполнения линейного чтения диска с системой

Если я все правильно сделал, то судя по SMART, диски вроде как "здоровые". Судя по линейному чтению раз дефектов не найдено значит bad блоков нет.
Далее на системном диске запустил еще и Butterfly-чтение, но смутило предполагаемое время тестирования, тестировался диск с 9.00 до 14.00, но сервер долго в простое не может быть пришлось прервать тестирование. Тогда ради интереса запустил Butterfly-чтение на втором диске, который в качестве сетевого ресурса, там показало предполагаемое время на порядок меньше. С чем это связано? Диски же полностью одинаковые различаются только серийные номера
Butterfly-чтение системного диска


Butterfly-чтение втрого диска

3) Ошибок в журнале нет.
4)Фрагментация


5) Конкретно момент подвисания поймать не удалось, но вот скрины во время запуска задачи обновления баз Касперского.



.

alef2474 04-04-2013 11:12 2125518

Память, отбираемую SQL, как sanya предлагал, настраивали?

NRMS 08-04-2013 16:53 2128321

У Вас диск С (с меткой Files) почти под завязку забит. Я так понимаю тут файлопомойка расположена. Файл подкачки на этом же диске? Папки "Program Files" и "Documents and Settings" тоже на нем? По-хорошему почистите диск, освободите место.

masyaka 09-04-2013 11:39 2128804

Цитата:

Цитата NRMS
У Вас диск С (с меткой Files) почти под завязку забит. Я так понимаю тут файлопомойка расположена. »

Да это и есть файлопомойка, это вобще отдельный жесткий диск.
Цитата:

Цитата NRMS
Файл подкачки на этом же диске? Папки "Program Files" и "Documents and Settings" тоже на нем? »

Это все на другом отдельном жестком диске, на логическом диске D.

P.S.
Ничего не могу понять...или мне кажется или весна так действует :) Ситуация такая, например смотрел вчера эту тему поздно вечером, сообщений не было, захожу сейчас появилось новое сообщение, я смотрю когда это сообщение было написано, оказывается вчера вечером, то есть я последнее сообщение должен был увидеть еще вчера, а увидел последнее сообщение только сегодня и уже такое замечал не первый раз...хотя может показалось.

iprit 15-04-2013 20:40 2133251

Я бы добавил памяти, включил режим PAE для системы и режим AWE для MSSQL. Настроил макс.объем памяти в свойствах SQL сервера с учетом на то, что 2 ГБ оставить на ОС и другие приложения. Посмотрите сколько памяти забирает процесс mssqlserver.exe, если порядка 1,7 Gb или около того, то явно проблема с нехваткой памяти. Сервер просто свопит. Посмотрите счетчик "Средняя длина очереди диска". То что вы высчитали совокупный объем занятой памяти и он у вас получился 2 Гб, ничего не значит. Т.к. 32 битная ОС для всех приложений оставляет только 2 Гб., остальное резервирует под себя любимую. То что больше 2 Гб, свопится на диск. Сам недавно с таким столкнулся, после проведения всех мероприятий (установка доп. 2 Гб. памяти, PAE, AWE, макс.объем памяти для SQL сервера 4 Гб.) сервер резко задышал. Если раньше средняя длина очереди диска частенько достигала 5-значных значений и сервер просто впадал в ступор, после мероприятий в максимуме опустилась до трехзначных, а в основном не превышает 10.


Время: 16:28.

Время: 16:28.
© OSzone.net 2001-