Пользователь
0,0
рейтинг
22 октября 2010 в 12:54

Ускорение загрузки Windows for fun and profit

image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…

Конкретных и общеприменимых советов по оптимизации работы ОС быть не может точно так же как не может быть конкретных советов по ускорению работы любой случайно взятой программы. Точно так же как и в отдельных программах, работа всей системы может быть серьезно замедлена из-за одного-двух на первый взгляд незначительных мест. Для нахождения подобных «бутылочных горлышек» в программах существуют инструменты, называемые профайлерами. Нет ничего странного, что для нахождения «бутылочных горлышек» в операционной системе мы тоже будем использовать профайлер (никаких кавычек — это действительно профайлер причем одновременно и sampled и instrumented). С недавних пор WPA Tools распространяются в составе Windows SDK. Ставить полный SDK совершенно необязательно. Можно установить только «Windows Performance Toolkit»:



Собирать трейсы будем при помощи xbootmgr. Из магии используется только автологгер, включающий сбор ETW трейсов начиная с самого winload. Для вызова справки можно ввести xbootmgr -help — приводить ее здесь я не буду. Для желающих оценить масштаб можно ввести xperf -providers (или logman providers). Каждый провайдер имеет несколько «ключевых слов» (keywords), каждое «ключевое слово» включает/выключает несколько типов событий (event).

Итак начнем. Осторожно, следующая команда автоматически перегружает компьютер: xbootmgr -trace boot

После перезагрузки в каталоге, в котором эта команда была выполнена останется файл «boot_BASE+CSWITCH_1.etl» (BASE+CSWITCH это те самые «ключевые слова»): xperf boot_BASE+CSWITCH_1.etl

И можно начинать просмотр. Увиденное навевает печаль:



Explorer готов к 36-й секунде, но из-за 100% загрузки единственного (не особо быстрого) диска, система еще 2 минуты будет не очень отзывчивой (меню пуск будет открываться мгновенно, а вот с запуском программ придется подождать). ReadyBoot пытается чего то сделать и сначала у него даже получается (оранжевое и зеленое), но постепенно накапливающиеся отклонения от бутплана сводят его попытки на нет.
Что еще печальнее, так это то, что вместо собственно чтения данных, большую часть своей стопроцентной занятости диск проводит в метаниях головки к центру диска и обратно:



Небольшая справка: ReadyBoot собирает профиль использования диска при каждой загрузке и потом сервис SysMain строит бутплан на основании пяти последних загрузок. Соответственно, чем чаще загружаетесь, тем лучше будет «угадан» бутплан на следующую загрузку и тем быстрее она будет. Помимо этого, префетчер собирает статистику о том, какие файлы и в каком порядке были использованы во время загрузки и складывает эту информацию в %SystemRoot%\Prefetch\Layout.ini

Эту информацию использует встроенный дефрагментатор для принятия решений о размещении файлов.


Соответственно первой «оптимизацией» будет многократная перезагрузка и дефрагментация. Очень удобно, что xbootmgr может сделать это за нас.

xbootmgr -trace boot -prepSystem
По умолчанию выполняется шесть перезагрузок:



После второй начинается дефрагментация:



Когда все закончится, в каталоге, из которого был запущен xbootmgr останется 6 файлов с трейсами каждой из подготовительных перезагрузок а также все тот же boot_BASE+CSWITCH_1.etl

Смотрим, изменилось ли чего нибудь. А все изменилось довольно заметно:



ReadyBoot справляется со своей задачей значительно лучше и как следствие эксплорер готов на треть быстрее, а время активности диска сократилось почти вдвое.



Мы все еще ходим в центр диска и этим мы займемся позже, но disk seek-ов уже заметно меньше, и это уже какой никакой, а успех. Пока же, обратим внимание на такой график:



Это же безобразие. Пока кто то выкладывается на 100%, некоторые отдыхают. Будем исправлять. Как обычно разменивают процессоное время на размер читаемых данных? Правильно, компрессией. Исправлять будем сжатием папок Windows и обоих Program Files-ов. Попытку сделать это из загруженной системы нельзя назвать успешной — какие то файлы пакуются, какие то нет. В общем так жить нельзя:



Перегружаемся в System Recovery и выполняем оттуда compact /c /a /i /s: каталог для наших трех каталогов. Скриншотов не будет, так как мне было сильно лень делать скриншотилку для WinPE — придется поверить на слово (а лучше перепроверить экспериментально). prepSystem придется провести еще раз, так как layout диска после сжатия сильно поменялся.

Ну и проверяем, чего у нас вышло-то:



Эксплорер готов к 20-й секунде, еще чуть меньше минуты идет дисковая активность, но уже чуть меньше 100%.

И да, мы все еще ходим в центр диска:



Тултипы подсказывают нам виновника. Перепроверям



Заодно под раздачу попадают скайп и стим. И правильно — нечего им делать в автозагрузке с такими аппетитами. Их всегда можно запустить из супербара/старт меню.

Последние штрихи:

Совершенно невменяемое время загрузки одного сервиса:



И второго:



Мы договорились не отказываться от функционала, даже если он нам на фиг не уперся. Поэтому отключать сервисы мы не будем. Мы просто переключим их в «Automatic (Delayed start)»:



В случае с Microsoft Antimalware все несколько сложнее:



Достаточно быстро выясняем, что дело в том, что сервис относится к группе «COM Infrastructure» и не может быть загружен позже этой группы. Идем в реестр и вытаскиваем его из этой группы, после чего спокойно доделываем дело:



На всякий случай еще один prepSystem и вот финал:



Эксплорер загрузился на 17-й секунде, на 18-й фактически прекращается дисковая активность.

Можно полюбоваться на строго упорядоченный доступ к диску:



Быстрый SSD и/или тотальное вырезание функционала могло бы сократить время загрузки до десяти секунд и меньше.

