Pull to refresh

Comments 365

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Конфигурация:
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 же не подходит, т.к. кушает батаею. Да и было пару раз, когда ноут в сумке из слипа выходил (хз как). Хорошо случайно полез за вещами и заметил, он к тому моменту был нагрет так что за корпус было не взяться. %)
Навскидку что то не так.
xbootmgr умеет трейсить процесс засыпания (-trace hibernate). Попробуйте включить — может чего нибудь прояснится.
Я на днях посмотрю какую информацию он вообще выдает в этом режиме — никогда до этого не заглядывал.
Сделал на ThinkPad T500, занято те же полтора гига.

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

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

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

С большой радостью почитал бы еще подобных материалов.
Дык они выпущены в один день были. 2k8r2 надо полагать. Хотя я лично знаю людей, которые пускают серверные ворклоады на клиентский SKU (а в Win7 тот же IIS включен в поставку — почему бы и не использовать :-) )
На несерверных ОС IIS очень жестко ограничен по количеству одновременных подключений.
Лично я для себя проблему медленного запуска Windows решил использованием «Ждущего режима», вместо банального «Завершения работы». А так вообще перезагружаю систему раз в 1-2 недели, из профилактических соображений. Было время, когда у меня Windows 7 около 2х месяцев без перезагрузки работало, и каких-либо тормозов не наблюдалось.
Да я тоже. Диск 5400 выдает во мне пользователя ноутбука. А перегружать ноут, когда можно просто хлопнуть крышкой — это сильно на любителя (хотя надо сказать еще до ноутов я пользовался hibernate-ом на постоянной основе)
UFO just landed and posted this here
для отключения дисплея — у меня на ноуте есть Fn + F7 (или 1 из соседних F-ов — не помню).
UFO just landed and posted this here
Таскать работающий ноут опасно (если он не ssd, конечно) — незапаркованные винты значительно менее устойчивы к физическим нагрузкам, чем запаркованные. Но вообще — дело вкуса, да.
UFO just landed and posted this here
А еще греется во время работы. Тоесть в сумку уже поставить — не лучшая идея
UFO just landed and posted this here
Это у Вас ноут хороший.
Мой MSI как-то в сумке включился. Заметил только через час времени.
Ноут пришлось в холодильник сунуть, бо прогрелся он просто таки капитально, и пованивал :)
Хорошо хоть работает :D
UFO just landed and posted this here
Меж нетбуком и ноутбуком всё же есть разница.
У меня ещё не самый горячий. Есть модели которые на коленях держать нельзя, не то что носить в сумке :)
UFO just landed and posted this here
Как уже написали, отключение дисплея есть на всех современных ноутах. Да и перенастройка реакции на закрытую крышку занимает от силы секунд 20. Если «оставлять на ночь» — это скорее правило, чем исключение, то да, лучше не реагировать на крышку вообще. Если же это делается раз в пятилетку — то удобнее «хлопать крышкой»
Так нарушается процесс естественного охлаждения через верхнюю часть корпуса.
Проще выключать монитор, такая кнопка обычно есть.
ну, по-большему счёту проблему медленного запуска windows вы не решили, просто сделали так, чтоб эта проблема проявлялась очень редко
Ну как сказать… если у меня система перезапускается раз в 10 дней и скорость загрузки 1мин, а у вас она перезапускается каждый день и пусть даже за 30сек, то получится, что в среднем на перезагрузку системы у меня будет уходить в 5 раз меньше времени.
Я решил это гибернацией. Но в последнее время гибернация тормозит почти также, как полноценное включение и загрузка. Причину пока так и не нашел.
Да, Семерка ужe позволяет иметь недельные аптаймы, что сильно облегчает жизнь. Плюс в ней как-то довольно хитро реализован Hibernate — за то время, что она у меня засыпает, явно не все 8 гигабайт памяти пишутся на диск, то жe самоe при побудке — уж очень быстро.
Месячные и более аптаймы можно было и на 2000/XP иметь между прочим.
Но не на каждом компе. А тут я могу не выключать семерку неделей и она не будет тормозить через пару дней. с XP такое просто так не выйдет
У всех выходит, а у вас нет…
Ну за всех я бы не говорил…
У вас винда не падает? Руки кривые! :-)
Главное за эту неделю пару раз перезапускать Firefox и Opera, у меня эти заразы на работе отжирают по 500-600 Мб памяти каждый, если не перезагружать время от времени — какие-то у них жестокие утечки памяти.
Пните меня в нужном направлении, пожалуйста. Я пытался заниматься этим вопросом. Вплоть до того, чтобы полностью отключать Memory Cache в обоих браузерах. Это никак не изменило ситуацию.
Вводим в адресной строке about:config
Смотрим параметры:
browser.cache.disk.capacity
browser.sessionhistory.max_entries
Спасибо, FF вроде бы несколько успокоился, а вот опера не поддается. И что обидно, гугление не приводит к результатам: жалобы есть, решений нет.
вы что-то удивительное говорите. у меня NT4 месяцами работала. 2-3 месяца аптайма было типичным делом.
Можно было. Но очень многие инсталляции (обновления драйверов) требовали перезапуска системы, в Семерке намного меньше. Ну и синий экран я за полтора года в Семерке видел всего раза два или три, Хрюша падала все-таки чаще.
У меня рекорд аптайма на ХП был 170 с чем-то дней. На нормальном рабочем компе, с файрфоксом, студией и пр. Потом пришлось перезагрузить при обновлении антивируса :)
UFO just landed and posted this here
1. Сбрасывается не вся память, а только используемая (та что находится в Working Set-ах) — можно посмотреть на пустой Standby List после каждого hibernate-а.
2. При записи, hiberfil пакуется хитрым алгоритмом, специально предназначенным для скоростной упаковки/распаковки, но имеющим относительно низкий коэффициент сжатия.
win7 не работе не перезагружал около года, никаких тормозов не наблюдаю.
Привет из 2015

