?

Log in

No account? Create an account

Ср, 18 мар, 2015, 02:58
Производительность виндоуз®

Столкнулся с проблемой: периодически комп наглухо подвисал на несколько минут, не реагируя ни на какие раздражители. Потом все рассасывалось и можно было работать до следующего затыка. По ощущением подвисание происходило в момент обращения к диску. Со временем проблема усугублялась: задержки выросли до 5 минут, а частота появления — до нескольких раз в час.

Ок, оптимизация производительности — штука универсальная. Надо составить профиль использования ресурсов, выявить слабое звено и придумать ему лекарство. Но, скажем, в Оракле для этого есть понятные инструменты (трассировки и динамические статистики), а вот как быть с виндоузом?

Правильный вопрос — уже половина ответа. Немного покопавшись, выяснилось следующее.

Старый добрый Task Manager. Вкладка Performance была единственным известным мне местом, где можно что-то посмотреть про производительность. Но если в XP это довольно бесполезная игрушка, которая рисует картинки и самые общие цифры, то в семерке там появилась кнопка, запускающая Resource Monitor, который в онлайне показывает весьма подробную информацию про процессоры, память, диски и сеть. Даже картинки там более интересные, например, видна длина очереди к диску.

Но что толку от онлайна, когда машина глухо виснет? Хочется посмотреть лог. Оказывается, теперь есть и такое счастье. Оно называется Performance Monitor, а добраться до него можно разными путями, например, правый клик на «моем компьютере» – Manage – System Tools – Performance. Как и в Оракле, в его распоряжении трассировка событий и счетчики (кто бы мог подумать). Порядок работы такой. Сначала настраиваем Data Collector Set, где определяем, какие трассы и счетчики нам нужны. Я не мудрил и воспользовался готовым набором, только увеличил время с одной до пятнадцати минут. Затем запускаем сбор данных и нагружаем систему. После этого смотрим сформированный отчет и делаем выводы.

Увиденное соответствовало субъективным ощущениям. С памятью и процессором все было неплохо, а вот диск «порадовал»:

  • Avg. Disk Queue Length: mean = 11
  • Disk Bytes/sec: max = 45 811 759
  • Avg. Disk sec/Read: mean = 0.055
  • Avg. Disk sec/Transfer: mean = 0.072
  • Avg. Disk sec/Write: mean = 0.242
  • Physical Disk Percent Idle Time: 0.682

По-русски, запросы к диску выстраиваются в длинные очереди (средней длины 11), диск молотит без передыху (меньше 1 % незанятого времени), время доступа велико, а диск справляется с 45 MB в секунду.

Итак, слабое звено понятно. В свое время купил Western Diginal Caviar Green (5400 rpm) — и прогадал.

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

Во-вторых, можно построить RAID 0, благо дисков две штуки одинаковых. Но ну его нафиг возиться.

В-третьих, можно купить более производительный винт, что и было в итоге проделано. Вот что показывает отчет для нового двухтерабайтного Seagate Desktop на похожей нагрузке:

  • Avg. Disk Queue Length: mean = 1
  • Disk Bytes/sec: max = 83 032 295
  • Avg. Disk sec/Read: mean = 0.003
  • Avg. Disk sec/Transfer: mean = 0.003
  • Avg. Disk sec/Write: mean = 0.011
  • Physical Disk Percent Idle Time: 59

Эти цифры нравятся мне гораздо больше.

* * *

Открыл для себя Speedfan и отказался от штатной асусовской EPU4 Engine в его пользу. Утилитка умеет показывать температуру чипов и дисков, читать параметры S.M.A.R.T. и управлять частотой вращения кулера. Правда, к ней надо приноровиться: заточить конфигурацию под свою маму (можно получить с сайта автора) и суметь зарядить в автозапуск (получилось только с помощью scheduler-а). Зато потом можно забыть.

* * *

Ну и заодно добавил оперативной памяти до 6 GB, чтобы спокойно держать открытыми виртуалку с макосью, фотошоп, пикасу, браузер, и что там еще взбредет в дурную голову. Теперь у меня две ненужные планки DDR2 по гигабайту, пристроить бы куда.

* * *

Видимо, это последний апгрейд, потому что DDR2 уже уступил место DDR3. Ну хоть SATA 3 совместим с SATA 2, и на том спасибо. Дальше придется менять маму, а с ней наверняка и все остальное.

Ср, 18 мар, 2015 11:26 (UTC)
hardsign

Во-первых, живительное действие оказывает добавление памяти. Я, например, воткнув в ноутбук вторую 4-гигабайтную планку, почувствовал прилив бодрости. Если раньше при запуске программ система начинала судорожно кэшировать своп и высвапливать кэш, то теперь всё делается достаточно быстро. Кстати, 8 Гбайт на 32-битной Win7 :)

Во-вторых, мне тут по работе приходится много работать с линуксовыми машинками, и я всё больше проникаюсь всякими фишечками. Windows System Monitor против кондового sar'а - это как плотник супротив столяра.

В-третьих, RAID0 строится очень просто (во всяком случае, в линуксе) и работает очень шустро, но надёжность такого решения - ниже плинтуса, поэтому на домашнем компе категорически не рекомендуется. Уж лучше SSD.

А в четвёртых, зачем благородному дону виртуалка с макосЪю?

Ср, 18 мар, 2015 16:25 (UTC)
egorius

1. Нет-нет, с памятью как раз все было в норме. А какой, если не секрет, смысл в 8 GB на 32 битах, если винда видит только 3 (XP, по крайней мере)?

2. Дык, в юниксе-то понятно все есть. Меня удивило, что и винда подтягивается. Я раньше к ней относился совсем как к игрушечной.

3. Ну и надёжность тоже остановила, да.

4. А Макось мне нужна для проявки фоток, под ней RPP работает.

Ср, 18 мар, 2015 17:03 (UTC)
hardsign

1) Это тебе кажется, что нормально, а на самом деле дело в ней, родимой. Смыслъ™ гуглить по слову PAE. В линуксе 32-битном есть из коробки, а в семёрке заводится с изрядным количеством ъов...

2) Microsoft вообще вызывает огромное уважение. Но вот висящее над ним Проклятье Маздая®...

Edited at 2015-03-18 17:10 (UTC)

Ср, 18 мар, 2015 17:48 (UTC)
egorius

Не, я в циферки верю, они не обманывают. И потом, когда я отчет смотрел, памяти уже было 6 GB. Так что в моём случае диск виноват.

Кстати, под линукс есть atop прикольный. Использовали его однажды, чтобы понаблюдать за поведением процесса.