А вывод из всего этого такой: прежде чем что либо «оптимизировать», стоит определить те минимальные изменения, которые возымеют максимальный результат.
@amirul
карма
465,7
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (349)

  • +224
    Вах-Вах! Ожидал очередную пачку «вредных советов» по отключению служб и подкачки, а тут МЯСО!
    • +8
      Хабр торт :)
      Для любителей w2003/XP есть bootvis, но я не могу похвастать кардинальным уменьшением длительности загрузки.
      • +1
        Вообще говоря, ETW появился в XP. С висты ему приделали xml манифесты (вместо mof) и назвали это Crimson. Другое дело, что в икспишечке и близко нет тех шести с чем то сотен провайдеров, которые есть на семерке. Ну, еще один повод для апгрейда :-)
        • 0
          Спасибо вам огромное!
          Эсплорер готов
          до: к 110 секунде :)
          после: к 30

          Также запустил с флагом DRIVERS, и выяснил, что по тыще раз грузятся 4 странных драйвера, типа mup.sys(какойто системный) и eamon.sys(нод32). Притом неокторые экземпляры eamon.sys и по 14 и по 23 секунды грузятся((( Что с жтим делать, и вообще. надо ли что-то делать — не знаю((

          А еще я выяснил, что дропбокс и нод32 жрут 70% дискогого времени при загрузке. Но вина здесь скорее не их, а моя, т.к. я когда был маленький придумал себе архитектуру хранения данных, так она и идет: ось у меня на диске С, на котором больше ничего нет, а все программы на Е. Что непременно заставляет бегать головку диска от начала диска (где лежит диск С) к середине (где лежит диск Е). А я то думал, что у меня так часто хддшники ломаются) Оказывается я мудак(
          • 0
            Что же тогда делать если хочется систему и программы иметь в разных местах, чтобы сильно не париться, если всё сломается?
            • 0
              Думаю не делить один физический на два логических или более. А поставить систему на один физический, программы на другой физический диск.
    • +2
      habrahabr.ru/blogs/windows7/102669/ — еще немного мяса про оптимизацию энергопотребления
  • +9
    Качественный подход. Надо будет попробовать.
    • +5
      Выигрыш от сжатия сильно зависит от того, насколько процессор быстрее накопителя. Хотя с другой стороны, я не видел, когда бы это ухудшало ситуацию — иногда просто не сильно улучшает. С другой стороны, место на диске экономится
      • +1
        Я видел, когда сжимаются все подряд файлы, но дефрагментация не производится. И не производилась N лет до этого ;)
      • +1
        А нужна ли дефрагментация на SSD и как ее избежать в этой инструкции? На сколько эффективно сжатие папок если процессор Атом 270?
        • +1
          И да и нет. Для SSD отсутствует пенальти на disk seek (поэтому укладывать файлы плотно друг к другу не надо), с другой стороны SSD читает блоками что то около 256К, и желательно чтоб данные в каждом блоке были более менее взаимосвязаны (лучше всего — относились к одному файлу). Сжатие вряд ли поможет атому.
          • +1
            А можно ли сделать образ фс, сделать на нем все оптимизации и залить обратно? Мне кажется, операции дефрагментации и сжатия сильно расходуют ресурс ssd.
            • +2
              Можно шаманить и над образом. Честно говоря мне такое в голову не приходило :-)
              Но как по мне — эта статья просто демонстрация процесса оптимизации, по сути же ускорение загрузки на минуту или даже на две — как по мне баловство
              • +2
                Если посчитать ускорение не в минутах, а в процентах, то что в у вас на графиках — получается совсем не баловство :)
                • 0
                  Ну это да. Очень хорошая демонстрация процесса. Но в реальной жизни мы выигрываем минуты, а не проценты :-)
                  И если перегружаться только при апдейтах, процесс оптимизации загрузки превращается в такую увлекательную игру для ума, не имеющего никакого отношения, собственно, к реальности
                  • 0
                    Ну, вот тут одновременно и соглашусь и нет.

                    Т.к. в жизни-то конечно минуты, но относительность восприятия величин — делает свое дело.

                    Это как с ноутбуками — отдельно 1 кг — это малый вес, почти не напрягающий. Но при этом ноуты с весом 1 кг и 2 кг — ощущаются совсем по разному.

                    Так же и со скоростью отклика UI, лишний десяток милисекунд — может сильно подпортить впечатление.

                    Аналогично и со временем загрузки.

                    Все потому-что мы интуитивно (или по привычке) знаем что такое «быстро», а что такое «медленно». И когда что-то «медленно» — оно начинает напрягать. )

                    Раньше вот с аудио-касет игрушки стартовали — 4-5 минут было норма… а 2 — казалось быстро. В два раза быстрее — не хухры-мухры )

                    Такой вот минутно-процентный дуализм. :)

                    Насчет же того что хибернейт рулит — согласен на все сто. Кстати, может быть вы знаете какую-нибудь шаманскую методику ускорения именно хибернейта? :)
                    • 0
                      Ускорять там к сожалению практически нечего. Вся используемая память пакуется и сбрасывается на диск. Причем hiberfil обычно нефрагментирован. Собственно ответом здесь будет использовать меньше памяти или иметь более быстрый диск :-)

                      Есть еще гибридный сон. Все сбрасывается в hiberfil, но система не выключает питание («Спящий режим»), а уходит в стендбай («Ждущий режим»). Если питание не пропадало — просыпаемся мгновенно, если пропадало (или системе показалось, что смысла ждать уже нет и можно поспать) — восстанавливаемся из хибернейта. Best of two worlds
                      • 0
                        Жаль если действительно пошаманить совсем никак. )
                        Потому-что скорость гибернации — то что на самом деле очень и очень нужно.

                        Фишка в том что обычно закончив дело (презентацию\совещание), нужно быстро упихать ноут в сумку и топать по делам.

                        И вот в этот момент приходится ждать окончания гибернации. Пихать в процессе не рискую — т.к. сохранность харда крайне важна, а в процессе гибернации как-раз идет самая активная работа.

                        В итоге приходится сидеть, тупо смотреть в ноутбук и ждать минуту пока он отключится.

                        Сейчас вот померил, хибернейтнутся.

                        Конфигурация:
                        HP Pabilion tx 2000 — AMD Turion X2 Dual-Core 2.1 GHz
                        3 Гига ОЗУ,
                        HD — WD 500 GB, SATA, 8 MB Cache, 5400 RPM
                        Win 7 32bit

                        Занято памяти 1.55 ГБ (типичная ситуация).

                        Результат:
                        Гибернация, до выключения: 51 сек.
                        Восстановление до logon screeen: 57 сек.
                        До показа эксплорера +5 сек (1:02).

                        На вскидку, по ощущениям — это как — нормальные показатели? :)

                        Просто тут даже лишние -10 секунд к ускорению выключения очень упростят жизнь.

                        Sleep же не подходит, т.к. кушает батаею. Да и было пару раз, когда ноут в сумке из слипа выходил (хз как). Хорошо случайно полез за вещами и заметил, он к тому моменту был нагрет так что за корпус было не взяться. %)
                        • +1
                          Навскидку что то не так.
                          xbootmgr умеет трейсить процесс засыпания (-trace hibernate). Попробуйте включить — может чего нибудь прояснится.
                          Я на днях посмотрю какую информацию он вообще выдает в этом режиме — никогда до этого не заглядывал.
                        • +1
                          Сделал на ThinkPad T500, занято те же полтора гига.

                          Вот там где сплошная линия — процессоры уже на HIGH_LEVEL занимаются сбросом и чтением (в данном случае где то 25 секунд каждый). Если эта стадия занимает больше всего времени — посмотрите насколько фрагментирован файл hiberfil.sys, померяйте скорость линейного чтения и пр… Если же есть большие задержки до этого — просто смотрите кто это там держит систему.
                          • 0
                            Большое спасибо, поэкспериментирую.
                            О результатах обязательно напишу.
                          • 0
                            > ThinkPad T500
                            Ну это я немного раскатал губу. На самом деле это был W500
                          • 0
                            Нашел наконец время что бы повозится с производительностью… нда, все действительно печально, хибернейтится оно в 1.8 раза дольше чем упомянутый выше W500 :|

                            Вот что я увидел на первом тесте:
                            1. habreffect.ru/files/714/328ef1d4e/1-hb-take1.jpg

                            Но как оказалось, я его по случайности провел в режиме Power Plan «Balanced» (на батареях работаю в нем, для экономии энернии… и не всегда вспоминаю о переключении).

                            Проверка на «High perfomance» — улучшила результат, но не сильно.
                            2. habreffect.ru/files/886/3ad5504d6/3-hb-io-take2vs4.png (верхний график)

                            И-то возможно половина причины ускорения в том, что это был второй хибернейт подряд.

                            Покопавшись в процессах, я увидел интересное, например что Jing в момент хибернейта занимается черти чем: 3. habreffect.ru/7e5/76e876fa6/2-hb-process.jpg
                            (левая — первый хибернейт, правая — воторой хибернейт, в high perfomence)

                            Придется от него отказаться, искать другую скриншотилку. :)

                            Так же то, что много дисковой активности приходится на антивирус… в том числе на проверку pagefile.sys %)) Настроил что бы он проверял файлы только при обращениях на чтение, а не на запись. pagefile добавил в исключения.

                            Как итог, время в начальной и конечной фазе хибернейта сократилось на 5+10=15 секунд… но время собственно выгрузки увеличилось на аналогичный промежуток!!! :))
                            2. habreffect.ru/files/886/3ad5504d6/3-hb-io-take2vs4.png (нижний график)

                            Теперь вопрос в том — можно ли уменьшить собственно время выгрузки. Почему оно у меня настолько больше? На W500 — быстрый хард? :) Фрагментация?

                            У меня вроде, там где показывает профайлер — не сильно по диску скачет в момент хибернейта (как посмотреть фрагментацию конкретного файла, пока не знаю, винда говорит что фрагментация диска 0%;):
                            4. habreffect.ru/ba7/518551a00/4-hd-io-detail.png

                            Хард вроде тоже особых аномалий не проявляет (тестил на работающей системе):
                            5. habreffect.ru/08b/69cb1a9e6/5-hdd-speed-test.png

                            И еще раз спасибо за статью… пока разбирался, скилл профайлигна несколько прокачался :)
                        • +1
                          >> Да и было пару раз, когда ноут в сумке из слипа выходил (хз как).
                          Проверь таск обновления Media center в TaskManager. Он очень долго мешал мне жить. Так как по умолчанию в нем указано, что должен запускаться даже если компьютер выключен.
                          • 0
                            Хм… любопытно, спасибо.
                            Но интересно — как? Оно в биосе таймер проставляет? Это зло! %)
                            • 0
                              Я сейчас не вспомню как точно он называется.
                              Но он вечно врубал мне ком из слипа в 5 утра, что мягко говоря напрягало
                              • 0
                                А, точно. из Слипа вполне возомжно… и без таймера. 8)
              • 0
                У меня ноут грузится с нуля до рабочей системы за пару минут. Если его ускорить на минуту — это в два раза быстрее.
                • +1
                  «Не держите его так» :-)
                  Hibernate FTW, серьезно. Помимо ускорения, собственно, загрузки у Вас будут загружены все приложения, открыты документы и пр…
                  Перегружаться стоит только тогда, когда не перегружаться нельзя (апдейты, например)
            • +1
              Если вы сделаете образ именно ФС, а не диска, то вам достаточно залить его назад, и все, абсолютно ВСЕ файлы будут нефрагментированны.
              • 0
                Тоже верно. Если при этом начинать заливать в порядке, указанном в layout.ini — они еще расположены будут очень близко к друг другу.
  • +1
    Вопрос — пару раз при загрузке семерки выскакивало окошко, которое показаывало какое приложение на сколько замедляло старт винды (было связано в антивирусом, который вешал систему на минуту при старте). Каки это окшко\журнал запустить вручную?
    • +2
      Этим занимается WDI (Windows Diagnostic Infrastructure). Запускается скорее всего либо из сервиса либо из службы, но на самом деле это не нужно, окна они показывают на основании анализа файла %SystemRoot%\System32\wdi\LogFiles\BootCKCL.etl () который собирается при каждой загрузке и содержит (среди прочего) информацию о запуске процессов, о загруженности диска и процессоров. Это такой же ETW Log (.etl), как и те, что собирались автологгером и его можно просматривать xperfview-ом
      • +1
        Спасибо. Вечером посмотрю.

        И спасибо за статью :)
        • +1
          Не уверен, но можно заглянуть еще в %SystemRoot%\diagnostics — там лежат PowerShell скрипты, которые занимаются диагностикой. Вообще WDI — достаточно закрытая штука (no user serviceable parts, ага). Так что как там все конкретно устроено — я не знаю.
  • +1
    Отличная статья. Пошел ускоряться:)
    • +6
      Имейте в виду, что «compact /c» лично у меня занял 3 часа, так что надеяться на «сейчас быстренько ускорюсь и продолжу заниматься своими делами» не стоит :-)
      Лучше оставить на ночь. Причем можно запустить сжатие параллельно в трех окнах
      • +1
        Спасибо, буду иметь ввиду.
        • НЛО прилетело и опубликовало эту надпись здесь
          • +15
            пожалуй уж тогда «спасибо, буду иметь винду»
  • +1
    Спасибо за хорошую статью.
    Как раз сейчас требуется такой подход к серверу с win7.

    С большой радостью почитал бы еще подобных материалов.
    • +8
      Сервер с Win7… Нда.
      • +1
        Дык они выпущены в один день были. 2k8r2 надо полагать. Хотя я лично знаю людей, которые пускают серверные ворклоады на клиентский SKU (а в Win7 тот же IIS включен в поставку — почему бы и не использовать :-) )
        • +2
          На несерверных ОС IIS очень жестко ограничен по количеству одновременных подключений.
  • +7
    Лично я для себя проблему медленного запуска Windows решил использованием «Ждущего режима», вместо банального «Завершения работы». А так вообще перезагружаю систему раз в 1-2 недели, из профилактических соображений. Было время, когда у меня Windows 7 около 2х месяцев без перезагрузки работало, и каких-либо тормозов не наблюдалось.
    • +3
      Да я тоже. Диск 5400 выдает во мне пользователя ноутбука. А перегружать ноут, когда можно просто хлопнуть крышкой — это сильно на любителя (хотя надо сказать еще до ноутов я пользовался hibernate-ом на постоянной основе)
      • +5
        Хлопнуть крышкой — не лучший метод, Мне кажется. А если надо будет закрыть крышку, но чтобы он не засыпал? Например, на ночь оставить качать чего-нибудь с тех же торрентов, но чтобы не светил? Я всегда настраиваю сон на кнопку питания, а при закрытии крышки просто выключается экран. Очень удобно, советую.
        • 0
          для отключения дисплея — у меня на ноуте есть Fn + F7 (или 1 из соседних F-ов — не помню).
          • +1
            У Меня тоже есть. Но как-то нравится Мне закрывать, и всё :3
            Опять же, а если надо закрыть крышку, оставить работать и понести куда-нибудь? Тоже пригодится не засыпать.
            • 0
              Таскать работающий ноут опасно (если он не ssd, конечно) — незапаркованные винты значительно менее устойчивы к физическим нагрузкам, чем запаркованные. Но вообще — дело вкуса, да.
              • 0
                Я таскал как-раз с SSD.
            • 0
              А еще греется во время работы. Тоесть в сумку уже поставить — не лучшая идея
              • 0
                Да ну! Это же не кухонная плитка, это же ноутбук!
                Я сто раз так делал — он у Меня аудио конвертировал, пока Я его нёс.
                • 0
                  Это у Вас ноут хороший.
                  Мой MSI как-то в сумке включился. Заметил только через час времени.
                  Ноут пришлось в холодильник сунуть, бо прогрелся он просто таки капитально, и пованивал :)
                  Хорошо хоть работает :D
                  • 0
                    Это Я делал с Eee PC 901. Он — не хороший, он — обычный нэтбук. Это у вас что-то всё совсем плохо с ноутом.
                    • 0
                      Меж нетбуком и ноутбуком всё же есть разница.
                      У меня ещё не самый горячий. Есть модели которые на коленях держать нельзя, не то что носить в сумке :)
                      • 0
                        А Я думал, что самый горячий — Macbook Pro.
        • 0
          Как уже написали, отключение дисплея есть на всех современных ноутах. Да и перенастройка реакции на закрытую крышку занимает от силы секунд 20. Если «оставлять на ночь» — это скорее правило, чем исключение, то да, лучше не реагировать на крышку вообще. Если же это делается раз в пятилетку — то удобнее «хлопать крышкой»
        • 0
          Так нарушается процесс естественного охлаждения через верхнюю часть корпуса.
          Проще выключать монитор, такая кнопка обычно есть.
    • +1
      ну, по-большему счёту проблему медленного запуска windows вы не решили, просто сделали так, чтоб эта проблема проявлялась очень редко
      • +2
        Ну как сказать… если у меня система перезапускается раз в 10 дней и скорость загрузки 1мин, а у вас она перезапускается каждый день и пусть даже за 30сек, то получится, что в среднем на перезагрузку системы у меня будет уходить в 5 раз меньше времени.
    • –1
      Я решил это гибернацией. Но в последнее время гибернация тормозит почти также, как полноценное включение и загрузка. Причину пока так и не нашел.
    • 0
      Да, Семерка ужe позволяет иметь недельные аптаймы, что сильно облегчает жизнь. Плюс в ней как-то довольно хитро реализован Hibernate — за то время, что она у меня засыпает, явно не все 8 гигабайт памяти пишутся на диск, то жe самоe при побудке — уж очень быстро.
      • +7
        Месячные и более аптаймы можно было и на 2000/XP иметь между прочим.
        • 0
          Но не на каждом компе. А тут я могу не выключать семерку неделей и она не будет тормозить через пару дней. с XP такое просто так не выйдет
          • +6
            У всех выходит, а у вас нет…
            • –2
              Ну за всех я бы не говорил…
            • –1
              У вас винда не падает? Руки кривые! :-)
          • 0
            Главное за эту неделю пару раз перезапускать Firefox и Opera, у меня эти заразы на работе отжирают по 500-600 Мб памяти каждый, если не перезагружать время от времени — какие-то у них жестокие утечки памяти.
            • 0
              настройте кэш
              • 0
                Пните меня в нужном направлении, пожалуйста. Я пытался заниматься этим вопросом. Вплоть до того, чтобы полностью отключать Memory Cache в обоих браузерах. Это никак не изменило ситуацию.
                • 0
                  Вводим в адресной строке about:config
                  Смотрим параметры:
                  browser.cache.disk.capacity
                  browser.sessionhistory.max_entries
                • 0
                  tracker2k.kiev.ua/prozhorlivyj-firefox-i-dieta-dla-nego.html
                  rulinux.net.ru/node/154

                  Но главное зло — это Google Toolbar. Если стоит, попробуйте отключить, у меня FF без него больше 300 мегов не занимает (около 30 вкладок).
                  • 0
                    Спасибо, FF вроде бы несколько успокоился, а вот опера не поддается. И что обидно, гугление не приводит к результатам: жалобы есть, решений нет.
          • 0
            вы что-то удивительное говорите. у меня NT4 месяцами работала. 2-3 месяца аптайма было типичным делом.
        • 0
          Можно было. Но очень многие инсталляции (обновления драйверов) требовали перезапуска системы, в Семерке намного меньше. Ну и синий экран я за полтора года в Семерке видел всего раза два или три, Хрюша падала все-таки чаще.
          • 0
            У меня рекорд аптайма на ХП был 170 с чем-то дней. На нормальном рабочем компе, с файрфоксом, студией и пр. Потом пришлось перезагрузить при обновлении антивируса :)
        • НЛО прилетело и опубликовало эту надпись здесь
      • +1
        1. Сбрасывается не вся память, а только используемая (та что находится в Working Set-ах) — можно посмотреть на пустой Standby List после каждого hibernate-а.
        2. При записи, hiberfil пакуется хитрым алгоритмом, специально предназначенным для скоростной упаковки/распаковки, но имеющим относительно низкий коэффициент сжатия.
    • 0
      win7 не работе не перезагружал около года, никаких тормозов не наблюдаю.
      Привет из 2015
  • +6
    Статья очень грамотно написана. Действительно, редко когда встречаются руководства для подобных низкоуровневых манипуляций. А большинство людей свято верят, что ускорят компьютер если отключат SuperFetch и Windows Search…
    • +1
      Спасибо, наверное надо где нибудь расписать чего люди теряют при выключении SysMain. В данной статье упоминается создание бутплана для ReadyBoot-а и создание layout.ini для дефрагментатора. Уже одного этого достаточно чтоб даже не приближаться к нему. Там еще ReadyBoost (который в принципе неплох как раз для слабого железа), ReadyDrive (достаточно редкие пока что гибридные накопители) и собственно суперфетч, который таки весьма неглупая штука.
      • 0
        и собственно суперфетч, который таки весьма неглупая штука.

        Напишите, как настроить суперфетч, чтобы он не пытался записать в память (и забить её и привести к тормозам системы) большие файлы (фильмы, образы) при копировании с одного диска на другой (замечал только в этих случаях). Да чтука хорошая, но в некоторых редких случаях приводит к сильному замедлению работы.
        • +1
          Если мне не изменяет память, то копирование файлов в оперативную память при копировании их с места на место позволяет сильно выиграть в скорости.
          Да и чего памяти простаивать? Это не ресурс, чтобы его экономить. Она должна работать.
          • 0
            Я уточнил: забивает память фильмами и образами полностью, и что либо делать на компьютере уже проблематично некоторое время.
            • 0
              Не замечал такого на своей системе. Может оперативной памяти маловато?
              • 0
                4Гб. На висте было сильно заметно даже при простых операциях, например включаешь фильм и слышно как начинает работать винт, а в мониторе ресурсов видно как этот фильм в память загружается. В 7ке очень редко, но бывает когда нужно подключить другой винт и перекинуть инфу, то проблема опять заметна.
                • 0
                  Ну дык, это работа кеша. В ваших лучших интересах иметь забитый standby list и иметь минимум free list-а. Standby — это все та же свободная память, но ХОТЬ С КАКИМИ ТО данными, а вот free list — это просто потраченная впустую память.
                  • 0
                    Проблема в том, что когда что-то копируется с HDD на большой скорости, то что либо ещё делать в системе не реально, особенно интересно смотриться когда скорость копирования файла низкая пока он не закешируется. Причём копирование файлов в XP к таким проблемам с потерей производительности не приводила.
                    • 0
                      Не замечал подобного ни в висте ни в 7. И да, суперфетч здесь в любом случае ни при чем. Однократное копирование какого нибудь файла ему что слону дробина
                    • 0
                      Помоему, кэш так работает на всех последних виндах и в линуксах.
                      Стоит просто понимать, что по идее кэш — сразу же будет освобожден, если память потребуется какой то программе.
                      Ну по крайней мере на линуксе так — после долгой работы память занята целиком (у меня 6Гб, занято около 6), но большая часть занята кэшем и буферами, и на скорости работы новозапускаемых программ это вообще никак не сказывается.
                      • 0
                        Видимо я не так изъяснился — меня не волнует то, что память занята, меня полнует то, что когда копирую файлы, системные процесы также копируют эти файлы в память и скорость копирования и производительность системы падает.
                        • +1
                          Чтение данных с диска в память при копировании обязательно в любом случае. Прямого копирования с винта на винт еще не изобрели :D
            • 0
              Почему то я уверен, что суперфетч этого не делает. В любом случае, теперь Вы знаете о «сверхсекретном» инструменте, позволяющем посмотреть кто именно загружает файлы в память.
              • 0
                У меня на висте с включенным суперфетчем поролись болванки в ImgBurn'е. Начинаешь записывать диск — появляются жуткие тормоза, в Resource Monitor вся память забивается записываемым файлом у процесса суперфетча, затем imgburn виснет.
                Выключаю службу суперфетча — запись проходит нормально
                • 0
                  Подтверждаю, тоже подобное было.
        • +2
          Насколько я знаю, он и не пытается. Кеширует файлы файловая система на пару с кеш менеджером и делает это независимо от любых суперфетчей. Суперфетч же префетчит файлы исходя из истории Вашей активности. Причем разбивает сутки на 4 интервала и каким то хитрым образом использует цепи Маркова для предсказания Ваших последующих шагов. К примеру, если Вы с утра пришли на работу и запустили браузер (ну кто ж сразу к работе приступает то), значит минут через 40 дойдет очередь и до почты и ее надо бы подгрузить в память заранее (собственно это и называется PRE-fetch).

          Фильмы, которые открываются с sequential only то ли вообще не кешируются то ли кешируются на Stanby list 0, что значит их выкинут при первой же необходимости. С торрентами сложнее, но я честно говоря не понимаю, почему не выставить низкий I/O приоритет потоку, а вместо этого задрачивать файл постоянными переоткрытиями.
          • 0
            А есть где нибудь подробное более-менее подробное описание принципа работы суперфетча, и возможностей его настройки?
            • 0
              У Соломона/Ионеску в пятом издании более менее подробно расписывается. Возможностей настройки нет. Это чисто внутренний механизм, не предполагающий вмешательство пользователя.
            • 0
              Не думаю, что его можно настраивать. Но сбросить его кэш можно удалением prefetch файлов.
          • 0
            А вы не могли бы подсказать, как бороться со следующей проблемой:
            имеется ноутбук с core i3 530, 4gb RAM, Win 7 HP x64 и HDD Hitachi TravelStar 7K500 (7200 rpm)
            исходя из различных обзоров — для ноутбука один из лучших жестких дисков
            но
            стоит запустить utorrent с максимальной скоростью загрузки/отдачи (~4-5MB/s) и минут через 40-60 у системы забивается память (причем, судя по данным task manager'а, не кешем) и она начинает жутко тормозить
            если же utorrent'у поставить ограничение около 500KB/s, тогда система продолжает работать вполне нормально
            • +1
              У старых версий уторента был баг, при большой скорости он забивал всю память. В последних давно не встречал.
              • 0
                Ну я использую 2.0.4. Насколько мне известно, это было в 1.8.х? Или же вы говорите про бета-версии?
                • 0
                  У меня на 2.1, и 2.2 такого бага небыло, на всех до 2.0 был, поэтому сидел на bitTorrent.
                  • 0
                    А сейчас вы чем пользуетесь? bitTorrent'ом, или uTorrent'ом?
                    К сожалению, некоторые трекеры, которыми я пользусь, запрещают использование beta-версий utorrent'а, поэтому не могу обновиться до бета-ветки.
                    • 0
                      Сейчас uTorrent 2.2, он уже RC (link)
                      • 0
                        Попробую его. Спасибо.
                        Правда, он тоже запрещен на одном трекере. Думаю, переживу :)
                        • 0
                          А почему запрещен? Просто интересно…
                          • 0
                            Возможно, потому, что он основан на TBDev :)
                      • 0
                        Не помогло. Полтора часа поработал и, в итоге, сожрал около 1.5Гб ОЗУ. Странно то, что в TaskManager'e или ProcessExploror'e отображается, что он использует лишь 50Мб ОЗУ. Но, стоило лишь завершить работу uT, как 1.5Гб ОЗУ волшебным образом освободились.

                        Настройки кеширования пробовал разные (в uT). Сейчас стоят:

                        Кешировать запись на диск;
                        Записывать нетронутые блоки каждые 2 минуты;
                        Сразу записывать завершенные части
                        Включить кеширование чтения с диска
                        Удалять устаревшие блоки из кеша
                        Отключить Windows-куширование при записи на диск
                        • 0
                          ОЗУ никто не «жрет». Оно используется для кеширования. Если ничего более подходящего нет — будут закешированы раздаваемые файлы. Проблемы начинаются когда из кеша начинают выталкиваться нормальные файлы (например экзешники) и за ними приходится каждый раз лазить на диск. По поводу разрастания System Working Set — не беспокойтесь. При первой же необходимости его подрежут
                          • 0
                            Дело в том, что при этом и система начинает заметно «тормозить». Если бы она не реагировала заметным уменьшением быстродействия на кеширование юторрентом, я бы и не стал разводить демагогию.
                            • 0
                              Там ниже показано как понизить I/O приоритет. Чтобы посмотреть как IoPriority влияет на работу системы, запустите штатный онлайн дефрагментатор и поработайте. 100% загрузка диска практически не сказывается на отзывчивости системы. Дело не в кешировании как таковом, а в том, что авторы uTorrent-а не удосужились сообщить системе, что данный ввод/вывод менее важен, чем все остальные клевые штуки, происходящие в системе
                              • 0
                                Еще до предыдущего моего сообщения я уже включил данные настройки в реестре. Не помогло :)
            • 0
              Task manager вообще говоря — довольно обманчивый инструмент. Чтоб правильно интерпретировать то, что там написано надо довольно серьезно разбираться в потрохах винды :-)
              Его надо вообще выкинуть из поставки (тем, кому надо — скачают Process Explorer, а остальным он только вредит :-) )

              Что же до торрента. Попробуйте понизить uTorrent-у приоритет. Насколько я понимаю, это должно привести к снижению I/O приоритета и соответственно кеширование будет происходит на более низкие уровни. Но вообще понижением приоритета должны заниматься авторы uT
              • 0
                Спасибо, попробую. А то я уже боюсь его запускать :) Никогда не ожидал от него такого поведения.
                • +5
                  Приоритет CPU никак не связан с приоритетом I/O.

                  Но можно настроить систему так, чтобы она определенным приложениям (точнее экзешникам с определенным именем) устанавливала нестандартные приоритеты по умолчанию, для этого правим реестр:

                  Windows Registry Editor Version 5.00
                  
                  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\uTorrent.exe\PerfOptions]
                  "CpuPriorityClass"=dword:00000001
                  "IoPriority"=dword:00000001
                  


                  (это для uTorrent.exe, использовать минимальный приоритет I/O и CPU по умолчанию)

                  з.ы. Очень полезная штука, кстати. У меня уже год на работе для компилятора и линковщика минимальный приоритет стоит, потому как на скорость компиляции это практически не влияет (комп мощный), а вот отзывчивость системы повышает в разы, особенно с новой студией которая может запустить до 30 процессов компиляции одновременно…
                  • 0
                    О, так даже лучше. Но я не про приоритет CPU, который ставится KeSetPriorityThread, я про Win32 «классы приоритетов», которые по хитрым правилам отображаются в приоритеты CPU/Memory/IO для потоков.

                    Про IFEO IoPriority не знал — большое спасибо. Это более правильный способ «ремонта» uT.
                  • 0
                    Не помогло :) Все также забивает всю свободную память.
                    • 0
                      Память остается свободной. Кеш менеджер использует Working Set процесса System для меппинга файлов (кеш в винде работает через мемори меппинг). Так же как и все остальные Working Set-ы, при необходимости его протриммят. А приоритет нужен для того, чтоб кеширование раздаваемых файлов не «выдавливало» из памяти более необходимые файлы.
            • 0
              в настройках кэширования юторрента покопайтесь. Не помню точно что именно я там делал, но были похожие симптомы и настройка кэширования помогла.
              • 0
                Чего уж я только с ним и не делал:) и настройки кеширования копал, и Advanced. Форум их весь излазил. Так и не помогло :)
                • 0
                  там что-то типа отключить виндовс-кэширование или наоборот его включить, уже не помню. кстати после каждого изменения следует перезагружаться, чтоб уж наверняка.
              • 0
                Он не обращал внимания просто на ограничение по памяти которое стоит в настройках, и забивал всю память.
    • 0
      Я свято верил, что можно ускорить компьютер, нажав кнопку Turbo на системнике
      • 0
        И оно работало, и даже на несколько ощутимых процентов!
  • 0
    Perfect!
  • 0
    Спасибо за ценную информацию! Отличная работа! Надо будет прооптимизировать свой CarPC, а то загрузка в «голую» систему около минуты, после пары «оптимизаторов» — 45сек минимум :(
  • 0
    Прекрасная статья! Спасибо!
  • 0
    Отличная статья. И, похоже, ещё один отличный инструмент, которым надо будет овладеть.
  • +2
    Автор статьи — жгучий ПЕРЕЦ! Сегодня проведу эксперементы со своими ноутами: один на атоме, другой на виа.
  • +5
    вот за такое люблю хабр
  • +3
    Не поленился залогиниться, чтобы поблагодарить Автора. Спасибо за статью!
  • +1
    Спасибо за статью! :)
  • +2
    Амирул жжот как всегда! Малац!
  • +1
    Спасибо за конкретику, люблю такие статьи!

    И у меня вопрос — вы включили сжатие данных для Program Files и Windows. Хорошо, запуск ускорился. Но как это отражается в дальнейшем — не ощущаете уменьшения скорости работы приложений?
    • +9
      Отвечу картинкой.

      Вот так выглядит процесс загрузки (в первые 20 секунд диск занят на 100%). При подобном дисбалансе CPU/Disk скорость только увеличивается. И за счет того, что надо попросту меньше читать, и за счет того, что при меньшем количестве чтений уменьшается и contention — соответственно меньше disk seek-ов.
  • +6
    Автор тру виндавозник(виндоусятник)!
    • 0
      Наверное больше виндоусятник!
      • +3
        Белоглазик =)
  • 0
    Наверное, через пару версий винды эти инструменты доведут до ума и включат в комплект поставки в удобоваримом виде. Хотя на мой взгляд это стоило бы сделать уже «вчера». Такое радикальное ускорение — это круто.
    • 0
      Сбор трейсов можно производить и искаропочным logman (и даже гуевым PerfMon-ом), а вот анализом должны заниматься специально обученные индусы, так что SDK — самое место для такого рода утилит.
  • 0
    Как будет работать этот тулкит если в компе несколько пользователей и у каждого в своей автозагрузке свой набор приложений?
    • 0
      Event-ы собираются и сбрасываются в файл в ядре. Если не залогинится под пользователем, инициировавшим сессии, то трейс просто не остановится и забьет диск, потому как xbootmgr ставит в автозагрузку отключалку трейса.
  • 0
    окей, вот часть про Autologger я не понял. Как его включить так чтобы он собирал ETW начиная с winload?
    В реестре в разделе сессий прописываются ИД провайдеров? Но какие именно провайдеры нужно указывать? И хватит ли прописать одну сессию?
    • +1
      Выберите Summary Table на Generic Events в самом низу — там много интересного.
      Вот здесь в частности видно, как на 45-й миллисекунде загружается этот самый winload.exe (то есть event-ы идут начиная с бутсектора, а не winload)


      На самом деле это, пожалуй, все что можно получить из преядерного трейса — они ничего не знают ни о настройках ни даже о файлах — складывают в память все чего есть и потом передают ядру в составе loader_block (или как бишь он там называется)
  • +2
    аплодирую! вечером помучаю свежую семёрку на ssd, просто ради интереса
    • 0
      Я потестировал свой комп с SSD. Винда и программы грузятся быстрее — факт. Общее время загрузки, с момента нажатия на кнопку — стало больше. Причина — после старта биоса, идёт selftest SSD, что занимает время.
  • –23
    Прочитал статью, посмотрел картинки. Профайлер у винды понравился. Единственное, что вызывает недоумение — почему в windows 7 приходится встроенные средства ускорения загрузки допиливать руками, когда в убунте они работают из коробки?
    • +15
      Кхм, а они что, работают? Ваши, встроенные средства в Убунте? Жду статьи с картинками и графиками.
    • +1
      Bootchart в комплект Ubuntu не входит. Это было бы странным для дистрибутива на одном cd, позиционирующегося для домашних пользователей.

      PS. Пользуясь случаем, покажу здесь его скриншот и задам вопрос: он работает с upstart?

      • 0
        я говорил не про bootchart или upstart, а про ureadahead. Графики загрузки с и без ureadahead предоставлю, только не сегодня и не в отдельной статье, а завтра и здесь же в комментарии.
        • 0
          Ок, благодарен.
        • +2
          > а завтра и здесь же в комментарии.
          Прошло пять лет.
          • +1
            Так грузится же ещё :)
  • 0
    Спасибо за великолепную статью! не встречал ничего подобного до этого.
    И вопрос — все же эту операцию эффективнее всего проводить на среднем железе, или на мощном?
    Суть — есть ноутбук на C2D 1.6/2Gb-DDR2-800/120Gb HDD 5400rpm, и домашний компьютер на i7-960/6Gb-DDR3-2000/2x1TB HDD 7200rpm RAID-0. В обоих случаях — Win7. Где будет больший прирост? Есть ли смысл делать такое и там и там? Не помешает ли то, что на компьютере RAID-0?

    Не повлияет ли сжатие папки Program Files на скорость запуска приложений?
    Еще раз — спасибо.
    • 0
      Первый наверное можно грузить секунд за 30, а вот второй мне самому интересно :-)
      Скорость загрузки увеличивается. Единственное нужно учитывать, что файлы, у которых производится частая запись в средину (базы данных, реестр и пр) начнут сильно фрагментироваться из-за того, что новые данные не обязательно будут помещаться в то же место, в которое помещались старые. Их лучше сразу распаковать (винда сама распаковывает файлы хайвов)
      • 0
        Тогда попробую в ближайшее время выяснить какой прирост будет на домашнем компьютере. Он и так вообще то быстро грузится, но, интереса ради попробую еще ускорить.
  • +1
    Редкой полезности статья! Спасибо огромное!
  • 0

    после перезагрузки (xbootmgr -trace boot) вот такое вот сообщение, и файл трассировки не читается.
    в какую сторону копать?
    • –36
      В сторону Ubuntu ;-)
      • +10
        вы ошиблись блогом
        • –19
          Отнюдь.
    • 0
      Логгеры либо не включились, либо отключились до того, как xbootmgrSleep получил шанс прибить их.
      Попробуйте сделать

      xperf -on BASE+CSWITCH
      чего нибудь здесь поделайте
      xperf -d trace.etl

      Просто чтоб посмотреть а логгеры вообще включаются
      • 0
        логеры включаются, trace.etl даже что-то показывает.
        но ошибка всё таже. плюс в папке пользователя случайно нашёл файлы:
        boot_BASE+CSWITCH_1_um_premerge.etl
        boot_BASE+CSWITCH_1_km_premerge.etl
        где первый ругается что не все графики доступны так как некоторая информация могла потеряться.
        А за 20 секунд до этого в евент вьювере нашёл: «Protection Synchronization Driver detected an internal error, contact the customer support service.»
        • 0
          Смержить те два файла можно командой
          xperf -merge boot_BASE+CSWITCH_1_um_premerge.etl boot_BASE+CSWITCH_1_km_premerge.etl merged.etl
          А вот потерянные ивенты это уже интересно, учитывая то, что xbootmgr выставляет минимальное количество буферов в 300 мегабайт и ни один из полученных мной трейсов не превышал четверти от этого размера.

          Поиск по сообщению в ивенте указывает на старфорс. Попробуйте обновить или удалить его драйвера: www.star-force.ru/support/drivers/
          • 0
            я только что всмотрелся — перегнул с потерянными трейсами, а вот буферы потерялись. Файл при этом не открывается (программа вылетает с ошибкой, смерженные файлы или нет — пофиг), но это не всегда так — иногда после очередного ребута с трейсом он ругается этим сообщением но ошибки нет. один файл весит 102мб, другой 82мб.

            так же я попытался procmon`ом отловить то что ему не нравится, но 10т строк не осилил
    • 0
      получилось как-то разрешить проблему? а то у меня то же самое…
      • 0
        ну то что товарищ amirul мне откомментировал я сделал и он винда даже что-то показала. Правда после этого я уже не проверял с перезагрузкой, ибо проект рендерится) Подожду до лучших времён
      • 0
        У меня не получилось.
    • 0
      В HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction измените/создайте ключи
      строковой «OptimizeComplete» = «Yes»
      строковой «OptimizeError» = «Missing Registry Entries»
      строковой «Enable» = «Y»
      строковой «LcnStartLocation» = 0
      строковой «LcnEndLocation» = 0

      В HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prefetcher
      двойное слово (dword) «BootFilesOptimized» = 1
      • 0
        какие магические действия) к сожалению не помогло
        • 0
          а если «OptimizeComplete» = «No»? Мне помогло :)
  • +2
    А как эти мероприятия влияют на завершение работы? Из той же серии процесс, если подумать.

    И ещё глупый вопрос:
    Достаточно быстро выясняем, что дело в том, что сервис относится к группе «COM Infrastructure» и не может быть загружен позже этой группы. Идем в реестр и вытаскиваем его из этой группы

    Как его вытащить из этой группы?..
    • +1
      На завершение работы влияют слабо. В основном там имеют значение драйвера и сервисы, не желающие помирать. Для ускорения процесса перезагрузки нужно проводить подобные же мероприятия, но направленные на вылов таких драйверов.

      Вытаскивать из группы можно переименованием значения Group в ключе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MsMpSvc
    • +1
      Ах да. Можно ж никуда не лезть:

      sc msmpsvc config group= dummy
      (пробел после '=' обязателен)
      • 0
        Тьфу
        sc config msmpsvc group= dummy
        конечно же
      • 0
        Спасибо!
  • 0
    Прочитал на одном дыхании, несмотря на то, что Вин7 только в планах, зато теперь понятно чем надо будет заняться после установки стандартного набора программ.
    Спасибо за качественный контент, который всё больше редкость.
  • +1
    добавил в закладки. автору большой респект!
  • +1
    даже мысли не приходило, что использование сжатия на hdd может увеличить быстродействие системы… пошел думать как можно практически использовать полученные знания.
  • 0
    Титанический труд, спасибо вам огромное :) Вот только ребутов у меня как раз в районе 1-1.5 в месяц )
  • 0
    Вы только-что скушали десятки часов рабочего времени и сэкономили сотни (или тысячи?) часов ожидания загрузки! :)

    Присоединяюсь к мнениям об отличности статьи!
    Наглядный ликбез + ощутимая польза + повод для экспериментов = секрет успеха :)
  • 0
    Как интересно. Пойду-ка погоняю Bootchart на своём арче.
    • 0
      Кстати, bootchart работает совсем не так как xperf. Во первых трейс начинается с запуском первого user mode процесса, во вторых это sampled профайлер, в отличие от instrumented (с возможностью снятия семплов, о чем попробую написать позже) в случае xperf
      • 0
        Кстати, bootchart работает с upstart?
        • 0
          Не пробовал, но не вижу причин, почему не. Это обычный демон, снимающий семплы раз в сколько то сотен миллисекунд.
          • 0
            Кстати, краем уха слышал про феерически высокую скорость загрузки Ubuntu 10.10, но самому нет времени пощупать. Вам довелось с ней столкнуться?
            • 0
              В виртуалке. Грузится быстро, да.
  • +1
    теги жгут
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Так вы спрашивайте непонятное, добродушные члены сообщества потихоньку переведут.
  • 0
    Можно то же самое, но так чтоб всё за 1 клик?
  • 0
    Однозначно в избранное, спасибо +)
  • 0
    Я столкнулся с траблом — отказывается дефрагментировать.
    [2010/10/22-15:59:40.904] Launching attempt #1 to defragment disk…
    [2010/10/22-15:59:44.508] ProcessIdleTasks returned.
    [2010/10/22-15:59:44.508] Failed to defrag — status key is 'No', error description is ''. Retrying.
    [2010/10/22-15:59:44.508] Launching attempt #2 to defragment disk…
    [2010/10/22-15:59:47.862] ProcessIdleTasks returned.
    [2010/10/22-15:59:47.862] Failed to defrag — status key is 'No', error description is ''. Retrying.
    [2010/10/22-15:59:47.862] Launching attempt #3 to defragment disk…
    [2010/10/22-15:59:51.216] ProcessIdleTasks returned.
    [2010/10/22-15:59:51.216] Failed to defrag — status key is 'No', error description is ''. Retrying.
    [2010/10/22-15:59:51.216] Launching attempt #4 to defragment disk…
    [2010/10/22-15:59:54.538] ProcessIdleTasks returned.
    [2010/10/22-15:59:54.538] Failed to defrag — status key is 'No', error description is ''. Retrying.
    [2010/10/22-15:59:54.538] Launching attempt #5 to defragment disk…
    [2010/10/22-15:59:57.892] ProcessIdleTasks returned.
    [2010/10/22-15:59:57.892] Failed to defrag — status key is 'No', error description is ''. Retrying.
    [2010/10/22-15:59:57.892] Failed to defragment disk after 5 attempts.
    [2010/10/22-15:59:57.892] PrepareSystem failed.
    [2010/10/22-15:59:57.892] Stopping trace…
    [2010/10/22-16:00:00.357] Couldn't find kernel logger in active logger list.
    [2010/10/22-16:00:00.357] Couldn't find user-mode logger in active logger list.
    [2010/10/22-16:00:00.357] Unregistering auto-run…
    [2010/10/22-16:00:00.357] Completed auto-run change.
    • 0
      А если дефрагментацию запустить прямо из Start menu?
      Отключали «ненужные» сервисы до этого?
      • 0
        Да, наверное, в сервисах дело. Сейчас все повключаю обратно. А, ещё, возможно, в том, что стоит сторонний дефрагментатор. Проверяю…
        • 0
          Все сторонние дефрагментаторы сейчас (уже лет 10 как минимум) используют стандартное Defrag API — можно иметь сколько угодно операций перемещения кластеров. Можно даже запустить несколько дефрагментаторов одновременно
  • +1
    Ни фига себе!
    В избранное, однозначно!
    • +1
      Фриман не одобрил бы этот комментарий. Вы бы вопрос какой задали по статье, или дополнили бы чем-нибудь топик.
      • 0
        >Фриман не одобрил бы этот комментарий.
        пожалуй, даже соглашусь =)
        > вопрос какой задали по статье
        у меня только один вопрос — откуда подобные познания и где можно почитать еще на эту тему?
        • 0
          Советы общие: Solomon/Ionescu/Russinovich «Windows Internals», MSDN, помогает чтение исходников: WRK, утекшие w2k/nt4. Когда более менее понятно чем живет и как работает винда в принципе, можно пытаться ковырять всякие частности. Здесь уже нет единого источника: blogs@msdn, собственные эксперименты, перепрочитывание документации в поисках каких то намеков и пр…

          Хорошее эссе про подобные изыскания.
  • +1
    На какой конфигурации ПК выполнялись эти действия?
  • –17
    > Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…

    вот идиоты, а!!! я фигею с вам, люди! давно уже памяти в каждом компе по 4 гига
    срать на подкачку давно надо, от нее только тормоза и больше никакого прока
    вы как будто непонимаете. просто ппц
    • 0
      в Windows 7 файл подкачки начинает использоваться только когда оперативка заканчивается
      • +3
        Не совсем так. Файл подкачки используется когда это оказывается выгоднее с точки зрения минимизации обращений к диску.
        • 0
          в любом случае профит :-)
    • 0
      Именно потому, что памяти много, люди и занимаются такими «оптимизациями», как отключение свопа.

      — Почему кошки лижут свои гениталии?
      — Потому что МОГУТ.

      Я же как раз о том, что даже при наличии 8 гиг памяти своп файл держать полезно
      • 0
        как напишите почему полезно почитаю
        но не изменю своего мнения о свопе: он не нужен начиная с 768 на домашней машине :)
        сам без свопа с такого объема памяти, еще пять лет назад выключил
        • +1
          Вот
          habrahabr.ru/blogs/windows7/106684/#comment_3362699

          А своего мнения не меняют только идиоты (это не лично к Вам, это я так, в общем)
          Говорят же умные люди, надо своп использовать значит надо ;)
    • +2
      > давно уже памяти в каждом компе по 4 гига

      Собственно, у меня к вам ровно один вопрос: вы за МКАД хоть раз выезжали?
      • 0
        конечно, я живу в 750 км снаружи от него
        • 0
          Неужели у вас во всех домах, производственных помещениях, школах, детских садах, офисах стоят компы с 4 гигами оперативки?
          • 0
            нет
            но я не использую своп начиная с 768 мб
            • 0
              А я регулярно сталкиваюсь с компьютерами, на которых всего 256 метров… Т.е. не то чтобы их много, но они есть. Со временем их становится все меньше, но полностью они исчезнут совсем не скоро.
        • 0
          Боюсь той России, когда уточнение про «снаружи» будет актуально =)
  • –5
    Не холивара ради, а правда интересно.
    Каковы результаты если сравнить вашу оптимизированную вин7 и стандартную ubuntu например 10.04?
    Очень любопытно.
    • 0
      если сравнивать в работе а не в загрузке, то After Effects, 3D Studio Max и Premiere работают очень шустро :-)
    • +3
      Ну не холивара ради, можно и MSDOS-ом сравнить, который на современных системах грузится за секунду. Это не попытка показать превосходство над жалкими остальными, это попытка ответить на вопрос, как нужно подходит к оптимизации производительности. Ничего подобного xperf/ETW в Linux нет.
      • 0
        есть bootchart, хотя он и не дотягивает до этих тулз наверное
        • 0
          Ну да, я там выше сказал, что bootchart позволяет увидеть общую картину, но он sampling и не особо расширяем. В xperf можно отследить приход конкретного прерывания, найти DPC, связанную с этим прерыванием и отследить завершение конкретного IRP, следующее после этого.
      • –1
        калибриос может еще?
        я говорю о равновесный ОС — убунту и виндоус взаимозаменяемы.
        • +2
          Правда?
  • +1
    Судя по комментариям, я единственный
    у кого приведенные в статье операции привели к бесконечной перезагрузке, каждая из которой заканчивается синим экраном:(
    • 0
      На каком конкретно этапе это началось?
      • 0
        после дефрагментации.
        • 0
          А она у Вас до этого загружалась?
          Дефрагментация — стандартный maintenance процедура и по идее должна выполняться раз в неделю по расписанию. К сожалению дампы при создаются первым user mode процессом (smss) и их может просто не оказаться, если до него дело не доходит. Попробуйте загрузиться в safe mode (если выйдет — smss создаст дамп) и вышлите мне в личку минидамп. %SystemRoot%\Minidumps — они там по датам проименованы
          • 0
            загружалась.
            сейчас загрузился в убунту. визуально файловая система цела.
            а вот безопасный режим не дает грузится
            выпадает меню с предложением востановить винду с некоторой точки (как на зло это отключенно было) либо продолжить нормальный запуск после которого сразу сваливается
            • 0
              Если предлагает, значит юзермод уже загружен. Посмотрите есть ли в каталоге Windows свежие минидампы (либо один большой \Windows\memory.dmp). Если есть — можно разобраться кто падает и может даже узнать почему.
              • 0
                дампов нет.
                Веселые выходные обеспечены:)
                • 0
                  Беды на диске есть? Есть возможность, что при дефрагментации какая то часть файла попала в нечитающуюся область.
                  • 0
                    заглянул в SMART, действительно появились сбойные сектора. Скорее всего дело в этом.
    • 0
      Та же фигня. Только сразу же после первой перезагрузки (после xbootmgr -trace boot). Что делать, ума пока не приложу. Восстановление системы отключено, в сейф-мод зайти не получается.
      • 0
        Проверил хард — проблем и битых секоров нет. 2 с лишним часа копания в гугле так и не привели ни к какому результату. Проблема не единичная, а решения так и не предложено.

        Посмотрел блин трассировку загрузки.
        • 0
          Это похоже две разных проблемы, потому что проявляются в двух разных местах. Самым надежным решением было бы подключение отладчика ядра, но для этого чаще всего нужны два компа с последовательными портами и нуль модемный кабель. Отключали ли Вы восстановление системы?

          Все изменения сводятся xbootmgr-а сводятся к добавлению значений в
          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger

          Можете запустить recovery console, подключить \Windows\System32\config\SOFTWARE из системного диска и выставить Start в 0 либо вообще поудалять все значения оттуда.
  • 0
    Зачем выключать комп, если есть hibernate?
    • 0
      Полностью поддерживаю данного оратора :-)
      • 0
        Есть нетбук, ноутбук и мощный комп. все реально быстро из гибернации выходят.
        Оперативы в ноутах по 2 гига. В мощном компе 8 гигов.
    • +1
      у меня нету места на системно жёстком диске под всю оперативку :-( а так хибернейт постоянно юзал
      • 0
        кстати очень странно почему хибернация не записывает в файл только полезную информацию чтобы в разы уменьшить его размер.
        • 0
          Так она и записывает. Причем сжимает ее при этом
          • 0
            как я убедился довольно мало сжимает. с 6гб получается 4.5гб. хотя на момент гибернации занято только 2гб памяти например. еслибы и его ужать можно было бы, то это получается аж 1.4гб
            • 0
              Вы путаете размер файла hiberfil.sys и размер данных, которые в него складываются. hiberfil.sys преаллокейтится, но записывается он не полностью. Проверить довольно легко, но долго:
              Перегружаетесь, заполняете весь hiberfil каким нибудь шаблоном типа «CANTTOUCHTHISCANTTOUCHTHISCANTTOUCHTHIS...», загружаетесь, уходите в хибернейт и смотрите сколько шаблонов осталось не перезаписанными.
              • 0
                да это понятно, но это не избавляет от досадного факта — что 10гб hiberfil.sys не влезают на жёсткий диск, как бы там данные внутри него не записывались
                • 0
                  Да, но ничто не мешает отказаться от схемы системный/несистемный и пользоваться прелестями спящего режима
      • 0
        сколько у Вас оперативы? все 16 гигов???? =)
        • 0
          всего лишь 12)
      • 0
        Ну разбиение диска на системный и несистемный — тоже чаще всего неправильное решение надуманной проблемы.
        • 0
          отнюдь — у меня на второй раздел перемещены AppData, индексация поиска и туда устанавливаю все программы, и при откате системы из образа, работоспособность системы остаётся прежней
          • 0
            > отнюдь
            > при откате системы из образа
            Ну где же отнюдь, когда так и есть. Есть пара вопросов по «откату системы из образа»:
            1. Восстановление системы?
            2. Пофайловый бекап?
            2.1. Пофайловый инкрементальный бекап, который позволит сохранить ГОРАЗДО больше истории. Более того, в этом случае можно будет бекапить всю AppData со всеми программами
            • 0
              я использую Paradon Drive Backup. Программы занимают у меня 130гб, поэтому даже если это инкрементный архив — по скорости он будет делать так же долго как с нуля (восстановление тоже), и такой архивчик даже со сжатием мне негде хранить :-) Да и я не хочу чтобы настройки приложений у меня откатывались назад, я специально это делал чтобы программы оставались такими же. Ещё кстати я специально ограничил в былые времена системный раздел, потомучто если его не ограничить, winsxs просто всё сожрёт и программы устанавливать будет некуда
              • 0
                Ну если бекап программ не нужен — так и не бекапьте :-)
                Можете выбрать какие каталоги бекапить, а какие нет. Это все не проблема.
                WinSxS ничего не жрет — это еще одно распространенное заблуждение. Хотя, вот тот же Installer растет, но чего конкретно Вы добились тем, что ограничили размер? Installer перестал расти?
                • 0
                  на собственном опыте не испытвал но ходят байки что и 50гб винт заполнился папкой winsxs. Наверное это и есть именно «байки», ибо я вам доверяю больше
                  • 0
                    Хотите забавный эксперимент?
                    Сделайте
                    fsutil C:\Windows\winsxs\amd64_mdmbr002.inf_31bf38hadlink list 56ad364e35_6.1.7600.16385_none_bff4698a07fe9888\BrSerIb.sys
                    из элевейченной консоли.
                    Практически все файлы в WinSxS являются хардлинками на файлы в других местах. Максимальное количество линков из того, что я видел — 26 (то есть размер этого файла считался 26 раз). Подавляющее большинство файлов в WinSxS имеют 2-3 хардлинка. Если Вы удалите WinSxS вы не выиграете ничего, кроме напрочь поломанного сервисинга
                    • 0
                      А как вы прокомментируете эту статью? Получается, что все манипуляции в ней бессмысленны и даже опасны? habrahabr.ru/blogs/microsoft/72427/
                      • 0
                        Не все, так как в WinSxS могут добавляться (и добавляются) реальные файлы, а не только симлинки. Но большая часть манипуляций действительно бессмысленна. Более того, «замена файлов хардлинками на более новые версии того же файла» может начисто убить систему сервисинга (апдейты).
                        В частности для уменьшения размера загружаемых при обновлении данных винда использует дельта компрессию. То есть, если винда знает, какая наименее отличающаяся версия файла (чаще всего последняя, но не всегда) есть в наличии, она может запросить только отличия от этого файла. Можете представить что будет если дельту применить к неправильному «оригиналу».

                        Действительно, при установке апдейтов и сервис паков, винда сохраняет и исходную и обновленную версии файла. Делается это для того, чтобы апдейт/сервиспак можно было откатить. Убивать/изменять данные без обновления метаданных — один из простейших способов убить ОС.
                        • 0
                          > а не только симлинки
                          Читать как «а не только хардлинки»
                  • 0
                    Чорт, тачпад сработал неудачно:
                    fsutil hardlink list C:\Windows\winsxs\amd64_mdmbr002.inf_31bf3856ad364e35_6.1.7600.16385_none_bff4698a07fe9888\BrSerIb.sys
                    • 0
                      тогда пользуясь наличием просветвлённого мнения — зачем виндовс столько версий одного и того же файла? или они всё-таки различаются? И что делает скрипт WinSxs Lite который значительно увеличивает место на жёстком диске (правда в приложениях некоторых появляются косяки, типа пропажа некоторых контролов в интерфейсе и т.п.)?
                      • 0
                        Это не версии одного файла, это имена одного файла (вот как один файл может иметь «длинное» и 8.3 имя — реализовано в точности на основе того же механизма). Для этого файла есть ровно одна MFT запись и ровно одна копия данных на диске.

                        Нужно для того, чтоб программы которым все равно — могли продолжать находить свои файлы в System32, например, а те, которым нужна конкретная версия — могли указать ее у себя в манифесте. Причем манифест может быть внешним (в отдельном файле, лежащем рядом с программой) — как раз для случаев, когда одна программа не работает с последней версии какой нибудь часто используемой библиотеки. Это то, что называлось dll hell. В принципе можно подложить подходящую версию прямо в каталог с той программой, а если таких программ несколько, то можно перенаправить их на определенную версию, в то время как все остальные по дефолту будут использовать последнюю.
                • 0
                  окей, ваша взяла. Я боялся папки winsxs больше всего, но если это враки то может и стоит объединить разделы
  • 0
    Спасибо за статью! у меня вообще 140 сек было… под горячую руку даже снёс windows\installer (да, да, знаю чем грозит! но! — всё нормально удаляется)

    По поводу Windows, пора бы уже программистам Майкрософта написать полуавтоматическую тулзу-оптимизатор для рядовых пользователей. Мы то разберёмся…

    То что окна со временем начинают тормозить — это уже закономерность.
    • 0
      Собственно она уже есть. Большая часть оптимизации сводилась к перезагрузкам и обучению ReadyBoot/Defrag
      Долгий старт сервисов — здесь трудно что либо сделать ибо заранее точно не известно (в том смысле, что решение должно быть принято автоматически и быстро), как повлияет на работу системы отложенный старт того или иного сервиса.
    • 0
      И да, снос windows\installer место конечно освобождает, но вот на перезагрузку не влияет вообще
      • 0
        Нет, не влияет. Но 20 Гб для c:\windows слишком жирно.
        • 0
          На самом деле там всегда несколько (примерно на 5-6 гиг) меньше из-за жестких ссылок.
  • 0
    Подобный инструментарий стал для меня полнейшим открытием. Огромное спасибо автору!
  • 0
    Очень интересует, как сделать подобную «низкоуровневую» оптимизацию на WinXP. Кроме всяких твиков для ВинХП ничего серьезного не встречал.
    • +1
      • 0
        Спасибо.
      • 0
        The Bootvis.exe tool is no longer available from this site.

        Please note that Bootvis.exe is not a tool that will improve boot/resume performance for end users.

        :)
        Ну, найду конечно :)
        • 0
          странные они в microsoft. Зачем убирать тулзу из закачек? =\
          • +2
            Затем же видимо, зачем кожухами закрывают двигатели в некоторых современных автомобилях. Что бы юзеры глупые не лазали там самостоятельно, и ничего не сломали. А обслуживание чтоб было только на сертифицированных сервис-центрах.
            • 0
              а зачем тогда выложили сначала? :)
              • +2
                А раньше и запломбированные кожухи на двигатели не одевали. А сейчас видимо считают, что техника и компьютеры надежнее, если их не трогать :)
    • 0
      Мне здесь «с полей» сообщают, что xperf вполне работает в XP, хотя и выдает меньше информации (бутлог снимать можно)
  • 0
    Вопрос автору или кому-то из компетентных специалистов.

    Я так же предпочитаю использовать hibernate. Вот только с ним на моей машине какие-то капитальные проблемы — сохраняется-то состояние нормально, а вот поднимается из него компьютер несколько минут, при этом большую часть этого времени дисковой активности никакой не наблюдается.

    Переустановки системы не помогают — явление наблюдается с первой из них год назад (кстати, happy birthday, семёрка!) и без изменений все последующие.

    Поможет ли сабжевый инструментарий определить, что именно так влияет?

    Заранее спасибо.
    • +1
      xbootmgr -trace hibernate
      Можно к base+cswitch добавить еще drivers или latency. В общем чаще всего это кто-то один, максимум — двое. Найти и либо прибить либо разобраться чего им надо
  • 0
    Спасибо большое автору. Сегодня ночью попробовал и уменьшил время загрузки где то в 4 раза!!!
    Уха!!!

    Просто делюсь радостной новостью ;)
  • +1
    Попробовал свою систему пооптимизировать, вродь есть результаты.
    Застрял вот на чем
    при загрузке winlogon init событие идет с 17 по 86 секунду, причем с 30й секунды никакой активности у cpu и hdd нет.
    • 0
      А у тебя случаем нет ввода пароля при открытии рабочего стола?
      Если есть, значит эта задержка, она и есть.
      • 0
        Автологон настроен
    • 0
      Не может ли это быть связано с этим? support.microsoft.com/kb/977346
    • 0
      Апдейты стоят?
      • –1
        Последние нет, поставлю и скажу, что получилось
  • 0
    Так всё-таки что делать с MsMpEng?
    • 0
      Зайдите в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MsMpSvc
      Переименуйте значение Group в _Group
      Добавьте значение REG_DWORD с именем DelayedAutostart и содержимым 1
  • 0
    Спасибо за отличную статью!
    После первой итерации prepSystem улучшилось с 3х минут до двух

    System Recovery — это лайв CD или стандартное окно командной строки? В обычной командной строке восстановления у меня не желает понимать compact
    • 0
      Можно и лайв и обычный рекавери, доступный по F8 во время загрузки. Хитрость в том, что ни тот ни другой не содержат compact.exe, зато доступен compact.exe из установленной (но не загруженной в данный момент винды) и он отлично работает в PE окружении
      • 0
        Хм, тогда как получить к нему доступ из обычного рекавери? Командная строка там не дает перейти на C:\ к примеру чтоб выполнить что то оттуда. Хотя скорее всего я просто не умею ее готовить
        • 0
          Ваш системный диск просто не C: под рековери, а D: и архиватор будет по пути D:\Windows\System32\compact.exe

          дерзайте
          • 0
            cd C: равно как и cd D: не делают ничего — остается на том же условном Х:, на требуемый не переходит, эксперименты с другими буквами дают «the system cannot find the drive specified»
            • 0
              Не очень понял причину но из корня условного Х перешло на С, из вложенных папок не желало
            • 0
              Вместо cd C: можно просто C: набрать
            • 0
              echo list volume | diskpart
              Чтоб посмотреть какие диски где находятся

              Что же до cd, как верно сказали, он меняет текущий каталог на указанно диске, но не меняет текущий диск (да, это часть Win16 legacy, с которой приходится жить).
              Отдельно меняем текущий диск:
              X:\> d:
              И отдельно меняем каталог:
              D:\> cd \Windows\System32
              • 0
                у меня и из -под WinPE половина файлов не пакуются, выдают ошибку доступа. Например «explorer.exe» это так и задумано, или что-то крутить/искать нужно чтобы запаковать абсолютно все файлы?
        • 0
          Это будет не обязательно C:
  • 0
    Спасибо, статья действительно стоящая!
  • 0
    Одна из лучших статей на хабре за последние несколько месяцев. Спасибо
  • 0
    Как можно сжать Program Files командой compact? Если в командной строке нельзя что бы в названии папки был пробел.
    • 0
      кавычки "" тебя спасут
    • 0
      Как правильно сказали, для этих целей есть кавычки (причем cmd-ный автокомплит выставляет их), но можно сделать еще сделать cd в нужный каталог и оттуда выполнить
      compact /c /a /i /s:.

      В качестве каталога указана точка — текущий каталог
  • +3
    Важный момент (нашел случайно) — после того, как сжал Program Files, перестал работать SQL Server. Как оказалось, он использует низкоуровневый доступ к диску, который не совместим с сжатыми файлами NTFS. Сделал Uncompress, SQL Server начал запускаться.

    Спасибо за статью!
    • +1
      В дополнение к статье даю ссылку на официальный ресурс МС по производительности Windows
      www.microsoft.com/whdc/system/sysperf/default.mspx
    • 0
      А для какой директории вы делали Uncompress?
      • 0
        Я поленился и сделал uncompress для Program Files\Microsoft SQL Server\ хотя можно было отдельные файлы разжать.
  • 0
    Вопрос: Если в папке Program Files (x86) лежит world of warcraft — стоит ли папку с последним сжимать, а то мне почему-то кажется, что для варкрафта это скажется понижением производительности…
    • 0
      У меня в каталоге лежит стим. Сам я не сильно заядлый игрок и из более менее современных игр переигрывают только в Orange Box (помню даже первый день, когда увидел HL :-) ). Так к чему я? Конкретно производительность игр я не мерял, но во-первых по личным ощущениям — особо не изменилось (современные программы и так держат свои файлы в сжатых архивах), а во-вторых, очевидно, что наибольшая дисковая активность происходит во время старта программы и перехода между локейшенами — в это время процессор свободен от обсчитывания сцены и может заняться распаковкой ресурсов.
  • 0
    Спасибо за статью, поковыряюсь на досуге — не загружающиеся значки в трее уже достали.
  • 0
    Кстати, а вы планируете написать статью с вырубанием функционала? или это уже посягательство на святое? )
    • 0
      Нет, святого ничего нет, но не думаю, что там есть о чем писать. Быстрый диск на самом деле даст бОльший выигрыш. Мне уже прислали логи с загрузкой эксплорера на 9-й секунде на обычной десктопной машине с 7600 rpm винтом. Забавно было бы посмотреть на это

      Я думаю, написать вторую статью про вот это и наверное на этом можно закончить с xperf-ом (в смысле там непаханное поле возможностей, но во-первых их все я и сам не знаю, а во-вторых если зацикливаться на одной теме — станет невыносимо скучно)
      • 0
        хм, ну у меня похожая конфигурация — i7 940, 12gb RAM, 10000rpm на системном разделе, поэтому я тоже сообщу что у меня изменилось. Сейчас у меня Explorer загружался на 25-ой секунде. Вообще графики выглядят гораздо позитивней нежели у вас в посте после первого трейса, разве что бегание головки я так и не понял, где там центр, но и я бы не сказал что у меня система нетронутая, я со службами год назад уже повозился. После 6-ти кратного ребута эксплорер закончил грузиться уже на 20-ой секунде.
        Вот трейс если интересно как это выглядит на такой конфигурации:
        narod.ru/disk/26600300000/merged.etl.html

        • 0
          Трейс битый (9 буферов потеряно). Причем окончания загрузки большинства сервисов похоже находились в тех потерянных буферах. Стоит попробовать увеличить размер буфера, но из xbootmgr-а этого вроде сделать нельзя — придется в реестр лезть.

          Самые большие проблемы, которые здесь видно: кто то держит систему с 0 по 5 секунду и с 6 по 13 — как раз когда стартует session manager (на втором интервале ReadyBoot префетчит вовсю, но ни хитов ни даже миссов не происходит — никому кроме редибута диск не нужен). Подозреваю, что это как то связано с пиками CPU как раз в начале этих периодов. Во флаги можно добавить PROFILE (BASE+CSWITCH+PROFILE) и сделать -stackwalk PROFILE — тогда будет лучше видно, кто и чего там делает (если не терять буферы, конечно). Можно добавить еще флаг DRIVERS (BASE+CSWITCH+PROFILE+DRIVERS) и попытаться скорреллировать загрузку драйверов с этими аномалиями.

          Кроме того, здесь сразу после загрузки включился SearchIndexer, стоит дать ему доиндексировать, чтоб под ногами не путался (хотя путаться он начинает примерно с 21-й секунды, так что на время инициализации не влияет).
          • 0
            да собственно выше я об этом и писал (о потерях буфера). Скорее всего это связано с ошибкой по окончанию трейса о которой я тоже писал: habrahabr.ru/blogs/windows7/106684/?reply_to=3368432#comment_3356582
            а в реестре где буфер увеличить?

            Windows Search стоит на отложенном запуске, раньше я его вообще в ручной режим переводил, но это было глупой затеей, учитывая что я им частенько пользуюсь
            • 0
              Ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger
              @MinimumBuffers и @MaximumBuffers. Для внесения изменения можно использовать -preTraceCmd
              Проблема в том, что там по умолчанию 300 и 600 мегабайт стоит — весь лог влез бы.

              Windows Search — вроде ничего страшного, если он не делает такое ПОСТОЯННО. Он не должен постоянно носиться по диску и переиндексировать все подряд.
    • 0
      Да, если захотите выключать функционал — порядок действий точно такой же.
      1. Определяете, кто наносит наибольший ущерб производительности
      2. Смотрите, что с ним делать (в данном случае решение сводится к вырезать/не вырезать)
      3. Lather, rinse, repeat
  • 0
    Можно сжимать сразу много каталогов(прописать в батник):
    C:\Windows\system32\compact.exe /c /a /i /s:«C:\Program Files (x86)»
    C:\Windows\system32\compact.exe /c /a /i /s:«C:\Program Files»
    C:\Windows\system32\compact.exe /c /a /i /s:«C:\Windows»
    • –2
      Проще скопировать compact.exe в корень диска
      А в рекавери запустить лежащий рядом батник:
      @echo off echo 1/3. упаковка папки Windows compact.exe /c /a /i /s:"Windows" echo 2/3. упаковка папки Program Files (x86) compact.exe /c /a /i /s:"Program Files" echo 3/3. упаковка папки Program Files (x86) compact.exe /c /a /i /s:"Program Files (x86)" Shutdown -r
      • 0
        @echo off
        echo 1/3. упаковка папки Windows
        compact.exe /c /a /i /s:"Windows"
        echo 2/3. упаковка папки Program Files (x86)
        compact.exe /c /a /i /s:"Program Files"
        echo 3/3. упаковка папки Program Files (x86)
        compact.exe /c /a /i /s:"Program Files (x86)"
        Shutdown -r
        
  • 0
    Большое спасибо за пост, но он, к сожалению, не смог прояснить проблемы — в момент когда должен появиться «флаг» Windows, компьютер 15 секунд ничего не делает и только потом продолжается загрузка.

    Все процессы заканчиваются в момент загрузки ПК, на 44 секунде, что странно. С чего начать?
    • +1
      Вон там в начале кто то очень сильно загружает CPU. Посмотреть кто можно при помощи флага PROFILE (желательно с -stackwalk profile). Или это распаковка?

      С 15 по 42-ю секунду вообще ничего не происходит (ни дисковой ни процессорной активности — небольшой всплеск CPU можно не считать, хотя ради интереса стоит глянуть кто это живет, когда все остальные не подают никаких признаков) — надо полагать это один из autostart сервисов. Посмотрите нет ли сервиса, который долго загружается и заканчивает загрузку как раз где-то к 34-й секунде.

      Вообще довольно полезная практика смотреть на совпадения во времени: закончил грузиться сервис, начался какой то процесс — дает пищу для идей.
  • 0
    Спасибо. xbootmgr -trace boot -traceFlags BASE+CSWITCH+PROFILE? Не выходит… Немного не понял синтаксис, ща покурю:) Без понятия что там за распаковка. ФС не сжата.

    Решил сразу начать с процессов.
    Вот что было по процессам:


    Я поставил VMUSBARbService в disabled.

    Результат:


    Но время загрузки одинаково! В то время когда должен соединяться флаг, 10+ секунд ничего не происходит. Это еще с момента первой загрузки Win7 на данной машине, поэтому тут надо искать в самом Windows сервис, который «тормозит» либо даже возможно и не сервис, а какой-то драйвер.
    • 0
      > xbootmgr -trace boot -traceFlags BASE+CSWITCH+PROFILE? Не выходит…
      Да. А что конкретно не выходит?

      > В то время когда должен соединяться флаг, 10+ секунд ничего не происходит.
      Время загрузки выглядит вполне нормальным. Запуск сервисов на 9-й секунде. Я так понимаю вместо флага сразу появляется экран приветствия? Самой простой причиной по которой может не появляться анимация является опция No GUI boot. Зайдите в msconfig->таб Boot и посмотрите не включена ли там эта галка
      • 0
        нет, появляется надпись Starting Windows, потом 10-15 секунд ничего, дальше лишь флаги соединяются, никакой загрузки за 15 секунд быть не может, остаются те же 42 секунды, не понимаю, почему пишет 15 сек
  • 0
    Спасибо большое за статью, но на одной системе возникла проблема. Не запускается Windows SDK:
    img8.imageshack.us/img8/6730/0711v.png
  • 0
    Забавно, как статья разъехалась по интернету, печально, только что без указания авторства…
  • 0
    А как можно точнее узнать, что можно сжимать, а что нет?

    Сжал Program Files, Windows, ProgramData — перестал работать SQL сервер (впрочем об этом уже писали), а также Windows Update, пишет ошибку 80244018, причем не работают не только обновления, но и даже журнал уже установленных обновлений пуст. хвост WindowsUpdate.log

    Сжимал сначала через Safe Mode (тоже не все файлы были доступны), потом из Recovery Console с установочного диска.
    • 0
      В моём случае (Win7 x64, сжал \Windows, \Program Files и \Program Files (x86), сжимал загрузившись с Recovery Disk) тоже перестал работать WindowsUpdate, только ошибка другая (0x80070301 = Compression is disabled for this volume). Журнал также продолжал работать.

      Разжал — всё нормализовалось. Сейчас попробую сжать только Program Files (хотя от этого сильно меньше проку, чем от сжатия \Windows).
      • 0
        Сейчас у меня сжато \Windows, \Program Files

        Не сжато: \Windows\SoftwareDistribution (там базы Windows Update), \ProgramData (тоже содержит в том числе какие-то базы, чтоб не париться — разжал всё), \Program Files\Microsoft SQL Server, \Program Files\Microsoft SQL Server Compact Edition

        Вроде проблем нет, хотя и ускорения не заметил.