none
Производительность терминального w2k3 в качестве гостя Hyper-V RRS feed

  • Вопрос

  • Добрый день. 2 сервера с hyper-v в качестве гостя w2k3 x 32 SP2 с 
    активированной службой терминалов, по одной аналогичной машине на каждый 
    железный сервер. Виртуальные сервера терминалов подключены по NLB. (пользователи 
    подключаются по одному имени) Железо 2 одинаковых сервера (2х Xeon 2.33 Ггц 
    (всего 8 ядер) 16Gb оперативной памяти, RAID 10 (4 x 70 Gb SAS 15 000 Rpm))  
    Каждой из  виртуальных машин  выделено 8 Gb памяти и два логических 
    процессора. Виртуалка уходит в практически 100 % загрузки CPU в час пик на 
    7-10 пользователях (то же самое и на другом узле NLB). Пользователи работают 
    со след софтом (MS Office 2007 Word, чаще Excel, Outlook, 1С, аська и 
    Explorer) если судить по процессам то в среднем на пользователя уходит 200 Мб 
    памяти, но проблем с памятью судя по всему и нет. На 10 пользователей примерно 
    2 GB и уходит. Вопрос находится на стыке технологий и честно говоря не совсем представляю как определить узкое место в системе.Опыта поддержки терминалов с большим количеством пользователей нет, с технической точки зрения проблем с работой виртуалок, NLB и тд нет, все работает как нужно. Но вот производительность.... хотя есть коллеги у которых по 50 и более пользователей на одном сервере (правда физическом) работает. 
    Какие попытки оптимизации были предприняты:
    1. Виртуальные машины на vhd фиксированного размера, файл подкачки 2 размера ОП. В терминалке - включено кеширование данных котроллера дисков, для всех пользователей отключены все визуальные эффекты, убиты все лишние автозагрузки и приложения по автозагрузке, отключены скринсейверы для отключенных сессий, kasperky antbvirus - запрещено сканирование сети и съемных носителей. Логон пользователей быстрый - проблем при входе не возникает никаких.
    2. На хост машине только hyper-v роль ничего больше не ставилось
    Как определить проблему на стыке технологий не понятно. Microsoft пишет что показания диспетчера задач и счетчиков в виртуалке могут не отражать реальную ситуацию, как быть в такой ситуации и как четко определить в чем затык по производительности ? может быть на таком железе так и должно быть? -))
    13 июля 2009 г. 14:42

Ответы

  • Ответ очень простой- W2K3 во первых не тянет 4х виртуальных процессоров, а во вторых- тупо глючит в терминальном режиме под виртуализацией. У меня была таже проблема что и у тебя, один в один. Решение только одно- апдейтить W2K3 до WS2008, и все сразу же залетает. А с выходом WS2008R2 будет еще быстрее.

    17 июля 2009 г. 3:34