2017 приветствует тебя! Семёрка на старом ноуте как тупила без перезагрузки, так и тупит.

Ноут старый, момент для бесплатного апгрейда я пропустил, покупать не хочу.

Оперативки сколько? разрядность какая?
для 32-битной минимум 4, для 64-битной минимум 8 и не нужно перегружать
для 32-битной минимум 4

Что??
Мы говорим про минимум без тормозов, а не минимум вообще.
Лимит 32-битной адресации памяти напомните, пожалуйста.
Вы для одного конкретного приложения? С LARGEADDRESSAWARE до 3.5 гб.
А оно не для системы в целом? Я, просто, помню ограничение в 2 ГБ на процесс, но уже не помню, откуда это.
Везде на пятки наступает Legacy. В основном проблема была связана с внутренним устройством NT и совместимостью. Вот неплохая статья:
http://www.ixbt.com/soft/windows-4gb-2.shtml

6 GB, 64-bit, Windows 7 Home Edition. Не знаю, можно ли сейчас купить такую память, надо поискать.

Статья очень грамотно написана. Действительно, редко когда встречаются руководства для подобных низкоуровневых манипуляций. А большинство людей свято верят, что ускорят компьютер если отключат SuperFetch и Windows Search…
Спасибо, наверное надо где нибудь расписать чего люди теряют при выключении SysMain. В данной статье упоминается создание бутплана для ReadyBoot-а и создание layout.ini для дефрагментатора. Уже одного этого достаточно чтоб даже не приближаться к нему. Там еще ReadyBoost (который в принципе неплох как раз для слабого железа), ReadyDrive (достаточно редкие пока что гибридные накопители) и собственно суперфетч, который таки весьма неглупая штука.
и собственно суперфетч, который таки весьма неглупая штука.

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

