Приходилось ли вам загружать операционную систему с механического жёсткого диска в начале 2 декады XXI века? Вероятно, то ещё удовольствие...
И тем не менее, накопители SSD объёмом более 1 Тб всё ещё весьма недёшевы, а при меньшем объёме не всегда удобны для хранения значительного объёма используемых программ и данных, перевод ПО большого объёма на дополнительный HDD не всегда удобен, а гибридные накопители всё ещё имеют только необходимый минимум SSD кэша, не всегда достаточный для скоростного доступа как к файлам ОС, так и к файлам регулярно используемого ПО и часто открываемых документов. А если эти документы совсем не текстовые, а графические или редактируемые видеоролики - их открытие снова упрётся в быстродействие вашего дешёвого и надёжного HDD. И хотя HDD и близко не сравнится по своему быстродействию со своим значительно более дорогим конкурентом SSD, ситуацию всё же можно немного улучшить, а затем регулярно поддерживать в состоянии, далёком от катастрофического. Тем более, что и срок службы HDD всё ещё заметно выше, чем SSD.
Попробуем разобраться, что для этого нужно, на примере трёх разных семейств операционных систем - MacOS, Linux и Windows.
1. HDD, как узкое место - точки снижения нагрузки на файловую систему
1.1. Автозагрузка
Как при установке ОС, так и при установке программ, некоторые программы или их службы вписываются в автозагрузку, чтобы автоматически загружаться с системой. Естественно, на загрузку каждой из них нужно немного времени. Не все они необходимы! При всей полезности автозагрузки, формировать её следует, исходя из собственных реальных потребностей. Нужен ли вам в Windows 10 клиент облака OneDrive от Microsoft? Или Welcome screen в Linux Mint? Уверен, вам и своего списка хватает - наверняка в него входят Skype, WhatsApp, Telegram, ваш почтовый клиент.
Кроме программ, автозагрузка настраивается для служб (в Windows) или Демонов (в Linux и Mac OS). И если запуск большинства системных служб стоит оставить неизменным, то запуск служб, устанавливаемых с программами, стоит проконтролировать и удалить лишнее - это можно сделать как вручную, так и с помощью специальных программ - твикеров - например, SysInternals Autoruns или Reg Organizer для Windows, CleanMyMac для Mac OS, Ubuntu Cleaner для Linux.
1.2. Дефрагментация и свободное место
Все файлы на диске хранятся в виде цепочек данных — примерно, как книги в виде строк. Минимальная ячейка хранилища (страница) такой цепочки — это кластер файловой системы. Когда между (перед, после) файлами на диске нет промежутка, которое больше сохраняемого файла — он разделяется на фрагменты и хранится по частям в промежутках между уже имеющимися на диске файлами. Это и есть фрагментация. Если фрагментов много, и они сильно раскиданы по диску — чтение такого файла (с HDD) замедляется.
Однако если в качестве системного хранилища вы всё же выбрали SSD — фрагментация не только не снижает скорость доступа к файлам (ведь чтение с него не последовательное, а одновременное, сразу с групп блоков хранения данных, которые файловая система и объединяет в кластеры), но и используется самим диском для продления срока путём распределения записи на самые новые блоки — то есть те, что выполнили меньше всего циклов записи. Таким образом, процедура дефрагментации на SSD бесполезна для быстродействия и вредна для самого диска!
Фрагментации в процессе работы подвергаются все без исключения файловые системы. И хотя современные файловые системы в достаточной степени умеют снижать и частично предотвращать фрагментацию, заранее размещая новые файлы на диске наиболее удобным образом (в самые большие промежутки, чтобы фрагментов было меньше), замедление чтения с диска по этой причине всё же возможно, особенно при высоком (более 80%) заполнении диска.
В том числе поэтому (а ещё для нужд операционной системы) на системном разделе настоятельно рекомендуется иметь свободными не менее 10% (а лучше — 20%) от объёма.
Во всех трёх семействах рассматриваемых операционных систем имеются утилиты для дефрагментации файлов. Но, если в Mac Os и Linux падение быстродействия из-за фрагментации относительно невелико (в комплекте Mac Os даже отсутствует штатная утилита для дефрагментации, имеются только платные сторонние пакеты обслуживающего ПО), да и в значительной мере нивелируется штатными средствами файловой системы, то в Windows скорость загрузки может заметно проседать со временем именно вследствие фрагментации редактируемых системой загрузочных файлов (реестра, данных предзагрузки в папке C:\Windows\Prefetch, некоторых других файлов с настройками). Именно для этого штатная утилита дефрагментации Windows может быть запущена с флагом /b (defrag c: /b /u) (https://www.outsidethebox.ms/10365/), чтобы не ждать полной дефрагментации диска, а ограничиться лишь загрузочными файлами.
И ещё раз: если вы всё же выбрали для хранения системы и программ SSD — этот пункт повышения быстродействия бесполезен, а для срока службы SSD — ещё и вреден. Что же касается файлов, хранящихся на HDD (это если дисков у вас два — SSD для системы и ПО и HDD для данных) — то да, открытие больших файлов или групп файлов (например, сохранённых проектов видеомонтажа, чертежей, 3D-моделей, баз данных, других больших файлов) можно заметно ускорить, снизив их фрагментацию.
Резюмируя вышесказанное — если ваш HDD никогда не был занят более, чем на 50-70% — скорее всего, дефрагментация не нужна. Если же он уже занят более, чем на 70-80% — то перед (а на SSD — вместо) дефрагментацией будет лучше провести ревизию файлов и удалить ненужное, это сильно ускорит процедуру! Поэтому приступаем к очистке.
1.2.1 Корзина, загрузки и документы
Думаю, уточнять расположение этих папок в каждой из систем будет излишне. У многих пользователей как минимум во второй из этих папок скопилось немало ненужных файлов. Если нет времени пройтись по всем — отсортируйте их по размеру в порядке убывания и начните ревизию с больших. Или воспользуйтесь программами, которые удобно отсортируют их за вас на ВСЁМ диске — например, OmniDiskSweeper или DaisyDisk для MacOs, Treesize или WinDirStat для Windows, Baobab или KDirStat для Linux.
Далеко не раз и не два на компьютерах своих клиентов, знакомых, или коллег в обслуживаемом мной офисе, я наблюдал несколько десятков (а то и сотен) файлов в корзине общим объёмом до десятков гигабайт.
Даже если вы удаляете файлы группами, а перед очисткой корзины проверяете корректность удаления каждого файла, лучше всего это делать сразу после удаления, или после нескольких последовательных удалений, если это удобнее, но — сразу (хотя бы в этот же день, а лучше в течение часа)!
1.2.2 Системные и загрузочные кэши ОС
Как система, так и некоторые программы (особенно браузеры) хранят на диске немало временных данных. Например, файлы загрузочной предвыборки Windows в папке C:\Windows\Prefetch, которые создаёт служба Superfetch, анализируя каждую загрузку и заранее загружая то, что загружается чаще всего. Это позволяет в небольших паузах между порядковой загрузкой драйверов и служб, параллельно загружать то, что потребуется на следующих этапах запуска ОС и очень значительно ускоряет загрузку, частично распараллеливая её.
Также дистрибутивы всех установленных обновлений и дополнительных компонентов Windows (например,библиотеки .net Framework, Visual C++ и пр.) копируются в отдельную папку и ведётся база данных всех этих изменений. Если после установки всех необходимых компонентов и обновлений Windows работает без нареканий — всё это можно очистить в Свойствах диска (Мой компьютер\ Диск С\Контекстное (правой клавишей) меню\Свойства\Очистка диска — не забудьте нажать кнопку "Очистить системные файлы" со значком повышения прав до администратора).
В Mac Os аналогичным образом формируется dyld кэш (/private/var/db/dyld/), который содержит ссылки для загружаемых программ на общие библиотеки и ускоряет запуск приложений.
Некоторые элементы системных кэшей могут потерять актуальность (например, что-то было удалено или обновлено вручную лишь частично), что также может вызывать паузы при обнаружении подобных расхождений. Представьте, что, например, изменился путь к исполняемому файлу и системе придётся выполнить его поиск по подпапкам во всех папках, предназначенных для аналогичных файлов (в Windows это могут быть папки C:\Windows\System32, C:\Program Files, C:\Program Files (x86), в Linux и Mac OS — /usr/bin, /usr/sbin, /usr/lib, /usr/local/lib. Устаревание этих кэшей может вызывать небольшие паузы и подвисания в работе.
Чтобы избегать подобных ситуаций, системные кэши стоит время от времени актуализировать — обычно, это делается с помощью специальных команд (таких, как sudo update_dyld_shared_cache -force на Mac OS или sudo prelink -amfR на Linux, а также, косвенно — rundll32.exe advapi32.dll,ProcessIdleTasks для Windows). Кэш Superfetch в Windows можно актуализировать простым удалением файлов из папки C:\Windows\Prefetch за исключением файла Layout.ini. Если он будет удалён — для его повторного формирования уже обязательно потребуется принудительная процедура запуска всех запланированных заданий самообслуживания Windows при простоях: rundll32.exe advapi32.dll,ProcessIdleTasks (выполняется обычно несколько часов только в командной строке с правами администратора). После очистки папки следующая загрузка будет медленной, загрузка будет заново анализироваться службой SuperFetch и файлы будут вновь созданы. После нескольких перезагрузок с паузами 5-10 минут между ними («тренировка», https://www.outsidethebox.ms/10365/), загрузка Windows заметно ускорится.
Эти процедуры в равной степени актуальны как для HDD, так и для SSD.
1.2.3 Кэши приложений
Приложения также хранят на диске кэшируемые данные. Например, в случае с браузерами — дисковый кэш позволяет не ждать повторной загрузки сайтов из интернета, а загружать их прямо с диска, попутно сверяя с оригиналом и актуализируя все изменения на диске. В процессе работы подобные дисковые кэши могут сильно расти, из-за чего доступ к ним заметно замедляется.
В Windows приложения (включая браузеры) сохраняют кэш в папку C:\Users\Пользователь\AppData\Local каждый в свою папку.
В Mac OS кэши всех приложений располагаются в двух папках: users/Имя_пользователя/Library/Caches (или сокращённо ~Library/Caches) для каждого пользователя и /Library/Caches для всех пользователей.
В Linux кэши приложений хранятся в папке /var/cache.
Время от времени кэши приложений стоит очищать — либо (кроме Windows) вручную — удалить содержимое нужной папки (хотя и с осторожностью, лучше всего удалять только файлы, сохраняя структуру папок), либо из настроек самого приложения (это относится в первую очередь к браузерам), либо из терминала (например, для установщика пакетов Linux — sudo apt clean all для Debian/Ubuntu или sudo yum clean all для RedHat/CentOS), либо при помощи различных утилит для оптимизации — таких, как CCleaner и Reg Organizer для Windows, Onyx, CleanMyMac и CCleaner для Mac OS, Ubuntu Cleaner для Linux. Последний способ самый удобный.
Имейте ввиду, что после очистки кэшей первый запуск системы и приложений может замедлиться, затем кэш актуализируется и быстродействие заметно (обычно тем заметнее, чем больше был старый кэш) улучшится.
1.2.4 Временные файлы
В основном это файлы, нужные приложению или системе только один раз, до закрытия приложения или перезагрузки.
В Linux эти файлы находятся в папках /tmp, /var/tmp и /home/Имя_пользователя/tmp (у каждого пользователя). Они очищаются автоматически при каждой перезагрузке, но если что-то пошло не так — их можно спокойно очистить вручную. Открытые в данный момент файлы не удалятся, так как заблокированы.
В Mac OS временные папки располагаются по пути /private/tmp (а также /tmp, но это не папка, а ярлык на ту же private/tmp) и по уникальному в каждой системе пути для каждого пользователя — например, /var/folders/g7/2du11t4_b7mm24n184fn1k911300qq/T/
Чтобы узнать уникальный путь к вашей временной папке, наберите в терминале: echo $TMPDIR
Также иногда приложения создают папку ~/Library/Caches/TemporaryItems/ (подробнее см. статью https://osxdaily.com/2018/08/17/where-temp-folder-mac-access/).
Очистить их также можно вручную, или с помощью системных процедур обслуживания — sudo periodic daily, sudo periodic weekly, sudo periodic monthly.
В Windows расположение временных папок следующее:
%windir%\Temp и %Temp%, где переменная окружения %windir% = "C:\Windows", а переменная %Temp% = "C:\Пользователи\Имя_пользователя\AppData\Local\Temp", если вы ничего не меняли при установке Windows.
Они очищаются вручную, либо вручную создаётся, а затем добавляется в автозагрузку файл Имя_Файла.bat или Имя_Файла.cmd с двумя цепочками команд внутри:
CD [%windir%\Temp] && RMDIR /S /Q .
CD [%Temp%] && RMDIR /S /Q .
Так же, как и кэши, временные файлы можно почистить с помощью утилит для оптимизации — таких, как CCleaner и Reg Organizer для Windows, Onyx, CleanMyMac и CCleaner для Mac OS, Ubuntu Cleaner для Linux. Более того, некоторые из них, как например, CleanMyMac, позволяют проводить ревизию больших файлов на диске.
В целом, если ситуация на диске совсем катастрофическая — первым делом проведите ревизию загрузок и документов, очистите корзину и временные папки, затем либо устанавливайте утилиты для оптимизации, либо переходите к кэшу. На Мак и Windows также можно воспользоваться встроенными средствами очистки (для Mac OS см. https://support.apple.com/ru-ru/HT206996, для Windows см. https://ichip.ru/sovety/ekspluataciya/kak-ochistit-disk-ot-musora-novye-vstrooennye-sredstva-windows-10-sdelayut-vse-na-avtomate-727022), а на Linux — командами терминала (https://zalinux.ru/?p=3047).
1.3 Сжатие файлов на диске
Многие современные файловые системы позволяют сжимать (чаще всего, алгоритмом ZIP) хранящиеся файлы. Подобная возможность относится прежде всего к Linux (файловая система BtrFS) и Windows (NTFS). ApFS от Apple полноценного сжатия не имеет, но умеет автоматически усекать цепочки нулей в файлах, что немного их сжимает, а также ускоряет работу SSD.
В целом сжатие не только слегка ускоряет доступ к файлу (так как его размер уменьшается и используется меньший объём диска для его хранения, что ускоряет запись и чтение файла, а также снижает вероятность его фрагментации), но и совсем незначительно снижает износ жёсткого диска, так как объём данных для сохранения меньше. Взамен такая схема увеличивает нагрузку на процессор (сжатие-разжатие), однако для современных процессоров разница в нагрузке ещё менее значительна, чем для жёсткого диска записать несжатый файл по сравнению со сжатым.
1.4 Подкачка
Если оперативной памяти не хватает — начинается подкачка. Не используемые программы и данные выгружаются в специальный файл или раздел на диске, освобождая в памяти место для используемых в данный момент. Потом, в случае необходимости — обратно. При скорости SSD это не так существенно, да и не всегда заметно, а на HDD — порой сущий кошмар! На время этой процедуры как минимум часть программ, а как максимум — вся ОС на какое-то время подвисают и становятся недоступны. В самых тяжёлых случаях можно успеть заварить чаю… Как же этого избежать?
Наилучший способ — купить и установить оперативной памяти больше, чем требуется для выполняемых задач. К тому же, избыток RAM даст нам дополнительный простор для второго
акта Марлезонского балетараздела оптимизации. Да и 16 Гб RAM стоят примерно в 2 раза дешевле, чем 1 Тб SSD.Второй способ — использовать для подкачки небольшой SSD или быструю флешку. В Linux на этом диске следует создать раздел подкачки, а Windows сразу же спросит, можно ли использовать этот диск для TurboBoost? И при согласии разместит там быстрый файл подкачки, что сразу же снизит остроту ситуации, как только оперативной памяти начнёт не хватать. Да даже если файл подкачки просто перенести на второй HDD, который система больше никак не использует — ситуация пусть и незначительно, но всё же довольно заметно улучшится. В Mac OS подобные настройки файла подкачки не предусмотрены, но добиться аналогичного результата можно либо с помощью сторонних утилит, либо напрямую редактируя файлы настроек системы — например, как описано здесь.
2. Расширяем границы — кэширование файловых операций в оперативной памяти
2.1 Предзагрузка часто используемых программ, библиотек и документов. Prelink, Prebinding, Preload, Prefetch, Superfetch
Prelink в Linux и Prebinding в Mac OS — это утилиты, прописывающие в системе (кэш dyld на Mac OS) или исполняемом файле (в случае с Linux) связи приложений (и служб) с разделяемыми библиотеками, что ускорит запуск этих приложений.
А Preload (Linux) — демон (служба), загружающий нужные библиотеки заранее. В Mac OS всё, как обычно, уже настроено разработчиками, а вот в Linux оба компонента следует установить и настроить — процедура настройки описана в статье.
И если для Mac OS сравнивать не с чем, так как всё работает из коробки, то в случае с Linux после всех указанных в статье действий загрузка ОС (на этапе служб) действительно заметно ускорится. Также ускорится загрузка приложений. Точные измерения я не сохранял, но они выполняются двумя командами: sudo systemd-analyze time — общее время загрузки — и sudo systemd-analyze blame — время загрузки по службам (https://unlix.ru/анализируем-скорость-загрузки-linux/).
Аналогично Preload работает служба Superfetch в Windows. Вот только она анализирует абсолютно все загружаемые программы и системные службы, а не только общие библиотеки. Результат анализа сохраняется на диске — и через несколько перезагрузок (разумеется, не подряд, а после хотя бы 5-15 минут работы) всё, что запускалось между этими перезагрузками наиболее часто (включая компоненты ОС), будет загружаться в оперативную память заранее в моменты простоя между этапами загрузки. Разница в скорости загрузки и запуска наиболее частых программ может достигать 1,5 — 2 раз!
После очередной чистки не поленитесь сразу актуализировать Superfetch, dyld (описано в п. 1.2.1), Prelink (https://habr.com/ru/post/108454/) — результат не заставит себя ждать!
2.2 Больше или лучше? Сжатие данных в RAM. ZRAM, ZSwap
Сколько бы оперативной памяти вы ни имели — её более экономный расход не только уменьшит необходимость работы с файлом подкачки, но и более того, в нашем случае позволит использовать сам файл подкачки прямо в оперативной памяти в сжатом виде, что более чем на порядок (соотношение скорости HDD и RAM согласно измерениям) ускорит процедуру подкачки, если таковая потребуется.
Итак, выполняем установку и настройку, согласно инструкции.
Небольшая ремарка: в отличие от настроек в упомянутой инструкции, параметр vm.swappiness я выставляю 90 или 85 (% свободной RAM), чтобы вытеснение в сжатый swap начиналось уже при 10 или 15%-ном заполнении. При скоростях оперативной памяти накладные расходы по быстродействию на сжатие/распаковку файла подкачки абсолютно незначительны, в то время как расход оперативной памяти, согласно показаниям Системного монитора Linux, как на чистую загруженную систему, так и на открытые вкладки браузера Firefox, снизился примерно в 1,5 раза. Разумеется, от перерасхода памяти в 2 и более раз нас это не спасёт, но не задумываться о быстродействии вплоть до 1,5 объёмов RAM уже можно себе позволить.
В случае с Windows (с версии 10) и Mac OS (с версии 10.9 Mavericks) — средства хранения сжатой подкачки в RAM в настоящее время поставляются в составе этих операционных систем и включены по умолчанию.
2.3 Способы кэширования файловых операций в RAM
Убедившись, что расход оперативной памяти оптимизирован и определив утилитами мониторинга, что при самых ресурсоёмких сценариях вашей работы запас свободной оперативной памяти всё ещё более 30%, можем приступить к некоторой оптимизации работы диска. Разумеется, это не ускорит чтение или запись больших файлов вроде видео, но в случае с небольшими офисными, временными, вспомогательными (вроде текстур, или конфигурационных) файлами, а также с очищаемыми файловыми кэшами (браузера, например) это сможет не только значительно ускорить работу, но и полностью избавить жёсткий диск от части файловых операций, что снизит его износ — и если для HDD это будет совсем незначительное продление срока службы, то в случае с SSD всё как раз наоборот — прирост быстродействия будет небольшим, а снижение износа — весьма заметным!
2.3.1 TmpFS
Итак, перенос временных файлов на виртуальный диск в оперативной памяти (RAM-диск).
Начнём с Linux, которая уже имеет в своём составе все необходимые компоненты, осталось только перенести папки временных файлов в TmpFS, как описано здесь.
Для Mac OS такой способ менее актуален, создать RAMFS можно таким образом, а вот перенести туда (да и вообще, куда-либо) папку /private/tmp, похоже, возможности нет. Навскидку — можно создать папку tmp в RAMFS, а вместо имеющейся папки /private/tmp сделать ссылку на неё (так же, как и /tmp — ссылка на /private/tmp). Так же можно сделать и с пользовательской временной папкой, но, во-первых, этот способ не проверен, поэтому если ваш Мак после этого не загрузится — будьте готовы вернуть всё как было, а во-вторых — чтобы создать ссылку — надо удалить папку, а если на момент удаления там будут открытые файлы — система заблокирует папку вместе с ними. Тогда делать это придётся либо из Single mode (Cmd-S при загрузке), либо из режима восстановления (Cmd-R при загрузке, там есть терминал). При обоих способах ваши настройки RamFS не будут загружены и файлы не будут заблокированы, загрузятся только системные настройки. В общем, как писал современный автор — "Эмпирически — то есть, на ощупь!" (https://knigger.com/read-book/kniga-delirium-tremens-strasti-po-nikolayu-2005).
Наконец, в Windows перенести временные папки на RAM-диск можно, вот только для его создания придётся использовать сторонние утилиты — например, с помощью ImDisk — эта утилита не только устанавливается в автозапуск в качестве службы, но и создаёт свой значок в Панели управления Windows, инструкция по ссылке.
Дальнейшие настройки просты и сводятся к изменению переменных окружения, как это описано здесь.
2.3.2 Утилиты дискового кэша
Увы, подобный вид ПО пока распространён только для Windows. Вот обзорная статья с замерами скорости доступа к файлам для одной из утилит этого типа. На текущий момент программа сменила название на PrimoCache и переросла статус бета-версии и бесплатного ПО и стоит $30 для домашнего и $40 для корпоративного использования. Также на данный момент имеется ещё несколько аналогичных платных утилит, стоят они от $25 до $30, а также бесплатный аналог — HDDTurbo с минимумом ручных настроек и автоматическим использованием всего свободного остатка RAM. Кстати, именно у этой утилиты уже есть версия для Mac OS!
Хочу заметить, что в Mac Os и Linux отсутствует столь проработанный механизм оптимизации загрузки, как Superfetch, а потому, с учётом предзагрузки в память часто используемых программ и документов, наибольшую эффективность HDDTurbo и её аналоги будут иметь именно в ОС Windows.
Для работы с офисными файлами, графикой, для разработки ПО и веб-дизайна (работы с небольшими файлами) подобные оптимизаторы доступа к диску — прекрасный вариант! Даже для SSD! Возможно, подойдёт и для СУБД, но под присмотром и с регулярным резервным копированием баз. Для работы с 3D графикой и видео (большими и очень большими файлами) — скорее всего этот способ бесполезен, если не совсем — то почти. Ведь если программа создала вам кэш объёмом в 4 Гб, а вы открываете (сохраняете) файл объёмом 12 ГБ — ждать придётся ровно столько же, сколько и без кэша. Мелкие файлы, конечно, тоже нужно записать на диск, и сама скорость этой записи ничуть не изменится, но появляется логистика. С хорошим распределением по срочности запросов и объединением мелких операций в групповые. Впрочем, в тех случаях, когда эта логистика позволит сосредоточить мелкие файловые операции в RAM и дать "зелёную улицу" большому файлу, итоговая скорость работы с ним если и не вырастет (совсем незначительно), то как минимум, это позволит не приостанавливать на это время работу с мелкими файлами.
Важно помнить, что у этого способа имеется существенный недостаток: оперативная память энергозависима! Поэтому прежде чем использовать её в качестве кэша — следует позаботиться о бесперебойности энергообеспечения — для системного блока приобрести источник бесперебойного питания, а для ноутбука — убедиться, что аккумулятор в порядке. В рамках этой работы я не ставил задачу найти способ автоматизации остановки программного кэша при переходе на ИБП или разряда батареи до определённого значения, однако не стоит оптимизировать быстродействие в ущерб надёжности. Возможно, подобное решение (например, запуск скриптов с командами на запуск и остановку кэширования) найдётся в настройках управления питанием ОС.
3. Не забываем о ЦП — кто съел все ресурсы?!
Вообще-то именно с этого пункта я начинаю диагностику компьютера — проверяется быстро, а результат может дать значительный и сразу! Ведь оптимизация может потребоваться не только для улучшения быстродействия приемлемо работающей ОС, но и для восстановления системы, уже находящейся в критическом состоянии. А сканирование дисковых кэшей и временных файлов перечисленными выше утилитами также требует времени — и тем большего, чем в худшем состоянии находится ОС.
Итак, начнём по порядку.
3.1 Загрузка ЦП (RAM, диска)
Чтобы определить, какое из приложений активно трудится, загружая наш ЦП почти на 100% (или съело всю RAM, вызвав подкачку, или даже само слишком активно читает/пишет на диск) — во всех ОС существует специальная утилита. В Windows она называется Диспетчер задач (имеет улучшенный бесплатный аналог Process Explorer от разработчика SysInternals), в Mac OS — Мониторинг Системы, в Linux — Системный монитор. Кроме того, для работы в Терминале, на Linux и Mac OS имеется текстовый аналог этой утилиты — Top. Именно здесь мы можем увидеть, какие приложения и службы едят ресурсы, даже отсортировать их для удобства по использованию ЦП, памяти или дисковых операций, а затем принудительно остановить и далее при необходимости проанализировать логи, поискать однотипные проблемы на профильных форумах, либо просто переустановить или даже удалить, если в приложении нет необходимости, или оно установилось бесплатным бонусом к чему-то ещё (часто в Windows так делают трояны и рекламное ПО, так что можно и бесплатным антивирусным сканером пройтись, например, DrWeb CureIt). Если этим приложением оказалось Svchost (приложение запуска служб) — значит, проблемы с одной из служб. Тоже стоит начать с антивирусного сканера, если не поможет — просмотреть запущенные этим процессом Svchost службы (используя SysInternals Process Explorer), первым делом убедиться, нет ли среди них установленных с последним ПО (по имени службы понятно), открыть оснастку служб (Этот компьютер\Управление (из контекстного меню)\Службы и приложения\Службы) и проанализировать каждую из служб этого экземпляра Svchost (описание, работает/не работает, требуется/не требуется, системная/сторонняя). По очереди останавливаем (начинаем со служб стороннего ПО), проверяем результат.
В Mac OS нередка другая ситуация: процессор загружает активной работой та или иная системная служба (например, Mdworker — служба индексации поисковой системы Spotlight) И если в случае с Mdworker чаще всего стоит просто подождать завершения индексации, то в других случаях (или когда Mdworker работает больше 1-2 часов, что уже подозрительно) следует восстановить стандартные права доступа к файлам пользователя (их могло исправить какое-либо приложение или его установщик, после чего служба безуспешно и бесконечно стучится в такой файл со всем доступным ей быстродействием). В прошлых версиях Mac OS исправление прав доступа имелось в штатной Дисковой утилите для проверки диска, но после того, как для системных файлов изменение прав доступа стало блокироваться на уровне ОС, эту функцию убрали. Однако для пользовательских кэшей, конфигурационных файлов приложений и прочих пользовательских файлов такая ситуация всё равно иногда возникает. Восстановить права доступа к исходным для файлов пользователя в настоящее время можно с помощью утилиты CleanMyMac.
В случае с Linux — таких же, типовых для данной ОС неполадок почти нет, за исключением не частых, но всё же вполне характерных проблем видеодрайвера, который в некоторых случаях (подозреваю, что с новыми моделями видеокарт) стоит заменить на проприетарный. В остальном — та же типовая диагностика с помощью Системного монитора, как описано в статье.
3.2 Троттлинг. Температура ЦП
Все современные процессоры при перегреве умеют пропускать такты, замедляя работу и остывая. Эта функция называется Throttling (дросселирование). Температура начала троттлинга определяется заводскими настройками процессора. Для современных моделей это обычно 90-100°. В любом случае, регулярная работа при температуре от 80° и выше уже может негативно воздействовать на пайку кристалла к подложке (микротрещины от перепадов температуры, постепенное окисление припоя) и снижать срок службы процессора. При более высокой температуре начинается троттлинг и работа компьютера резко замедляется, чтобы перегрев не усугублялся. Обычно в Windows я проверяю температуру программой Aida64, в Mac OS (и в Windows на Mac) — сразу устанавливаю Macs Fan Control, в Linux можно использовать, например, Hardinfo (устанавливается из репозиториев утилитой apt, yum: https://www.tecmint.com/hardinfo-check-hardware-information-in-linux/).
Кратковременное повышение температуры (в играх и тяжёлых приложениях, например, при монтаже видео) свыше 70° — ситуация штатная, особенно если температура быстро падает при окончании работы.
Иногда (например, в ноутбуках Apple) вентилятор начинает набирать обороты только когда температура уже превысит 60-70°. Такие настройки берегут ваши уши и вентилятор, а вовсе не процессор. Именно поэтому на любом MacBook я первым делом устанавливаю Macs Fan Control и рассказываю владельцу о полезности этой утилиты. Она позволяет наращивать обороты вентилятора непосредственно по мере роста температуры процессора. В итоге даже температура при максимальной нагрузке не превышает 80°, хотя при стандартных настройках она приближается к 90.
Если же в покое температура процессора выше 55°, при загрузке процессора менее чем на 30% (YouTube) температура выше 65°, а при нагрузках от 80 до 100% легко уходит за 80, а главное — не спешит падать при прекращении нагрузки — то скорее всего, система охлаждения процессора не справляется и ей необходима профилактика, а значит, переходим к пункту 3.3.
3.3 Система охлаждения. Условия труда процессора.
Как мы уже говорили выше, регулярная работа при температуре свыше 80° сокращает срок службы процессора (да и других близко расположенных к нему компонентов). Самый тяжёлый на моей памяти случай — это мощный и компактный игровой ноутбук Razer — внешне клон Макбука, но мощнее и на Windows. Из-за мощных процессора и видеочипа, а также весьма компактной, почти без запаса производительности, системы охлаждения, он и без того довольно горячий, а после нескольких лет без профилактики... текстолит материнской платы под видеочипом прогорел насквозь, до дыр!! Разумеется, такая плата ремонту уже не подлежит. Поэтому каждые год-полтора вооружаемся отвёртками, термопастой (старая уже подсохла...), влажными салфетками (...и её надо стереть, а если затвердела — бензин в помощь!) и наконец, пылесосом или хотя бы жёсткой кисточкой. Если у вас системный блок — не забудьте про видеокарту! Снимите и разберите её систему охлаждения — ОНА ТОЖЕ нуждается в профилактике!
Очень часто на радиаторе изнутри (вентилятор же дует наружу) — не просто слой пыли, а кусок прессованного войлока, который напрочь блокирует поток воздуха. Иногда этот войлок ещё и маслянистый (это если за компьютером курят)! Если вентилятор разбирается — его можно заодно протереть внутри и смазать (силиконовая смазка с густотой 200-400 — идеальный вариант).
Если ваше рабочее место должно быть правильно освещено, обогрето (а летом охлаждено), и вентилировано, то рабочее место вашего процессора — охлаждено! В большинстве случаев — посредством свежей термопасты, радиатора и вентилятора (иногда — водяной помпы). Не забывайте об этом!
Заключение
И дома, и на работе, и уж тем более на высокоответственных вычислительных системах (военных, медицинских, производственных) время отклика программного обеспечения, а значит — и операционной системы, должно быть приемлемым и стабильным. И если на высокоответственных системах вычислительная мощность (как и система охлаждения) изначально закладывается с запасом (хотя даже это не всегда гарантирует должное быстродействие), то на домашних компьютерах, рабочих станциях, а также менее критичных к стабильной бесперебойной работе серверах важность обеспечения максимально возможного гарантированного быстродействия несомненна.