Сколько времени тратится на Windows Server 2008?
Я использую Windows Server 2008, работающий на виртуальной машине Hyper-V. Система работает очень плохо. Мы уверены, что это из-за недостатка памяти. Я посмотрел на Как узнать, нужно ли моему Windows Server 2003 больше памяти? и я почти уверен, что при просмотре> 300 страниц в секунду эта проблема является проблемой памяти.
Однако я задаю более широкий вопрос. Я хотел бы обратить внимание руководства на количество времени, которое тратится на ожидание ошибок на странице. Есть ли способ определить, сколько времени тратится на ожидание подкачки или других ресурсов? Меня особенно интересует время, затрачиваемое интерактивными пользователями, но номер, который включает неинтерактивное использование, также будет полезен.
Чтобы прояснить, это похоже на нытье:
Эта система настолько медленная, что потребовалось буквально несколько минут, пока одно окно notepad.exe было активным, чтобы активировать второе окно notepad.exe, которое уже было открыто и отображалось. Это просто активация. Производительность немного не плохая. Я думаю, что это десятки человеко-часов в день впустую.
Я ищу способ дать понять руководству, сколько времени тратится впустую. Это происходит в то время, когда у нас на самом деле нет десяти человеко-часов, которые нужно тратить.
Извините, я не предоставил более подробную информацию.
Этот сервер используется при разработке SharePoint (WSS 3.0). На нем работает IIS 7, настроенный как минимум с одним пулом приложений на одного разработчика. У каждого разработчика есть одно или несколько веб-приложений, каждое из которых настроено в AppPool, назначенном для этих учетных данных разработчиков. Мы используем Visual Studio 2008 с пакетом обновления 1 (SP1) и SQL Server 2008. Данные SQL Server находятся на отдельном виртуальном диске от ОС.
Я видел до 8 разработчиков в системе одновременно. Сервер сконфигурирован с 2 ГБ ОЗУ, и в настоящее время увеличение объема ОЗУ не является тривиальным из-за ограничений хост-компьютера. Я надеюсь, что это будет исправлено, если я смогу представить достаточно оснований для исправления, в виде: это - то, сколько времени было потрачено впустую.
РЕДАКТИРОВАТЬ
Спасибо за ответы и комментарии. Я согласен с решением - загрузите SharePoint на сервер 4-8 ГБ и переместите SQL Server на второй сервер с 2-4 ГБ.
Но мой вопрос больше похож на: есть ли счетчики производительности или инструменты, которые могут подсказать мне количество времени, потраченное на ожидание чтения и записи страницы? Любой, который может сказать мне количество времени, проведенное в ожидании дискового ввода-вывода в очереди?
Можно получить счетчики производительности, такие как "Количество страниц в секунду", но сложнее сказать, какие значения этого счетчика "слишком велики". Для моей цели было бы лучше, если бы были "счетчики", которые могли бы сказать, сколько времени тратится из-за количества страниц, вводимых в секунду.
3 ответа
Этот сервер используется при разработке SharePoint (WSS 3.0). На нем работает IIS 7, настроенный как минимум с одним пулом приложений на одного разработчика. У каждого разработчика есть одно или несколько веб-приложений, каждое из которых настроено в AppPool, назначенном для этих учетных данных разработчиков. Мы используем Visual Studio 2008 с пакетом обновления 1 (SP1) и SQL Server 2008. Данные SQL Server находятся на отдельном виртуальном диске от ОС.
Я видел до 8 разработчиков в системе одновременно. Сервер сконфигурирован с 2 ГБ ОЗУ, и в настоящее время увеличение объема ОЗУ не является тривиальным из-за ограничений хост-компьютера. Я надеюсь, что это будет исправлено, если я смогу представить достаточно оснований для исправления, в виде: это - то, сколько времени было потрачено впустую.
Даже не глядя на требования к оборудованию SharePoint 2007, имея до 8 разработчиков с собственными пулами приложений. Я предполагаю, что SQL Server - это другая виртуальная машина, но если это одна и та же машина с Win2k8, нет никаких сомнений в том, в чем проблема.
AppPools для разработки VisualStudio (версии 2005-2008) могут легко увеличиться до 150-250 МБ на AppPool в зависимости от множества факторов. 250mb x 8devs = 2 ГБ используется. Давайте не будем забывать о памяти, которая нужна самой ОС и, возможно, SQL Server. В двух словах: вам просто не хватает оперативной памяти. Загрузите в ОЗУ столько, сколько сможете получить. Я не удивлюсь, если это решит большую часть "медлительности" сервера, по крайней мере, с точки зрения фона и, возможно, переднего плана.
К сведению: Microsoft рекомендует минимум 4 ГБ для серверов приложений SharePoint 2007 ( ссылка), но на самом деле, все, что Microsoft потребляет как можно больше ресурсов. Теперь в том же URL они упоминают минимум 2 ГБ для автономных серверов SharePoint, но если разработчики напрямую работают на этом сервере со своим собственным AppPool, ясно, что IIS поглощает всю доступную память для AppPools/Sites. Не используйте рекомендуемый минимум оперативной памяти. Постарайтесь удвоить, утроить или увеличить требования к ОЗУ, если это возможно (если позволяет бюджет).
Изменить: Вы упоминаете, что данные SQL Server находятся на отдельном виртуальном диске, но установлен ли SQL Server на том же сервере SharePoint? Сколько свободного места доступно и на сервере SharePoint? Эти дополнительные факторы могут легко потреблять ресурсы сервера и не должны игнорироваться.
Отредактировано еще раз: поскольку вы упомянули (а я не смог прочитать), что "ОЗУ в настоящее время не является тривиальным из-за ограничений хост-компьютера", существует только одно реальное решение: получить новый хост-компьютер. 2 ГБ недостаточно для запуска SharePoint/SQL/IIS/ любого периода. Извините, но IMHO, машина, на которой это работает, должна иметь как минимум 8 ГБ ОЗУ.
Отредактировано после редактирования OP:
Но мой вопрос больше похож на: есть ли счетчики производительности или инструменты, которые могут подсказать мне количество времени, потраченное на ожидание чтения и записи страницы? Любой, который может сказать мне количество времени, проведенное в ожидании дискового ввода-вывода в очереди?
Я не сталкивался с вашей конкретной ситуацией, но есть хорошая статья ( ссылка) от Microsoft TechNet по основам метрик монитора. Я не уверен, что время, потраченное на ожидание дискового ввода-вывода в очереди, - лучший способ получить то, что вы хотите (я предполагаю, что поддержка со стороны руководства).
Можно получить счетчики производительности, такие как "Количество страниц в секунду", но сложнее сказать, какие значения этого счетчика "слишком велики". Для моей цели было бы лучше, если бы были "счетчики", которые могли бы сказать, сколько времени тратится из-за количества страниц, вводимых в секунду.
Статья из Windows Networking ( ссылка) на Server 2003 объясняет эти счетчики лучше, чем я мог. FTA:
Счетчик Memory\Pages/sec указывает количество операций подкачки на диск в течение интервала измерения, и это основной счетчик, который отслеживает индикацию возможного недостаточного объема ОЗУ для удовлетворения потребностей вашего сервера. Хорошей идеей здесь является настройка оповещения perfmon, которое срабатывает, когда количество страниц в секунду превышает 50 на диске подкачки в вашей системе. Еще один ключевой счетчик, который стоит посмотреть, это Memory\Available Bytes, и если этот счетчик превышает 10% от фактической оперативной памяти на вашей машине, то у вас, вероятно, более чем достаточно оперативной памяти, и вам не о чем беспокоиться.
С помощью счетчика Memory\Available Bytes необходимо сделать две вещи: создать журнал производительности для этого счетчика и регулярно отслеживать его, чтобы увидеть, развивается ли какая-либо тенденция к снижению, и установить оповещение для запуска, если оно падает ниже 2% установленной оперативной памяти. Если нисходящий тренд развивается, вы можете отслеживать процесс (экземпляр)\ рабочий набор для каждого экземпляра процесса, чтобы определить, какой процесс потребляет все больше и больше ОЗУ. Процесс (экземпляр)\ Рабочий набор измеряет размер рабочего набора для каждого процесса, который указывает количество выделенных страниц, которые процесс может адресовать, не создавая ошибки страницы. Связанный счетчик - Memory \ Cache Bytes, который измеряет рабочий набор для системы, т. Е. Количество выделенных страниц, которые потоки ядра могут адресовать без генерации ошибки страницы.
Наконец, еще одним подтверждающим индикатором нехватки ОЗУ является Память \ Ошибки перехода / с, который показывает, как часто ссылаются на недавно обрезанные страницы в резервном списке. Если этот счетчик медленно начинает расти со временем, это также может указывать на то, что вы достигаете точки, когда у вас больше нет оперативной памяти для нормального функционирования вашего сервера.
Поэтому я бы сказал, что это объяснение действительно относится к вашим метрикам и пониманию того, что метрики действительно значат для вас. Монитор производительности немного сложен, особенно если вы не до конца понимаете, что означают счетчики в общей схеме. Я обычно читаю о счетчиках, так как их значение в реальном мире легко забыть.
Похоже, вам нужно начать использовать perfmon. Вы захотите установить счетчики для таких вещей, как память (доступные MBytes (я думаю, это будет около или в 0), % использованных байтов в использовании) и, возможно, некоторые дисковые мониторы. Скорее всего, ваш жесткий диск безостановочно увеличивает ваш файл подкачки до максимального размера. Тем не менее, я только предлагаю эти предложения, чтобы вы могли посмотреть представление самостоятельно. Ответ на проблему был в первом ответе: память. Если ваши ограничения памяти для рассматриваемого сервера составляют 2 ГБ, вам нужно купить или собрать дополнительный сервер. Я не уверен, что у вас есть лицензии на другое, но 2 ГБ недостаточно для запуска SharePoint, не говоря уже о множестве других приложений / сред, которые вы используете. Это, как говорится, нет ничего лучше, чем хороший вызов.:) Удачи!
Сервер не подходит для задач переднего плана, поэтому переключение между окнами блокнота на нем не будет допустимым показателем производительности. Вам нужно запустить Process Explorer или Task Manager и начать просматривать там некоторые статистические данные, а затем, возможно, сделать некоторые счетчики производительности и посмотреть, что они вам вернут. Также изучите другие задачи, выполняемые на сервере (вы не говорите, каковы его роли, поэтому невозможно быть более конкретным).