Фильмы, которые открываются с sequential only то ли вообще не кешируются то ли кешируются на Stanby list 0, что значит их выкинут при первой же необходимости. С торрентами сложнее, но я честно говоря не понимаю, почему не выставить низкий I/O приоритет потоку, а вместо этого задрачивать файл постоянными переоткрытиями.
А есть где нибудь подробное более-менее подробное описание принципа работы суперфетча, и возможностей его настройки?
У Соломона/Ионеску в пятом издании более менее подробно расписывается. Возможностей настройки нет. Это чисто внутренний механизм, не предполагающий вмешательство пользователя.
Не думаю, что его можно настраивать. Но сбросить его кэш можно удалением prefetch файлов.
А вы не могли бы подсказать, как бороться со следующей проблемой:
имеется ноутбук с 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, тогда система продолжает работать вполне нормально
У старых версий уторента был баг, при большой скорости он забивал всю память. В последних давно не встречал.
Ну я использую 2.0.4. Насколько мне известно, это было в 1.8.х? Или же вы говорите про бета-версии?
У меня на 2.1, и 2.2 такого бага небыло, на всех до 2.0 был, поэтому сидел на bitTorrent.
А сейчас вы чем пользуетесь? bitTorrent'ом, или uTorrent'ом?
К сожалению, некоторые трекеры, которыми я пользусь, запрещают использование beta-версий utorrent'а, поэтому не могу обновиться до бета-ветки.
Сейчас uTorrent 2.2, он уже RC (link)
Попробую его. Спасибо.
Правда, он тоже запрещен на одном трекере. Думаю, переживу :)
А почему запрещен? Просто интересно…
Возможно, потому, что он основан на TBDev :)
Не помогло. Полтора часа поработал и, в итоге, сожрал около 1.5Гб ОЗУ. Странно то, что в TaskManager'e или ProcessExploror'e отображается, что он использует лишь 50Мб ОЗУ. Но, стоило лишь завершить работу uT, как 1.5Гб ОЗУ волшебным образом освободились.

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

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

Что же до торрента. Попробуйте понизить uTorrent-у приоритет. Насколько я понимаю, это должно привести к снижению I/O приоритета и соответственно кеширование будет происходит на более низкие уровни. Но вообще понижением приоритета должны заниматься авторы uT
Спасибо, попробую. А то я уже боюсь его запускать :) Никогда не ожидал от него такого поведения.
Приоритет 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 процессов компиляции одновременно…
О, так даже лучше. Но я не про приоритет CPU, который ставится KeSetPriorityThread, я про Win32 «классы приоритетов», которые по хитрым правилам отображаются в приоритеты CPU/Memory/IO для потоков.

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

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

Вот так выглядит процесс загрузки (в первые 20 секунд диск занят на 100%). При подобном дисбалансе CPU/Disk скорость только увеличивается. И за счет того, что надо попросту меньше читать, и за счет того, что при меньшем количестве чтений уменьшается и contention — соответственно меньше disk seek-ов.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Сбор трейсов можно производить и искаропочным logman (и даже гуевым PerfMon-ом), а вот анализом должны заниматься специально обученные индусы, так что SDK — самое место для такого рода утилит.
Как будет работать этот тулкит если в компе несколько пользователей и у каждого в своей автозагрузке свой набор приложений?
Event-ы собираются и сбрасываются в файл в ядре. Если не залогинится под пользователем, инициировавшим сессии, то трейс просто не остановится и забьет диск, потому как xbootmgr ставит в автозагрузку отключалку трейса.
окей, вот часть про Autologger я не понял. Как его включить так чтобы он собирал ETW начиная с winload?
В реестре в разделе сессий прописываются ИД провайдеров? Но какие именно провайдеры нужно указывать? И хватит ли прописать одну сессию?
Выберите Summary Table на Generic Events в самом низу — там много интересного.
Вот здесь в частности видно, как на 45-й миллисекунде загружается этот самый winload.exe (то есть event-ы идут начиная с бутсектора, а не winload)


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

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

я говорил не про bootchart или upstart, а про ureadahead. Графики загрузки с и без ureadahead предоставлю, только не сегодня и не в отдельной статье, а завтра и здесь же в комментарии.
> а завтра и здесь же в комментарии.
Прошло пять лет.
Так грузится же ещё :)
а завтра и здесь же в комментарии

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

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

после перезагрузки (xbootmgr -trace boot) вот такое вот сообщение, и файл трассировки не читается.
в какую сторону копать?
UFO just landed and posted this here
UFO just landed and posted this here
Логгеры либо не включились, либо отключились до того, как xbootmgrSleep получил шанс прибить их.
Попробуйте сделать

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

Просто чтоб посмотреть а логгеры вообще включаются
логеры включаются, 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.»
Смержить те два файла можно командой
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/
я только что всмотрелся — перегнул с потерянными трейсами, а вот буферы потерялись. Файл при этом не открывается (программа вылетает с ошибкой, смерженные файлы или нет — пофиг), но это не всегда так — иногда после очередного ребута с трейсом он ругается этим сообщением но ошибки нет. один файл весит 102мб, другой 82мб.

