1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Сервер - Ваше мнение

Тема в разделе "Компьютеры", создана пользователем БульЁн, 20.08.09.

  1. БульЁн

    БульЁн Активный участник

    1.260
    1
    Ситуация такая.

    В конторе А есть "сервер":
    Core 2-DUO
    4ГБ рам - под приложения 3 ГБ отведено
    2SATA - RAID-0.

    На "сервере" установлен ОС Win03 SE, SQL Server 05 SE, VoIP, IIS, NAT, VPN.
    Задачи сервера:
    1.на СУБД две рабочие базы - одна объемом 20ГБ, другая 2ГБ, ;
    2. Два веб сайта (кабинеты для удаленных сотрудников);
    3. через VPN постоянно подсоединены два удаленных офиса;
    4. Инет для офиса;
    5. VoIP телефония;
    6. Плюс пара тройка веб служб и Windows служб (работающих с БД);
    7. Тестирование разрабатываемых веб приложений.

    Из офиса с БД постоянно работают 15 человек.
    Через кабинеты работают человек около 200.

    А вот проблема
    Число работы с БД увеличилось и все стало тормозить, если работает один сотрудник то данные обновляются меньше 1 сек, если все работают то данные обновляются по 5-10 сек.
    Да кстати при активной работе журнал транзакций за месяц вырастает до 30 ГБ.

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

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

    Было предложено решение проблемы
    Покупка нового сервера:
    1. 2 XEON (2,2 ГГЦ)
    2. 24 Гб RAM
    3 4 SCSI , по два в RAID-0 и разнести файл транзакций и бд по разным дискам.
    4. Блок питания на 1 КВТ :)
    И перенести на новый сервер БД и веб кабинеты, оставшееся оставить на старом.
    Стоимость -150 тыс. (без стоимости Win03 EE).

    Руководство сказало НЕТ давайте оптимизировать БД, удалять лишние данные.


    Я вот думаю:
    1) что существующий сервер не потянет таких работ и БД оптимизировать не надо;
    2) Разработчиков БД, веб кабинетов, офисных приложений на мыло, и БД можно оптимизировать так, что при существующем сервере все будет летать
    ???
    Если Вы сталкивались с подобными ситуациями поделитесь мыслями :)

    PS.
    MySQL , Апач, линух не предлагать :)
     
  2. Rem

    Rem Активный

    4.703
    0
    Ну тогда заодно не стану Oracle предлагать :) По делу - для начала (если уж вести речь об оптимизации, а не о покупке нового железа) определиться какой именно компонент сервера потребляет ресурс. БД, веб-сервисы, сама операционка (может там своп начал работать - тогда оптимизировать в БД уже нечего, разве что где-то сэкономить память). Далее уже постараться понять, что именно вызывает такой напряг на диске - как-то оттрассировать сессии. То есть надо бы сузить диапазо поиска для начала.
     
  3. AnGord

    AnGord Активный участник

    2.187
    0
    Rem +1
    БульЁн,
    Для начала разберись где у тебя узкое место.
    Кстати, а может действительно работодатель прав и стоит оптимизировать БД - может у вас там треть базы мусор висящий не первый год без дела ?
     
  4. OpenBoy

    OpenBoy Активный участник

    21.665
    0

    Я конечно не профессионал в администрировании MS SQL, но... зачем вам лог транзакций за месяц? не проще ли настроить резервирование получше?

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

    добавлено через 2 минуты
    при такой большой разнице в производительности, в зависимости от нагрузки,... скорее всего дело не в железе. Принцииалльно вопрос решит как это.. оптимизация запросов к БД. Надо чтобы запись работала как то иначе.

    добавлено через 6 минут
    Круто...). Как померяли - в джоулях?

    добавлено через 13 минут

    Для того чтобы сделать вывод, надо воспользоваться средствами для мониторнига состояния сервера, и по результатам сделать вывод - почему обновление БД происходит так медленно? например - потому что некая группав запрособв блокирует бд для чтения на время записи данных. ну или еще что нибуть в этом роде.

    кАК только мы узнаем чт опроисходит в тот момент когда происходит работа клиентов, мы и вы можете дат ьответ. а так - я не могу. Наверное я тупой, но тут уж - извините,я чувствую что быстро прозреть мне не удастса...
     
  5. БульЁн

    БульЁн Активный участник

    1.260
    1
    По числу обрабатываемых заявок от клиентов.


    есть такое дело.

    И правильно - на него денег точно не хватит.
    Нет не стал, на СУБД стоит ограничение потребляемой памяти - 3ГБ


    Думаем над этим.

    добавлено через 1 час 8 минут
    почти все запросы клиентов такого вида
    select *,
    (select sum(A) from B where B.id=idm ),
    (Select count(*) from C where C.id=idm),
    ....
    ...
    select * from M where .....
     
  6. Rem

    Rem Активный

    4.703
    0
    А на все остальное??? RAM не резиновая.

    Это 1 гиг за сутки - то есть практически нечувствительно по нагрузке на диск не то что для сервера или десктопа, но даже дня средней руки ноута. Не в этом дело скорее всего.
     
  7. БульЁн

    БульЁн Активный участник

    1.260
    1
    Не совсем понял вопроса.
    В компе всего 4 ГБ памяти, 3 ГБ под проги (в конфиге винды стоит /3G)
    В конфиге SQL стоит - выделять памяти не более 3ГБ, с целью чтобы со свопом не работал активно (думаю он и так не должен с ним работать активно если памяти не хватает).
    По taskmgr для процесса sqlservr пик памяти 2 850 Мб, текущее (сейчас субд юзают 2-3 чел ) 2 570 Мб.
    Остальные программы особо не прожорливые по памяти .


    Клиенты также часто делают запросы
    вида

    SELECT .... from A.dbo.Tb1 , B.dbo.Tb2 where
    A.dbo.Tb1.id= B.dbo.Tb2.id
     
  8. OpenBoy

    OpenBoy Активный участник

    21.665
    0

    Я немного о другом говорил, о том зачем такой большой лог транзакций - за целый месяц? Он вполне может быть не больше гига, если резервирование базы настроить.

    добавлено через 5 минут
    Ну или иными словами - то что лог растет никак не связано с производительностью. Проблема размера обьясняеться неправильным резервированием базы данных. Если его настроить, лог будет меньше. Таким образом один вопрос решаеться.

    Ну а производительность - была как то заморочка в постгрессе. В запросах использовалась инструкция которая позволяла накапливать их и записывать сразу блоком. Инструкция подразумевала блокировку операций с базой данных, на время выполнения запросов которые проходили блоком. Были заметные тормоза.Может и тут чтото подобное?
     
  9. БульЁн

    БульЁн Активный участник

    1.260
    1
    Это все ясно.
    Я написал размер прироста лога с целью оценить активность использования БД.


    Такого нет (может и ошибаюсь) транзакции с блокировкой используются очень мало при критический операциях, таких операций всего бывает до 100-300 на день

    добавлено через 40 секунд
    Полная копия делается раз в неделю, дифференциальная раз в 1 час.
     
  10. Rem

    Rem Активный

    4.703
    0
    Вот это все помимо сервера БД память тоже наверняка отьедает. Как проверить работает ли своп - это у вин-админов спросите, наверняка есть такая статистика в системе. Если своп не используется системой - тогда можно что-то оптимизировать в самих данных, запросах, и т.д. Если свопит - тогда сначала память перераспределяем так, чтобы свопинга не было, или он был в каких-то разумных пределах.
     
  11. БульЁн

    БульЁн Активный участник

    1.260
    1
    У второй БД, которая поменьше объемом 2 гб, полная копия делается раз в день, дифференциальная каждые 15 мин. (в ней очень критические данные храняться - поторя которых равна прямым убыткам)

    добавлено через 1 минуту
    Ща поставлю счетчик в мониторе посмотрю к концу дня.

    добавлено через 42 минуты
    Более менее спокоен за код прог и запросы клиентов,
    так как нашел требования к серверу БД для ИС которя проще нашей раз в 10 (выяснил на основе просмотра видеоролика).
    Причем они требуют если пользователей их ИС 50 -100 то ставить в сервер два ксеона по 3 ггц
    http://www.directum.ru/1696843.aspx
     
  12. +1

    +1 Активный участник

    2.941
    5
    Разносить задачи на разные сервера. Пытаться донести это до насяльняка...
     
  13. KEKS

    KEKS Активный участник

    4.102
    0
    Предлагаю поставить на него еще и Exchange Server 2007. После месяца тормозов, удалите его. Сразу почуствуйте как скорость открытия БД увеличится. И можете со спокойно доложить руководству, что проблема решена. :d Сэкономите на новом сервере.
     
  14. zaxx

    zaxx Активный участник

    873
    0
    Убил бы...
     
  15. KEKS

    KEKS Активный участник

    4.102
    0
    Аналогично!
     
  16. Шелудивый кот

    Шелудивый кот Активный участник

    9.297
    20
    Он в каске :tnp:
     
  17. Ivanoff

    Ivanoff Активный участник

    2.564
    0
    При хорошо продуманной системе бэкапа и резерва убивать никого ненужно. А если не сталкивались с тем что бюджет на сервак маленький а скорость от винта (файловых операций) нужна по шустрее - то вам повезло.

    добавлено через 1 минуту
    Шелудивый кот, опередил ))). Интересно куда бекап сливают, и куда будут резко его раскручивать если простои недопустимы)
     
  18. БульЁн

    БульЁн Активный участник

    1.260
    1
    Поясни ?


    Бэкапы сливаются на внешний usb винт. резервные копии делаются быстро, дифф копия делается порядка 5-10 сек.
    Воспользоваться ими пока не приходилось :).

    добавлено через 5 минут
    Прошу прощения опечатался не RAID-0 а RAID-1 (зеркало) теперь понял к чему