Опять про производительность под Win2003
Модераторы: kdv, Alexey Kovyazin
Опять про производительность под Win2003
Доброе время!
Сталкнулся с такой проблемой: нужно было сделать программу на заказ. База 170 Мб, FB 1.5. Дома на ноутбуке WinXP , cpu 2 Ггц, 512 RAM, время выполнения N минут. Клиент выполнял на сервере: 2-Xeon 2.8, RAID5 SCSI, 2 ГГб, Win2003 - время выполнения 7*N минут. При анализе выяснилось, что стоит SuperServer (переход на классик не приемлем), fbserver.exe загружает проц в среднем на 1-2 процента. Общая загрузка 17-19 процентов, на серваке больше ничего не крутится. ФС - NTFS. Посоветовал админу выставить CpuAffinityMask = 1 и ProcessPriorityLevel = 2. Скорость выполнения увеличилась, но явно недостаточно (4*N). C Win2003 никогда дел не имел, поэтому прошу посоветовать как повысить производительность сервера? Может дело в настройках ОС? Спс.
Сталкнулся с такой проблемой: нужно было сделать программу на заказ. База 170 Мб, FB 1.5. Дома на ноутбуке WinXP , cpu 2 Ггц, 512 RAM, время выполнения N минут. Клиент выполнял на сервере: 2-Xeon 2.8, RAID5 SCSI, 2 ГГб, Win2003 - время выполнения 7*N минут. При анализе выяснилось, что стоит SuperServer (переход на классик не приемлем), fbserver.exe загружает проц в среднем на 1-2 процента. Общая загрузка 17-19 процентов, на серваке больше ничего не крутится. ФС - NTFS. Посоветовал админу выставить CpuAffinityMask = 1 и ProcessPriorityLevel = 2. Скорость выполнения увеличилась, но явно недостаточно (4*N). C Win2003 никогда дел не имел, поэтому прошу посоветовать как повысить производительность сервера? Может дело в настройках ОС? Спс.
что именно выполняется N минут, хотя бы примерно?
какой размер кэша установлен в конфиге FB на твоей машине и на сервере?
судя по загрузке сервера в 17-19%, если у тебя загрузка выше - есть проблема с драйверами RAID. То есть, не смотря на RAID5, по какой-то причине он ужасно тормозит.
Рекомендую посмотреть размер блока RAID, размер кластера NTFS на том диске, где БД, и размер страницы БД. Эти три значения желательно иметь идентичными, в районе 4 или 8 килобайт.
какой размер кэша установлен в конфиге FB на твоей машине и на сервере?
судя по загрузке сервера в 17-19%, если у тебя загрузка выше - есть проблема с драйверами RAID. То есть, не смотря на RAID5, по какой-то причине он ужасно тормозит.
Рекомендую посмотреть размер блока RAID, размер кластера NTFS на том диске, где БД, и размер страницы БД. Эти три значения желательно иметь идентичными, в районе 4 или 8 килобайт.
После дополнительной инвестигации с моим участием выяснилось, что узкое место RAID. "Средняя длина очереди диска" сильно зашкаливает, следующем шагом выяснилось, что база лежит на системном диске. Перенос базы на другой диск (физ), дало значительный прирост производительности. Теперь время выполнения примерно сравнялось, но на сервере все равно чуть больше. Имеет ли смысл копать дальше или значительного прироста достичь не удасться? Что касается действий, то это пробег по всем записям базы A и поиск соответсвий в базе B , при нахождении записать данные в базу C (так заказали). Спасибо за помощь.
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
Терь пусть админы ковыряются
Кстати, еще одна тема вроде как замыленная про "Русские буквы".
Пытаюсь выполнить скрипт на добавление записей, через isql, под WinXP все отлично, под Win2K и Win2003 - хрен! Вроде кодировки везде правильные, что за фикня? Пришлось в скрипте явно прописывать _win1251 (не сложно конечно, но интересно ж).
Кстати, еще одна тема вроде как замыленная про "Русские буквы".
Пытаюсь выполнить скрипт на добавление записей, через isql, под WinXP все отлично, под Win2K и Win2003 - хрен! Вроде кодировки везде правильные, что за фикня? Пришлось в скрипте явно прописывать _win1251 (не сложно конечно, но интересно ж).
Для эксперемента, выполнить такой скрипт:
e:\creation.sql
------
SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE DATABASE 'E:\TEST_RUS.GDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1251;
CREATE TABLE TABLE1 (
ID INTEGER,
NAME VARCHAR(70) CHARACTER SET WIN1251 COLLATE WIN1251
);
INSERT INTO TABLE1 (ID, NAME) VALUES (1, 'ТРАЛЯЛЯ');
COMMIT WORK;
-------
..bin\isql.exe -i e:\creation.sql -m -o e:\isql.log
Под XP все пузырится, 2К и Win2003 выдаст ошибку! Что в XP кодировка русских букв в файлах интерпритируется правильно или что?
e:\creation.sql
------
SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE DATABASE 'E:\TEST_RUS.GDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1251;
CREATE TABLE TABLE1 (
ID INTEGER,
NAME VARCHAR(70) CHARACTER SET WIN1251 COLLATE WIN1251
);
INSERT INTO TABLE1 (ID, NAME) VALUES (1, 'ТРАЛЯЛЯ');
COMMIT WORK;
-------
..bin\isql.exe -i e:\creation.sql -m -o e:\isql.log
Под XP все пузырится, 2К и Win2003 выдаст ошибку! Что в XP кодировка русских букв в файлах интерпритируется правильно или что?
сделал все так, как ты предложил - твой скрипт буква в букву.
FB 1.5.2, SS. Windows 2000 Prof, SP4, английская, с русской дефолтной страницей (1251).
База создалась, ошибок нет. Открываем базу, в таблице TABLE1
строка "ТРАЛЯЛЯ".
p.s. если базу создал в win1251, писать чарсет у столбцов, идентичный win1251, не надо - они и так будут 1251 по умолчанию.
Кроме того, collate win1251 у чарсета win1251 тоже умолчательный, поэтому не нужен. В любом случае я выполнял твой скрипт, скопированный из текста твоего письма. Даже с учетом того, что у меня тоже есть диск E:
и кстати, после создания таблицы, перед вставкой данных, COMMIT нужен ОБЯЗАТЕЛЬНО.
То есть, если бы скрипт писал я, то я бы написал:
FB 1.5.2, SS. Windows 2000 Prof, SP4, английская, с русской дефолтной страницей (1251).
База создалась, ошибок нет. Открываем базу, в таблице TABLE1
строка "ТРАЛЯЛЯ".
p.s. если базу создал в win1251, писать чарсет у столбцов, идентичный win1251, не надо - они и так будут 1251 по умолчанию.
Кроме того, collate win1251 у чарсета win1251 тоже умолчательный, поэтому не нужен. В любом случае я выполнял твой скрипт, скопированный из текста твоего письма. Даже с учетом того, что у меня тоже есть диск E:
и кстати, после создания таблицы, перед вставкой данных, COMMIT нужен ОБЯЗАТЕЛЬНО.
То есть, если бы скрипт писал я, то я бы написал:
Код: Выделить всё
SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE DATABASE 'E:\TEST_RUS.GDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1251;
CREATE TABLE TABLE1 (
ID INTEGER,
NAME VARCHAR(70));
COMMIT WORK;
INSERT INTO TABLE1 (ID, NAME) VALUES (1, 'ТРАЛЯЛЯ');
COMMIT WORK;
Добрый день!
У наших заказчиков похожая проблема. После переноса базы на новый сервер (Вин2003, Файрбёрд 1.5.3, RAID контроллер из двух винтов, 2ГБ RAM) с гораздо более скромного по характеристикам старого (700МГц Пень, но тоже с рэйдом) существенно (более чем в 2 раза) замедлилась скорость работы. Процессор даже в самых трудоёмких задачах простаивает (не более 15% загрузки). В чём может быть дело, посоветуйте пожалуйста! С Вин2003 сталкиваюсь впервые, заказчик тоже - опыта её настройки почти никакого.
База пока маленькая - примерно 600 МБайт, включен Forced Writes.
И ещё одна особенность - Бэкап/Рестор проходит быстрее чем на старом сервере (и процессоры загружены гораздо больше - до 70%)
У наших заказчиков похожая проблема. После переноса базы на новый сервер (Вин2003, Файрбёрд 1.5.3, RAID контроллер из двух винтов, 2ГБ RAM) с гораздо более скромного по характеристикам старого (700МГц Пень, но тоже с рэйдом) существенно (более чем в 2 раза) замедлилась скорость работы. Процессор даже в самых трудоёмких задачах простаивает (не более 15% загрузки). В чём может быть дело, посоветуйте пожалуйста! С Вин2003 сталкиваюсь впервые, заказчик тоже - опыта её настройки почти никакого.
База пока маленькая - примерно 600 МБайт, включен Forced Writes.
И ещё одна особенность - Бэкап/Рестор проходит быстрее чем на старом сервере (и процессоры загружены гораздо больше - до 70%)
2 druff. Попробуй отключить FW. Какой размер кластера раздела и страницы базы данных?
У нас на Win2003/FB 1.0/SCSI RAID 5 при FW тормоза получались (обращение к дискам было практически постоянно). Но это наверно вина программистов. А больше никаких нареканий к Win2003 нет.
P.S. Прямо хоть FAQ по настройке Win2003 делай...
У нас на Win2003/FB 1.0/SCSI RAID 5 при FW тормоза получались (обращение к дискам было практически постоянно). Но это наверно вина программистов. А больше никаких нареканий к Win2003 нет.
P.S. Прямо хоть FAQ по настройке Win2003 делай...
размер страницы/кластера - 2048/8192CyberMax писал(а):2 druff. Попробуй отключить FW. Какой размер кластера раздела и страницы базы данных?
У нас на Win2003/FB 1.0/SCSI RAID 5 при FW тормоза получались (обращение к дискам было практически постоянно). Но это наверно вина программистов. А больше никаких нареканий к Win2003 нет.
P.S. Прямо хоть FAQ по настройке Win2003 делай...
Как таковые эксперименты над массивом проводить не стал, но в результате изучения различной информации были сделаны следующие выводы:
1. Надо обязательно проверить параметры RAID-массива.
В моем случае получилась следующая ситуация: сервер покупали у K-Systems. Они сами все настраивали, в том числе и RAID. Сегодня посмотрел, что они там сделали и удивился. Массив работатает со следующими параметрами - Read Normal, Write Thru и Direct I/O. Это самый медленный режим работы! Надо использовать Read Ahead, Write Back и Cached I/O, дающие максимальную производительность. Вот здесь описано тестирование используемого у нас контроллера (LSI Logic 320-1).
2. Скорость чтения/записи при отключенном FW особо не влияет на производительность во время штатной работы - только при начале работы с базой, когда идет активное заполнение системного кэша.
3. Есть параметры RAID: stripe size и segment size ("представляет собой размер данных, который будет прочитан или написан за одну операцию").
5. Проблемы с производительностью под Windows 2003 возможно из-за какой-то недонастройки. Либо базы либо самой ОС либо дисковой подсистемы, а не из-за того, что она сама какая-то особенная.
P.S. В ближайшее время планировую переустановку Windows 2003. Если интересует, могу сделать статью по используемым настройкам (от начала и до конца).
1. Надо обязательно проверить параметры RAID-массива.
В моем случае получилась следующая ситуация: сервер покупали у K-Systems. Они сами все настраивали, в том числе и RAID. Сегодня посмотрел, что они там сделали и удивился. Массив работатает со следующими параметрами - Read Normal, Write Thru и Direct I/O. Это самый медленный режим работы! Надо использовать Read Ahead, Write Back и Cached I/O, дающие максимальную производительность. Вот здесь описано тестирование используемого у нас контроллера (LSI Logic 320-1).
2. Скорость чтения/записи при отключенном FW особо не влияет на производительность во время штатной работы - только при начале работы с базой, когда идет активное заполнение системного кэша.
3. Есть параметры RAID: stripe size и segment size ("представляет собой размер данных, который будет прочитан или написан за одну операцию").
5. Проблемы с производительностью под Windows 2003 возможно из-за какой-то недонастройки. Либо базы либо самой ОС либо дисковой подсистемы, а не из-за того, что она сама какая-то особенная.
P.S. В ближайшее время планировую переустановку Windows 2003. Если интересует, могу сделать статью по используемым настройкам (от начала и до конца).