так же я попытался procmon`ом отловить то что ему не нравится, но 10т строк не осилил
получилось как-то разрешить проблему? а то у меня то же самое…
ну то что товарищ amirul мне откомментировал я сделал и он винда даже что-то показала. Правда после этого я уже не проверял с перезагрузкой, ибо проект рендерится) Подожду до лучших времён
UFO just landed and posted this here
В 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
какие магические действия) к сожалению не помогло
а если «OptimizeComplete» = «No»? Мне помогло :)
А как эти мероприятия влияют на завершение работы? Из той же серии процесс, если подумать.

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

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

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

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

Присоединяюсь к мнениям об отличности статьи!
Наглядный ликбез + ощутимая польза + повод для экспериментов = секрет успеха :)
Кстати, bootchart работает совсем не так как xperf. Во первых трейс начинается с запуском первого user mode процесса, во вторых это sampled профайлер, в отличие от instrumented (с возможностью снятия семплов, о чем попробую написать позже) в случае xperf
Кстати, bootchart работает с upstart?
Не пробовал, но не вижу причин, почему не. Это обычный демон, снимающий семплы раз в сколько то сотен миллисекунд.
Кстати, краем уха слышал про феерически высокую скорость загрузки Ubuntu 10.10, но самому нет времени пощупать. Вам довелось с ней столкнуться?
В виртуалке. Грузится быстро, да.
UFO just landed and posted this here
Так вы спрашивайте непонятное, добродушные члены сообщества потихоньку переведут.
Можно то же самое, но так чтоб всё за 1 клик?
Однозначно в избранное, спасибо +)
UFO just landed and posted this here
А если дефрагментацию запустить прямо из Start menu?
Отключали «ненужные» сервисы до этого?
UFO just landed and posted this here
Все сторонние дефрагментаторы сейчас (уже лет 10 как минимум) используют стандартное Defrag API — можно иметь сколько угодно операций перемещения кластеров. Можно даже запустить несколько дефрагментаторов одновременно
Ни фига себе!
В избранное, однозначно!
UFO just landed and posted this here
>Фриман не одобрил бы этот комментарий.
пожалуй, даже соглашусь =)
> вопрос какой задали по статье
у меня только один вопрос — откуда подобные познания и где можно почитать еще на эту тему?
Советы общие: Solomon/Ionescu/Russinovich «Windows Internals», MSDN, помогает чтение исходников: WRK, утекшие w2k/nt4. Когда более менее понятно чем живет и как работает винда в принципе, можно пытаться ковырять всякие частности. Здесь уже нет единого источника: blogs@msdn, собственные эксперименты, перепрочитывание документации в поисках каких то намеков и пр…

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

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

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

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

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

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

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

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

Можете запустить recovery console, подключить \Windows\System32\config\SOFTWARE из системного диска и выставить Start в 0 либо вообще поудалять все значения оттуда.
Зачем выключать комп, если есть hibernate?
Полностью поддерживаю данного оратора :-)
Есть нетбук, ноутбук и мощный комп. все реально быстро из гибернации выходят.
Оперативы в ноутах по 2 гига. В мощном компе 8 гигов.
у меня нету места на системно жёстком диске под всю оперативку :-( а так хибернейт постоянно юзал
кстати очень странно почему хибернация не записывает в файл только полезную информацию чтобы в разы уменьшить его размер.
Так она и записывает. Причем сжимает ее при этом
как я убедился довольно мало сжимает. с 6гб получается 4.5гб. хотя на момент гибернации занято только 2гб памяти например. еслибы и его ужать можно было бы, то это получается аж 1.4гб
Вы путаете размер файла hiberfil.sys и размер данных, которые в него складываются. hiberfil.sys преаллокейтится, но записывается он не полностью. Проверить довольно легко, но долго:
Перегружаетесь, заполняете весь hiberfil каким нибудь шаблоном типа «CANTTOUCHTHISCANTTOUCHTHISCANTTOUCHTHIS...», загружаетесь, уходите в хибернейт и смотрите сколько шаблонов осталось не перезаписанными.
да это понятно, но это не избавляет от досадного факта — что 10гб hiberfil.sys не влезают на жёсткий диск, как бы там данные внутри него не записывались
Да, но ничто не мешает отказаться от схемы системный/несистемный и пользоваться прелестями спящего режима
сколько у Вас оперативы? все 16 гигов???? =)
Ну разбиение диска на системный и несистемный — тоже чаще всего неправильное решение надуманной проблемы.
отнюдь — у меня на второй раздел перемещены AppData, индексация поиска и туда устанавливаю все программы, и при откате системы из образа, работоспособность системы остаётся прежней
> отнюдь
> при откате системы из образа
Ну где же отнюдь, когда так и есть. Есть пара вопросов по «откату системы из образа»:
1. Восстановление системы?
2. Пофайловый бекап?
2.1. Пофайловый инкрементальный бекап, который позволит сохранить ГОРАЗДО больше истории. Более того, в этом случае можно будет бекапить всю AppData со всеми программами
я использую Paradon Drive Backup. Программы занимают у меня 130гб, поэтому даже если это инкрементный архив — по скорости он будет делать так же долго как с нуля (восстановление тоже), и такой архивчик даже со сжатием мне негде хранить :-) Да и я не хочу чтобы настройки приложений у меня откатывались назад, я специально это делал чтобы программы оставались такими же. Ещё кстати я специально ограничил в былые времена системный раздел, потомучто если его не ограничить, winsxs просто всё сожрёт и программы устанавливать будет некуда
Ну если бекап программ не нужен — так и не бекапьте :-)
Можете выбрать какие каталоги бекапить, а какие нет. Это все не проблема.
WinSxS ничего не жрет — это еще одно распространенное заблуждение. Хотя, вот тот же Installer растет, но чего конкретно Вы добились тем, что ограничили размер? Installer перестал расти?
на собственном опыте не испытвал но ходят байки что и 50гб винт заполнился папкой winsxs. Наверное это и есть именно «байки», ибо я вам доверяю больше
Хотите забавный эксперимент?
Сделайте
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 вы не выиграете ничего, кроме напрочь поломанного сервисинга
UFO just landed and posted this here
Не все, так как в WinSxS могут добавляться (и добавляются) реальные файлы, а не только симлинки. Но большая часть манипуляций действительно бессмысленна. Более того, «замена файлов хардлинками на более новые версии того же файла» может начисто убить систему сервисинга (апдейты).
В частности для уменьшения размера загружаемых при обновлении данных винда использует дельта компрессию. То есть, если винда знает, какая наименее отличающаяся версия файла (чаще всего последняя, но не всегда) есть в наличии, она может запросить только отличия от этого файла. Можете представить что будет если дельту применить к неправильному «оригиналу».

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

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

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

То что окна со временем начинают тормозить — это уже закономерность.
Собственно она уже есть. Большая часть оптимизации сводилась к перезагрузкам и обучению ReadyBoot/Defrag
Долгий старт сервисов — здесь трудно что либо сделать ибо заранее точно не известно (в том смысле, что решение должно быть принято автоматически и быстро), как повлияет на работу системы отложенный старт того или иного сервиса.
И да, снос windows\installer место конечно освобождает, но вот на перезагрузку не влияет вообще
Нет, не влияет. Но 20 Гб для c:\windows слишком жирно.
На самом деле там всегда несколько (примерно на 5-6 гиг) меньше из-за жестких ссылок.
Подобный инструментарий стал для меня полнейшим открытием. Огромное спасибо автору!
Очень интересует, как сделать подобную «низкоуровневую» оптимизацию на WinXP. Кроме всяких твиков для ВинХП ничего серьезного не встречал.
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.

:)
Ну, найду конечно :)
странные они в microsoft. Зачем убирать тулзу из закачек? =\
Затем же видимо, зачем кожухами закрывают двигатели в некоторых современных автомобилях. Что бы юзеры глупые не лазали там самостоятельно, и ничего не сломали. А обслуживание чтоб было только на сертифицированных сервис-центрах.
а зачем тогда выложили сначала? :)
А раньше и запломбированные кожухи на двигатели не одевали. А сейчас видимо считают, что техника и компьютеры надежнее, если их не трогать :)
как быстро меняется мир %)
Мне здесь «с полей» сообщают, что xperf вполне работает в XP, хотя и выдает меньше информации (бутлог снимать можно)
UFO just landed and posted this here
xbootmgr -trace hibernate
Можно к base+cswitch добавить еще drivers или latency. В общем чаще всего это кто-то один, максимум — двое. Найти и либо прибить либо разобраться чего им надо
Спасибо большое автору. Сегодня ночью попробовал и уменьшил время загрузки где то в 4 раза!!!
Уха!!!

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

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

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

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

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

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

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

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

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

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

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

Windows Search — вроде ничего страшного, если он не делает такое ПОСТОЯННО. Он не должен постоянно носиться по диску и переиндексировать все подряд.
Да, если захотите выключать функционал — порядок действий точно такой же.
1. Определяете, кто наносит наибольший ущерб производительности
2. Смотрите, что с ним делать (в данном случае решение сводится к вырезать/не вырезать)
3. Lather, rinse, repeat
Можно сжимать сразу много каталогов(прописать в батник):
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»
Проще скопировать 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
@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
Большое спасибо за пост, но он, к сожалению, не смог прояснить проблемы — в момент когда должен появиться «флаг» Windows, компьютер 15 секунд ничего не делает и только потом продолжается загрузка.

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

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

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

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


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

Результат:


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

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

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

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

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

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

Вроде проблем нет, хотя и ускорения не заметил.
Добавлю маленький момент, может кому пригодится — если у вас установлен SharePoint Foundation 2010, то разжать еще нужно будет папку, где лежат его базы: c:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Data\MSSQL10.SHAREPOINT\
Блин, собрался скачать SDK и облом.
С сайта майкрософта ничего не качается.
При входе на сайт download.microsoft.com/ красуется надпись «Welcome to nginx!»
Проверь hosts файл. Может активатор какой вмешался.
Вот такую инструкцию то чисто для дисков SSD… А то чисто столько раз выполнить дефрагментацию для диска не особо хорошо скажется.
UFO just landed and posted this here
спасибо. Попробовал промониторить бут, и обнаружил то, о чем подозревал — на моем десктопе Pre Session Init длится 45 секунд, и разумеется, только оттуда начинается Session Init.
Какую-то информацию про pre session вижу только на последнем графике (ProviderIds), там очень мало событий, буквально 4 штуки. I/O Counts начинаются только с 40й секунды.
Что посоветуете делать в этом случае? колупать bios? пробовал, ничего подозрительного или ускоряющего эту часть загрузки не нашел.
А у меня на SSD система стала загружаться за 25 сек с прежних 10 сек… попробую сегодня методику в вашей статье… Для SSD какие нибудь нюансы есть?
Автору громкие апплодисменты! Я очень удивился что ноут стал загружаться в 2 раза быстрее. Существует ли возможность запустить такую системную дефрагментацию без 6ти перезагрузок?
А что автор скажет по поводу ReadyBoot и SSD? Очень многие рекомендуют отключать, но внятного обоснования, кроме того, что потери от износа превышают выгоды от мизерного ускорения (для SSD), нет.
Спасибо огромное. Обновил вин7 до вин8 после покупки, в итоге винда очень лагала при запуске и работе служб. Дело в том, что винде было доступно 30 гигов для обновления и там было много мелких файлов. Итог — винда8 втиснулась между этими файлами на диске и при запуске она металась по диску в поисках следующего файла. Скорость диска была не более 10 мб в секунду при работе с файлами винды. при запуске бывало и под 2-3 Мб. Сейчас дефрагментирую этой штукой, уже пошустрее работает. Правда долго делает… один раз перезагрузил прям во время дефрагаментации — и уже есть результат. Скорость уже до 15 мб при загрузке подскакивает.
Компрессия это хорошо. До появления бэдов… и процесс декомпрессии нас начинает радовать.
Подскажите пожалуйста, имеется 2012R2 standard лицензия. При попытке запустит перезагрузки ругается на
BootManager can not prepare the system on non-workstation installs

на серверных осях это вообще не работает или нужно какой-нибудь хитрый параметр в реестре подкрутить?
Dropbox очень сильно влияет на скорость загрузки. У меня он отъедал около минуты при загрузке. Судя по трейсу занимался чтением всех файлов.
А можно просто SSD поставить. Вот без какой либо оптимизации замусоренная система:

image
C SSD скорость вырастет просто суперски, конечно, я подтверждаю. Но а что, если поставить SSD и еще и оптимизировать? Тут материал для еще одной статьи ;-)

@amirul 11 лет спустя я всё ещё перечитваю эту статью, чтобы найти вдохновение при дебаге приложений.

Articles