Все ответы

  • начну с конца...
    1. информация по счетчикам и "сравнению" счетчиков хоста и ВМ описана в technet и тут - http://blogs.technet.com/vm/archive/tags/Performance/default.aspx
    (Hyper-V и производительность. Часть 2 — счетчики производительности. Где правда?
    http://blogs.technet.com/vm/archive/2008/07/02/Hyper_2D00_V-Performance.-Physical-vs.-Virtual-counters.aspx
    Hyper-V и производительность. Часть 5 — Набор счетчиков «Hyper-V Hypervisor Logical Processors»
    http://blogs.technet.com/vm/archive/2008/07/30/hyper-v-5-171-hyper-v-hypervisor-logical-processors-187.aspx
    Hyper-V и производительность. Часть 6 — расчет загрузки процессора виртуальными машинами при помощи WMI
    http://blogs.technet.com/vm/archive/2008/08/10/hyper-v-6-wmi.aspx)
    2. "Виртуалка уходит в практически 100 % загрузки CPU в час пик на 7-10 пользователях" - какой именно процесс внутри виртуалки уходит на 100%? Каспер с 1С не воюют? 1С файловая или SQL-ная? сканирование локальных файлов при чтении и записи в каспере включено? был случай с windows 2003 32bit+lotus notes 7+ McAffee и включенным on read/write scan - Lotus периодически реиндексирует почовые базы, т.е. переписывает все свои файлы(около десятка файлов на юзера) McAfee все это пытался просканить. В результате ВМ "уходила в себя" полностью. Лечилось ресетом из консоли(там не Hyper-V был). Вылечилось правильной настройкой антивиря  
    3. В чем смысл выделения 32-битной W2003 8Гб оперативной памяти?
    4. У Citrix есть case study о том как для некоторого крупного заказчика при использовании Citrix Xen Presentation Server на Windows 2003 32bit и Xen Server (т.е. "аналог" Terminal Server и Hyper-V) для некоторого крупного заказчика уменьшили количество железных серверов с нескольких сотен до нескольких десятков. Решение - запуск отдельного виртуального сервера w2003 32bit 4 Gb RAM на каждые 40-50 человек, т.е. около 10 ВМ на 1 хост сервер. 


    Заходите в "гости" на http://kupchinetsky.spaces.live.com
    14 июля 2009 г. 6:55
    Отвечающий
  • 1. По ссылкам уже нашел, изучаю, спасибо.
    2. 1С SQL-ая, выключено сканирование сеттевых и подключаемых ресурсов, остальное проверю более детально.
    3. Enterprise 2003 server разве не поддерживает адресацию больше 4 GB с включенным PAE? по крайней мере ВМ видит все 8 Gb без проблем.
    4. как вариант уже пришла мысль запускать на указанной железке по 4 VM server 2003 x 32 c 4 Gb памяти, итого на двух железках можно даже при нынешней производительности 50-60 пользователей запустить, хотя сейчас приходит понимание что все эти десять пользователей относятся к так называемым "тяжелым" пользователям - запускают отчеты в 1С, у некоторых по два сеанса 1с запущено (типа быстрее думают), открыто десять окон аськи, ворда и excel, идут постоянные переключения между окнами, много заданий на печать. Думаю что для того чтобы обеспечить сносную производительность в случае неполадок на одном сервере надо еще один аналогичный сервер купить. Единственно что неудобно это как минумум 8 ВМ с терминалами. Софты ставить например - хотя тут можно прикрутить групповые политики. А еще лучше наверное с 2008 терминалом заморочится, тогда количество ВМ можно сократить до 4 (по 4 проца). но пока не удается заставить 1с 7.7 работать в 2008 сервере, хотя на форумах есть описание способов как обойти проблемы с совместимостью, пока не получилось.. будем пытаться. Кстатит XenServer установлен как вариант - он, как мне показалось по наблюдениям быстрее Hyper-v в моем случае, но не намного.
    14 июля 2009 г. 9:53
  • думаю, что надо все таки отследить процессы, занимающие основную часть процессорного времени. наличие 8 ВМ с терминалами и использование terminal services session directory действительно добавит сложностей при установке и обновлении ПО(появится реальный эффект от автоматизации таких действий либо интерс к application virtualization aka SoftGrid), но при этом юзеры в 1 ВМ могут и не ощутить, что во 2 ВМ загрузка 100%. т.е. от "тяжелого" юзера пострадают меньше его коллег. При этом если на 1 ВМ будет не 10 "тяжелых" пользователей, а 2-4 - возможно и нагрузки такой не будет на всю ВМ в целом


    Заходите в "гости" на http://kupchinetsky.spaces.live.com
    14 июля 2009 г. 10:13
    Отвечающий
  • Session Directory используется но по мне он все-таки не совсем подходит для полноценной балансировки (учет загрузки процессоров и памяти) думаю есть смысл посмотреть анализаторы от сторонних производителей, кстати в 2008 терминале это проблема уже как-то решается или все так же балансировка сетевой нагрузки?
    14 июля 2009 г. 10:56
  • Балансировка по количеству сессий
    + возможность равномерно распределять процесорное время в рамках сервера при помощи Windows Server Resource Manager(одна из фич 2008 сервера)

    TS Session Broker Load Balancing Step-by-Step Guide(http://technet.microsoft.com/en-us/library/cc772418(WS.10).aspx)

    The new TS Session Broker Load Balancing feature enables you to evenly distribute the session load between servers in a load-balanced terminal server farm. With TS Session Broker Load Balancing, new user sessions are redirected to the terminal server with the fewest sessions.

    Using TS Session Broker to load balance sessions involves two phases. In the first phase, initial connections are distributed by a preliminary load-balancing mechanism, such as Domain Name System (DNS) round robin. After a user authenticates, the terminal server that accepted the initial connection queries the TS Session Broker server to determine where to redirect the user.

    In the second phase, the terminal server where the initial connection was made redirects the user to the terminal server that was specified by TS Session Broker. The redirection behavior is as follows:

    • A user with an existing session will connect to the server where their session exists.
    • A user without an existing session will connect to the terminal server that has the fewest sessions.

    Заходите в "гости" на http://kupchinetsky.spaces.live.com
    14 июля 2009 г. 11:39
    Отвечающий
  • Ответ очень простой- W2K3 во первых не тянет 4х виртуальных процессоров, а во вторых- тупо глючит в терминальном режиме под виртуализацией. У меня была таже проблема что и у тебя, один в один. Решение только одно- апдейтить W2K3 до WS2008, и все сразу же залетает. А с выходом WS2008R2 будет еще быстрее.

    17 июля 2009 г. 3:34
  • На сервере HP Proliant DL 360G5 2x2Core 2.3Ghz, RAM 8Gb, 4 HDD SAS 10K в RAID5 + Hyper-V R2 Server запущены 2 виртуальные машины W2k3STD + Citrix.
    Виртуальные HDD выполнены в виде AutoGrowing .vhd файлов.

    Загрузка 2*60 = 120 пользователей. Полет номальный. Единственное, что изменилось - среднее время запуска приложения увеличилось с 16 до 45 секунд. Склонен полагать, что это из-за дисков, т.к. AutoGrowing .vhd ИМХО - не самый быстрый вариант.


    PS.  Опубликованное приложение - нерерурсоемкое. (80 таких же пользователей загружают CPU подобного сервера на 15-20%).

    27 октября 2009 г. 8:39