Что делает процессор когда ожидает ответа от жесткого диска
Вопрос от пользователя
Здравствуйте.
Ни с того ни с сего начал тормозить мой ноутбук — на нем не перестает гореть лампочка жесткого диска. Тормозит, может зависнуть на продолжительное время, потом на несколько секунд оживает, и затем снова.
Если открывать в такой момент какую-нибудь программу или игру — то всё очень медленно работает, можно не дождаться открытия.
Отформатировал HDD полностью и переустановил Windows — не помогло (кстати, установка шла очень долго). Проверил компьютер Dr.Web Cureit (+ Касперским) — также не помогло. Температура жесткого диска 30-35 градусов.
А я все чаще замечаю, что мой винчестер кто-то подменил.
На самом деле медленная работа жесткого диска — не такая уж и редкость, и далеко не всегда просто поставить "диагноз". Причины могут быть, как аппаратными (например, при повреждении жесткого диска), так и программными (скажем, тот же uTorrent может грузить диск хешированием).
В статье постараюсь указать, как найти и устранить причину (самые популярные из них разберу 👌).
Итак.
Поиск причин тормозов и их устранение
❹ Режим работы диска — PIO/DMA. Режим AHCI
Если у вас довольно старый компьютер — то Вы можете столкнуться с тем, что Windows (из-за каких-то ошибок) перевела жесткий диск из режима работы DMA (позволяющим работать напрямую с ОЗУ) в старый PIO — из-за чего все действия выполняются через ЦП. В результате — скорость работы падает, и падает очень существенно!
Как можно узнать, в каком режиме работает диск:
-
открыть диспетчер устройств (нажать Win+R , и ввести в строку "открыть" devmgmt.msc );
Как открыть диспетчер устройств
Также обязательно обратите внимание на другую вещь — Advanced Host Controller Interface — AHCI. Если у вас выключен этот режим в BIOS ( а выключить, например, могли вы сами, при проверке диска, скажем, т.к. часть старых утилит отказывается работать в этом режиме ) — то диск будет сильно тормозить.
Чтобы проверить всё ли в порядке — зайдите в BIOS, дальше, обычно, нужно открыть вкладку Configuration . Ссылки, приведенные ниже, вам в помощь.
ACHI режим включен // БИОС ноутбука
📌 И еще один момент
При установке Windows, обычно драйвера SATA AHCI она устанавливает автоматически (по крайней мере современные ОС). Во многих случаях — это, конечно, хорошо, но в некоторых — диск ведет себя нестабильно. Здесь посыл простой — узнаете производителя материнской платы и скачайте драйвера SATA AHCI с офиц. сайта, и переустановите их!
📌 В помощь!
Как узнать характеристики ПК (в том числе производителя материнской платы).
📌 Если не можете найти драйвера: можно воспользоваться программами для авто-обновления драйверов (рекомендую Driver Booster - первая в списке).
Driver Booster - установка SATA AHCI драйверов
В некоторых случаях, драйвера можно попытаться обновить через диспетчер устройств : для этого просто раскройте вкладку "Контроллеры IDE ATA/ATAPI" , затем щелкните правой кнопкой мышки по ". SATA AHCI. ", в контекстном меню выберите "Обновить драйверы. ", и следуйте указаниям мастера.
Диспетчер устройств - обновление драйвера SATA ACHI
📌 Важно!
Для мат. плат на чипах Intel — обязательно установите драйвер "The Intel(R) Rapid Storage Technology". Обычно он идет в комплекте на диске к вашему ноутбуку/ПК (также есть на сайте производителя). И также его найдет Driver Booster (скрин выше).
❼ Отключение индексирования диска
Довольно сильно нагружать диск может индексирование (спец. штука в новых Windows, облегчающая поиск файлов). На деле же, используют постоянно поиск файлов очень небольшая часть пользователей, а потому и индексирование, в принципе, им ненужно!
Чтобы ее отключить: достаточно зайти в "Этот компьютер" ("Мой компьютер") и перейти в свойства нужного диска.
Этот компьютер - свойства диска "D"
Далее во вкладке "Общие" снимите галочку с "Разрешить индексировать содержимое файлов на этом диске в дополнение к свойствам файла" внизу окна. Сохраните настройки. 👇
Отключение индексирования диска
Примечание: в Windows есть несколько системных сервисов, которые также могут запустить индексирование. Речь идет о Windows Search и Superfetch . Цель их работы — ускорить ОС, но часто получается наоборот. Если есть проблема с HDD — рекомендую попробовать их отключить. Как это делается, 📌можете узнать из этой статьи.
PS
Напоследок : если вышеперечисленное не помогло, попробуйте установить другую версию Windows (только не различные сборники — установите лицензию), поменять/обновить драйвера, проверить свою ОС на вирусы.
Возможно, это слишком банальные советы (которые и так многие выполняют, прежде чем искать совета на блогах и форумах типа моего) , и тем не менее, в некоторых случаях — причина кроется именно в них.
Windows 7 постоянно что-то делает с диском. Постоянно горит светодиод обращения к HDD, даже в простое. Почему?
Загрузка 6-тиядерного процессора 1-2%, озу не выше 50% из 3.25 Гб и комп тормозит. Проводник открывется несколько секунд, браузер вообще может минуту открываться.
Это беда в вин7 не только у меня.
1)Почему винда постоянно нагружает диск?
2)Как это проверить?
3)Как это пролечить?
"Беспричинное" обращение к жесткому диску
Эксплуатируется 64-разрядная Win 7. После подключения "облака" началось непрерывное обращение к.
При обращении к диску C: "отказано в доступе к локальному диску с"
Намедни создал гостевую учетную запись на своём компе ну и запретил для учетной записи гостя.
Постоянное требование перезагрузки
Windows 7 при запуске требует перезагрузиться,при каждом включении. Как решить эту проблему?
Постоянное подвисание W7ultimat
Очень прошу помочь. Есть моноблок Lenovo ideacentre A700. Купил несколько дней назад. Win7 home.
закачек нет. фрагментацию/дефрагментацию не запускал. торентов и подобных клиенты не запущены.
Диск физически один. Разбит на несколько логических.
Откройте монитор ресурсов и посмотрите на вкладке "диск", что его загружает
Щя обращение к диску немного успокоилось, но первый полчаса невозможно работать. Кликаешь по проводнику - несколько секнд бублик..потом прорисовнка контура окна, опять зависание на несколько секнд, прорисовка внетрунних границ окна, опять висим.. прорисовка текста. проводник открывается еле еле.
Я понимаю, что возможно в фоне винда чото индексирует или фрагментирует. но мля - пусть это будет в фоне. Если пользователь запустил прогу - открой окошко проги, потом индексируй. Или вообще не индексируй. Как-то это в винде можно пролечить?
индексирование файлов отключите в свойствах дисков, кроме системного.
или службу индексирования отключите
Спасибо, помогло, но всё равно пилит диск комп. ЗАпуск винды стад по быстрее. тяжёлое ПО запускается долго.
В процессах яндексДиск при старте долго пилит. Его не могу отключить.
У меня 1 физический диск, c двумя партициями. Думаю, что если бы винда была на отдельном физическом диске, комп работал бы пошустрее. Думаю купить SSD, на него поставить винду, должна быть прибавка к скорости.
Удалите его из автозагрузки. Скачайте и установите Яндекс-Диск 3.0. Эта версия не так грузит систему, но в автозагрузке он всё равно не нужен.
C Яндекс.Диском можно работать в двух режимах:
в режиме онлайн, НЕ устанавливая программу Яндекс.Диск на своем компьютере;
установить программу Яндекс.Диск на своем компьютере и тем самым получить больше удобства для записи своих файлов на Яндекс.диск (если файл больше 2 Гб, то для его загрузки стоит установить программу Яндекс.Диск, ибо браузеры не работают с такими большими файлами)
Здравствуйте! Вот у меня бюджетный процессор Intel Celeron G3930 и жёсткий диск (достаточно старый – 12 лет) на 7200 оборотов в минуту. Комп постоянно виснет. Скажите, пожалуйста, если процессор слабый, то зависит ли от него прямо жёсткий диск? Постоянно долго запускаются программы и горит светодиод непрерываясь на системнике. Или здесь дело в самом жёстком диске? Но ошибок в нём вообще не обнаружено никаких. И другой вопрос: Celeron и Windows 10 вообще в практике совместимы или нет? Заранее большое спасибо! :)
В диспетчере задач нагрузка на ЦП – в среднем 15-45 (максимум бывает редко 50-60) колеблется, HDD – при открытии другой вкладки сразу 99-100%. Вроде бы всё ясно, но программы показывают, что ошибок нет. Путаница.
Ещё выскакивали несколько раз ошибки о жёстком диске во время загрузки ОС. И он достаточно маленький: 120 ГБ.
Сделал оценку производительности компьютера.
идет обмен информацией. процессор считывает данные в оперативную память и потом с ними работает. если диск гомно - считывание идет медленно. считывание всега на много десятков медленнее обработки информации процессором, по этому купи себе ССД и будет тебе счастье!
VeX Оракул (79451) запусти тест виндовс и увидишь
Не зависит.
Скорее всего, оперативки мало - от этого и обращения к жесткому диску (файлу подкачки), и затупы.
Ярослав Искусственный Интеллект (107772) Да вроде бы да. 4ГБ ОЗУ сейчас хватает разве что мобильным телефонам.
Я тут вспомнил: у меня несколько раз во время загрузки ОС выскакивали окно ошибки. По коду я узнал, что эта ошибка означает проблемы с жёстким диском как раз-таки.
Читал жалобы пользователей на WIN10. На ноутбуках обновления ставятся по 1-2 часа. Полагаю у вас что то подобное. Официально запретить обновление нет возможности, и на относительно слабые ПК типо вашего поставьте WIN7 или 8
также на работоспособность и скорость жесткого диска влияет его состояние.. диски со временем портятся и ломаются что может повлечь появления бэд секторов и увеличение длительности обращения. и вцелом замедление работы с данным диском
Алексей Кузнецов Мыслитель (6095) По твоему описанию виноват жесткий, проц хоть и слабенький но для офисника вполне норм. Да и в том же диспетчере задач посмотри нагрузку на проц и на жесткий диск
Жесткий диск может и не зависит, а вот система может легко виснуть из-за слабого процессора, если он под все 100 нагружен оказывается.
Eazy-L Просветленный (26365) Если он по интерфейсу SATA1 работает, да ещё в режиме IDE, то это не ошибки. Это чисто технические ограничения.
Зависит. Чем старше диск (HDD), тем выше нагрузка на проц и оперативку. Плюс сам диск, от того что постоянно забит выполнением задач на загрузку и выгрузку изнашивается еще быстрей. Выход Ставьте ССД, но эффект лучше на i7 и тп
Купите SSD диск на 120 Гб и установите на него ОС. Компьютер заживет новой жизнью. Проверенно на личном опыте.
Ну может вирусы какие? Если ошибок ни каких, то значится диск в порядке, быть может он ещё 100 лет проработает!
Не зависит, ЖД старый и за ним надо "ухаживать" - делать дефрагментацию, очистку от не нужных файлов, следить чтоб не перегревался (не более 45 град), но лучше купить новый диск - сейчас SSD хороший на 120гиг стоит в районе 2500 руб установишь на него виндовс и гарантировано не будет ни зависаний ни тормозов.
На такую помойку ставить W10, это как на горбатый Запорожец пихать мотор от Мерина. И потом удивляться, почему не едет.
Чем новее винда - тем выше требования к железу.
Загрузка винта зависит в первую очередь от объёма оперативки. Чем меньше оперы - тем больше ось дёргает винт.
А если ещё учесть загрузку антивирусом.
Если проблемы с загрузкой оси, хотя при проверке блина ошибок нет - я бы проверил бп.
Или подкинул заведомо исправный и нужной мощности.
Бп столько же лет, как винту, наверное.
Ну, и скорость чтения-записи на сегодня у этого винта уже маловаты - имеет смысл подумать об установке оси на ссд, даже не большой по объёму.
Андрей Куликов Оракул (52128) О-очень странная картинка. На столе производительность видео почти в 2 раза ниже, чем в играх. И потом, я говорил не о скорости работы подсистемы памяти - а об объёме оперативки. Если для системы мало в опере места - идёт выгрузка из оперы на винт. Т. е. - как только что-то надо для работы, библиотеки ддл, к примеру, идёт обращение к винту - со всеми вытекающими.
операционная система использует файл подкачки на жёстком диске и в Вашем случае, похоже-что не может работать без файла подкачки; в такой конфигурации недостаёт оперативной памяти; установка менее требовательной к оборудованию операционной системы взамен установленной может быть более щадяща к к её жесткому диску; для удовлетворения любопытства и общего развития можно попробовать установить подходящую Linux операционную систему, но и книгу по описанию Linux тоже лучше изучить в этом случае
Всё есть. Посоветовался со знакомым техником, который компьютерами занимается уже 25 лет – сказал, что причина в жёстком диске. Куплю SSD.
Система постоянно «тупит»
Если оперативной памяти мало, комп записывает часть данных в так называемый файл подкачки (swap-file) или страничку обмена (pagefile.sys). И, естественно, потом прочитывает эти данные обратно.
Ну, примерно то же делаем и мы, когда в памяти всё не удерживаем, то часть пишем на бумажку. И потом снова к этой же бумажке, в нужной ситуации возвращаемся. Но бывает проблема, что бумажка лежит в дальнем кармане, - пока найдём этот карман, пока достанем.. . -влияет это на скорость нашей работы?
Аналогично и у компа.
Поэтому при малом объёме оперативной памяти скорость работы винчестера (жёсткого диска, харда) будет существенно влиять на производительность или "скорость работы" компьютера.
Нет. От него зависит скорость загрузки компа, запуска программ иногда игр, скорость копирования файлов. Но от более быстрого жесткого общая производительность компа практически не увеличится. Например фотошоп или зд макс рендерить быстрей не станет. Но, например, использование SSD делает использование компа более комфортным, т. к. программы запускаются мгновенно, большие файлы тоже открываются очень быстро. Конечно это мелочи, но после использования компа с SSD возвращаться на традиционные диски совсем не хочется.
от количества оборотов винчестера зависит скорость компа - но это не единственный фактор.
Скорость у винтов бывает 5400, 7200, 10 000
Почитал тут ответы некоторых пользователей аж смеяться хочется.» От жесткого диска не зависит скорость компьютера» А все здесь некоторые ответившие до меня хоть какое-то представление имеете что такое компьютер? И как вообще понять что такое скорость ПК и от чего она зависит? В ПК присутствует 5 основных компонентов которые отвечают непосредственно за быстродействие системы в целом, это Материнская плата, ЦП, ОЗУ, видеокарта и жесткий диск. Кто нибудь слышал такое выражение, что ПК работает со скоростью самой медленной детали в нём? Особенно данное выражение касается жесткого диска, так как щас принято называть комплектующие «Девайс» установленный в системном блоке общается с жестким диском и этот обмен данными между ними будет происходить со скоростью самой медленной детали, а это как раз будет HDD.И имея на борту комплектующие обновленные по последнему слову техники вы никогда не сможете ощутить всё прелесть быстрого реагирования и выполнения команд, если у вас медленная дисковая система.
Всегда известно, что операции с диском медленны, и мы знаем причины, по которым они медленны. Итак, вот почему мы должны ждать ввода-вывода или почему существует такая вещь, как IOWait и т. Д.?
Я имею в виду, что я заметил, что когда вы выполняете некоторые задачи ввода-вывода в фоновом режиме, ваш компьютер в основном становится намного медленнее, я особенно заметил, что при использовании Linux, если вы делаете несколько дольше, я /O, ОС становится практически непригодной до тех пор, пока они не будут завершены.
В самом деле, я также нашел эту тему в статье, есть фрагмент:
Ожидание ввода-вывода составляет 12,1%. Этот сервер имеет 8 ядер (через cat /proc /cpuinfo). Это очень близко к (1/8 ядра = 0,125)
Итак, в основном это означает, что он замедляет работу компьютера LOT, почему? Я имею в виду «ОК», теперь нормальный компьютер имеет по меньшей мере 2 ядра, иногда 4, или иногда они имеют больше из-за гиперпотока или что-то в этом роде. Но теперь вопрос в том, почему на самом деле ЦП должен оставаться там, практически ничего не делая, кроме как только ожидая ввода-вывода? Я имею в виду базовую идею или архитектуру управления процессами, теперь я не знаю, отвечает ли это за ОС, или это связано с аппаратной частью, но должно быть возможно, чтобы процессор ожидал или регулярно проверяйте, фактически выполняя множество других задач и только возвращайся к процессу ввода-вывода, когда он будет готов. В самом деле, если это такая сложная задача, и процессор должен будет ждать, почему это не управляется аппаратным обеспечением более эффективно? Например, может быть какой-то мини-процессор, который будет просто ждать его и доставлять небольшую часть данных на реальный процессор сразу после его возврата, и поэтому процесс будет повторяться, и мы не будем иметь практически посвятить целое ядро процессора для процесса копирования данных . Или я был бы тем, кто должен изобретать подобные вещи и получить для этого более благородную премию? : S
Теперь все в порядке, я действительно ставил его сейчас с точки зрения наблюдателей, и я действительно не зашел так глубоко в эту тему, но я действительно не понимаю, почему процессор должен работать со скоростью жесткого диска, тогда как он может просто сделать что-то еще и вернуться на жесткий диск, как только он будет готов. Идея заключается не в том, чтобы ускорить приложение, которому нужна эта операция ввода-вывода, или процесс копирования, или что-то еще, но идея состоит в том, чтобы просто минимально повлиять на потребление ЦП при выполнении этой операции, чтобы ОС могла использовать его для других процессов и пользователя не придется испытывать общее отставание компьютера при выполнении некоторых операций копирования .
Схемы ввода-вывода, которые вы описываете, используются в настоящее время на компьютерах.
почему CPU на самом деле должен оставаться там, практически не делая ничего, кроме ожидания ожидания ввода-вывода?
Это самый простой способ ввода-вывода: запрограммированный ввод-вывод . Многие встроенные системы и микропроцессоры с низким /конечным состоянием имеют только одну инструкцию ввода и одну команду вывода. Процессор должен выполнить явную последовательность инструкций для каждого прочитанного или записанного символа.
, но должно быть возможно, чтобы процессор ожидал или регулярно проверял, фактически выполняя множество других задач и возвращался только к процессу ввода-вывода, когда он готов.
Многие персональные компьютеры имеют другие схемы ввода-вывода. Вместо того, чтобы ждать в замкнутом контуре для готовности устройства ( ожидание ожидания ), ЦП запустит устройство ввода-вывода, попросив его создать прерывание, когда это будет сделано ( O ).
Несмотря на то, что ввод-вывод с прерыванием является шагом вперед (по сравнению с запрограммированным вводом-выводом), для прерывания передачи каждого символа требуется прерывание, и это дорого .
Как, например, может быть какой-то мини-процессор, который будет просто ждать его и доставлять небольшую часть данных на реальный процессор сразу же после его возврата к процессу, и поэтому процесс будет повторяться, и мы не будем практически не нужно выделять целое ядро процессора для процесса копирования данных .
Решение многих проблем заключается в том, чтобы кто-то другой выполнял эту работу! : -)
Контроллер /чип DMA (прямой доступ к памяти) позволяет запрограммировать ввод-вывод, но кто-то еще это сделает!
С DMA CPU должен только инициализировать несколько регистров, и он может свободно делать что-то еще, пока передача не будет завершена (и возникает прерывание).
Даже DMA не является полностью бесплатным: высокоскоростные устройства могут использовать множество циклов шины для ссылок на память и ссылок на устройства ( кражи цикла ), а процессор должен ждать (у DMA-чипа всегда есть более высокая шина приоритет).
Ожидание ввода-вывода составляет 12,1%. Этот сервер имеет 8 ядер (через cat /proc /cpuinfo). Это очень близко к (1/8 ядра = 0,125)
Ну, это не странно: система (mySQL) должна извлекать все строки перед манипуляцией данными, и нет других действий.
Здесь нет проблемы с компьютерной архитектурой /ОС. Это как раз такой пример.
В лучшем случае это может быть проблема настройки RDBMS или проблема с SQL-запросом (отсутствующий индекс, плохой план запроса, плохой запрос . )
Можно написать асинхронный ввод-вывод, где вы укажете ОС на отправку чтения /записи на диск, а затем перейдите к другому, а затем проверьте, выполнено ли это. Это далеко не новое. Более старый метод использует другой поток для ввода-вывода.
Однако это требует, чтобы у вас было что-то делать во время выполнения этого чтения, и вам не удастся коснуться буфера, который вы передали для результата.
Также гораздо проще программировать, когда вы предполагаете, что все блокирует IO.
Когда вы вызываете функцию чтения блокировки, вы знаете , она не вернется, пока что-то не будет прочитано и сразу после того, как вы сможете начать ее обрабатывать.
Типичный цикл чтения является хорошим примером
В противном случае вам нужно сохранить текущее состояние функции (обычно в виде обратного вызова + указатель userData) и передать его + идентификатор операции чтения обратно в select() . Там, если операция завершена, она сопоставляет идентификатор операции чтения с указателем обратного вызова + данных и вызывает обратный вызов с информацией о завершенной операции.
Однако синхронный IO против асинхронного ввода-вывода не является причиной общего замедления. Обмен страницами также является операцией, которая должна ждать IO. Планировщик просто переключится на другую программу, которая не ожидает ввода IO, если она есть ( Ожидание ввода-вывода, когда процессор неактивен и ожидается операция ввода-вывода ).
Реальная проблема заключается в том, что как жесткий диск, так и процессор используют один и тот же канал для связи с ОЗУ ; шина памяти. И если вы не используете RAID, то для получения данных требуется только один диск. Это ухудшается, если вы также используете приложение, интенсивно использующее графику, тогда взаимодействие с GPU также будет мешать.
Другими словами, реальное узкое место, скорее всего, связано с оборудованием, а не с программным обеспечением.
Имейте веру в то, что обработка других вещей в ожидании ввода-вывода довольно упрощена, насколько это возможно. Когда вы видите, что ваш компьютер ожидает ввода-вывода всего 12,1% времени, это означает, что он фактически выполняет много других вещей параллельно. Если на самом деле пришлось ждать ввода-вывода, не делая ничего другого, он будет ждать 99,9% времени, так как медленный ввод-вывод.
Единственный способ сделать больше вещей параллельно - предсказать, что пользователь может захотеть сделать дальше, и мы пока не очень хорошо разбираемся в этом прогнозе. Таким образом, если пользователь выполняет операцию, которая требует, чтобы определенный сектор считывался с жесткого диска, и этот сектор еще не находится в кеше, тогда ОС запустит очень длительный процесс чтения этого сектора, и это попытается выяснить, есть ли что-то еще, что нужно сделать в среднее время. Если есть другой пользователь, который хочет другой сектор, он также будет ставить этот запрос в очередь. В какой-то момент все запросы были поставлены в очередь, и мы ничего не можем сделать, но дождитесь, пока первая из них будет удовлетворена, прежде чем мы сможем продолжить. Это просто факт жизни.
Нахождение решения проблемы того, как делать другие вещи при выполнении операций ввода-вывода, было бы замечательным подвигом, поскольку в то же время оно было бы решением проблемы того, как делать другие вещи в режиме ожидания. Удивительный подвиг, который был бы, потому что это означало бы, что вы найдете работу для своего компьютера, хотя у него его нет.
Видите ли, это то, что происходит: ваш компьютер просто сидит 99,99% времени, ничего не делая. Когда вы даете ему что-то делать, оно идет и делает это. Если при этом он должен ждать ввода-вывода, он сидит там и ждет. Если у него есть что-то еще делать, делая операции ввода-вывода, он делает это тоже. Но если у него нет ничего другого, кроме ввода-вывода, тогда он должен сидеть и ждать завершения ввода-вывода. Нет никакого способа обойти это, кроме путем регистрации в SETI @ Home.
OS (если только это не очень сложная система с низким уровнем или что-то подобное экзотична) уже позаботится об этом: если ваше приложение должно ждать ввода-вывода, оно обычно блокируется на этом вводе-выводе и другом потоке или приложение станет активным. Планировщик решает, какой из них.
Только если есть no другой поток или приложение, которое может работать, что вы на самом деле накапливаете время ожидания. В цитированной вами статье ( благодаря @manlio для ссылки), то есть: у вас 12,1% ожидания против 87,4% бездействия, что означает, что одно ядро ждет завершения ввода-вывода, а остальное ничего не делает. Дайте этой системе что-то делать, предпочтительнее несколько somethings, и процент ожидания должен упасть.
Одной из главных целей сегодняшнего проектирования приложений является обеспечение того, что даже если работает только одно приложение, и даже если это одно приложение в какой-то момент ожидает ввода-вывода, приложение все равно может продолжить работу с другим фрагментом работы. Темы - это один из подходов к этому, неблокирующий ввод-вывод другой, но он очень зависит от того, какую работу вы выполняете, действительно ли вы можете сделать что-то без ожидаемых данных.
при использовании Linux, если вы выполняете более длительные задачи ввода-вывода, ОС становится практически непригодной до тех пор, пока они не будут завершены.
Это обычно указывает на некоторую ситуацию, связанную с I /O. Я смею сказать, что система не замедляется, потому что она не может обеспечить достаточную обработку процессора. Скорее всего, он медленный, потому что многие вещи зависят от данных с жесткого диска, который занят в то время. Это могут быть приложения, которые вы хотите запустить, но которые должны загружать их исполняемые файлы, файлы библиотек, значки, шрифты и другие ресурсы. Это могут быть приложения, которые у вас уже запущены, но которые поменяли часть их памяти и теперь нуждаются в том, чтобы сменить их снова, чтобы продолжить. Возможно, это какой-то демон, который по той или иной причине считает, что он должен не только писать строку в файл журнала, но и фактически скрывать этот файл журнала перед ответом на какой-либо запрос.
Вы можете использовать такие инструменты, как iotop , чтобы узнать, как распределена емкость ввода-вывода для процессов, и ionice , чтобы установить приоритеты ввода-вывода для процессов. Например, на настольном компьютере вы можете классифицировать всю обработку объемных данных в класс планирования idle , так что в тот момент, когда требуется какое-то интерактивное приложение /O, массовая обработка приостанавливается до тех пор, пока не будет выполнено интерактивное приложение.
Это зависит от вашего кода приложения. Я предполагаю, что ваш код работает в Linux.
Вы можете использовать multi- threading (например, POSIX pthreads ), чтобы потоки связанных с вычислением выполняли некоторые вычисления, в то время как другие потоки, связанные с IO, выполняли IO (и ожидали Это). Вы даже можете запустить приложение несколько процессов межпроцессное общение (IPC), см. pipe (7) , fifo (7) , socket (7) , unix (7) , shm_overview (7) , sem_overview (7) , mmap (2) , eventfd (2) и читайте Расширенное программирование Linux и т. д. . .
Вы можете использовать неблокирующий IO , например. pass O_NOBLOCK до открыть (2) и т. д. и т. д. . ; то вам нужно опрос (2) и /или используйте SIGIO signal (7) . и обработать ошибку EWOULDBLOCK от читать (2) и т. д.
Вы можете использовать асинхронный IO POSIX, см. aio (7)
Для доступа к файлам вы можете дать подсказки кеша страниц , например. с madvise (2) после mmap (2) и posix_fadvise (2) ; см. также конкретный Linux readahead (2)
Но в конечном итоге вы достигнете некоторого узкого места в оборудовании (шина, оперативная память и т. д.). См. Также ionice (1)
добавить другую точку зрения, чем другие, может быть спорным:
Типичная проблема операционных систем Linux. Отставание специально (поиск «отставания мыши Linux»). У Windows нет этой проблемы. У меня две загрузки Windows 7 и Linux Mint. Даже при интенсивной работе с дисками в Windows Windows чувствует сглаживание, мышь движется нормально. В Linux наоборот, он не чувствует, что сглаживание и мышь иногда отстают даже во время обычного просмотра в Интернете.
Вероятно, это связано с другой философией и историей этих двух систем. Windows от начала разработана для обычных пользователей, ее принципиально графических операционных систем. А для пользователей Windows негласное поведение системы и перемещение мыши - сигнал о том, что что-то не так. Поэтому программисты Microsoft усердно работали над проектированием всей системы, чтобы минимизировать случаи, когда системы чувствуют себя медленно. В противоположной Linux не изначально графическая система, рабочий стол - это только стороннее дополнение. И Linux в основном предназначен для хакеров с использованием командной строки. Получите философию. Linux просто не предназначен для плавного поведения в виду, чувства здесь неважны.
Примечание. Я не говорю, что Windows лучше, чем Linux, я говорю, что они просто имеют общую общую философию, которая в сложной среде может привести к разному поведению /ощущению этих систем на высоком уровне.
❻ Чистка жесткого диска от мусора. Дефрагментация
Каким бы аккуратным не был пользователь — со временем на жестком диске скапливается большое количество "мусора": различных временных файлов, ошибочных ярлыков, кэша браузеров, "хвосты" от старых удаленных программ и игр, и т.д. Всё это сказывается и на производительности Windows. Время от времени это "добро" необходимо чистить.
📌 В помощь!
Лучшие утилиты для очистки компьютера Вы можете найти в этой статье — см. подборку
Руководство по чистке компьютера/ноутбука, чтобы ускорить его работу — см. инструкцию
📌 Пару слов о дефрагментации (объясняю "топорно". )
Если при открытии файлов с диска Ваша Windows ведет себя как-то медленно (прим.: медленнее, чем обычно), то виной тому может быть фрагментация (разброс "кусочков" вашего файла на диске, которые нужно все собрать и прочитать, прежде чем файл будет показан вам. Чем сильнее фрагментация — тем выше разброс, и тем больше времени нужно на поиск всех "кусочков")
Дефрагментация — это процесс оптимизации хранения информации на диске, необходимый, чтобы обеспечить непрерывную последовательность кластеров (чтобы все "кусочки" файла были в одном месте).
В общем-то, если отступить от непонятных терминов, то после дефрагментации ваш диск начинает работать быстрее: ускоряется чтение, запись файлов. Благодаря этому, ваши программы становятся отзывчивее, становится приятнее работать за таким ПК!
📌 Более подробно о дефрагментации и программах для ее проведения, здесь: ссылка на инструкцию
❷ Проверка диска на ошибки, бэд-блоки. Показания SMART
Темы эти достаточно обширны и подробно в этой статье разбирать не буду (благо, что есть отдельные инструкции, здесь приведу ссылки на них 👇).
📌 Как проверить жесткий диск на ошибки — см. инструкцию
📌 Как проверить HDD на бэд-блоки — см. инструкцию по шагам
Многие пользователи часто пренебрегают проверкой мех. составляющей диска, и между тем зря. Если диск очень сильно тормозит — то рекомендую в обязательном порядке проверить, все ли с ним в порядке.
Во многих случаях проблему удается выявить почти сразу же, как только будут просмотрены показания S.M.A.R.T. (система само-диагностики жесткого диска).
📌 Кстати, показания S.M.A.R.T. можно узнать и в более "простых" утилитах, нежели Виктория (о которой идет речь в статье по ссылкам выше). Например, в той же утилите CrystalDiskInfo ( о ней я рассказывал в этой статье ).
Чтобы узнать S.M.A.R.T. и оценить состояние диска — вам нужно всего лишь запустить утилиту CrystalDiskInfo. Далее в течении нескольких секунд утилита самостоятельно оценит ваш диск и вынесет вердикт — пример на скрине ниже (и хороший, и плохой). 👇
CrystalDiskInfo - анализ дисков
❺ Анализ температуры жесткого диска
Рекомендую также обратить внимание на температуру жесткого диска (особенно, если у вас их несколько, или в помещении, в котором стоит ПК, жарко).
Вообще, оптимальной температурой работы жесткого диска, считается примерно 30÷40°C. Когда температура выходит за эти пределы - обратите пристальное внимание на систему охлаждения (вообще, многие жесткие диски могут относительно спокойно работать и при 50°C (градусов Цельсия) , но срок службы их значительно сокращается!).
📌 В помощь!
Температура жесткого диска: подскажите, что делать, HDD нагревается до 49-54°C (+ как снизить температуру HDD).
Чтобы узнать температуру HDD, воспользуйтесь какой-нибудь утилитой для определения характеристик компьютера. Например, я обычно использую CrystalDiskInfo, Aida64, Speccy (ссылка на статью с утилитами ниже).
Speccy - температура HDD
Как снизить температуру:
Подставка для ноутбука
❶ Анализ тормозов HDD
В ряде случаев можно практически точно определить, где искать причину медленной работы диска. Поэтому, самое первое с чего хочу начать — это с наблюдения и анализа . Чуть ниже приведу ряд вопросов, из которых станет ясно, куда я клоню:
1) жесткий диск при тормозах издает скрежет, щелки, слышны-ли стуки? Нет ли никаких подозрительных звуков, которых раньше не было (здесь должен предупредить, что многие исправные жесткие диски издают "легкий" скрежет. Я же говорю здесь о тех звуках, которых раньше при работе не возникало) ?
Появившиеся подобные звуки могут указывать на проблему с механикой диска. В этом случае, самый дешевый вариант — заменить диск на новый (📌 как выбрать диск);
2) случаются-ли у вас что файлы становятся "битыми", появляются-ли ошибки о целостности файлов при их открытии?
Долго ли происходит процесс копирования, чтения файлов? Долго-ли загружается Windows? Положительные ответы на эти вопросы могут указывать на появление бэд-блоков (можно попытаться вылечить, об этом ниже) , на то, что диск уронили (ударили), на ошибки файловой системы;
3) пробовали-ли Вы запустить 📌 диспетчер задач и посмотреть, нет ли там программ, которые "насилуют" ваш жесткий диск, нагружая его на 100% (например, это может быть uTorrent)? Чтобы вызвать диспетчер задач - нажмите кнопки Ctrl+Shift+Esc .
Диспетчер задач — загрузка диска 4%
Бывает такое, что диспетчер задач показывает нагрузку в 50-100%, а программы, которые это делают — не отображены. В этом случае попробуйте использовать сторонний монитор, например, 📌 от Advanced SystemCare.
Монитор производительности - что грузит диск // Advanced SystemCare 10
4) насколько сильны у вас тормоза: это просто легкая задержка на 0,5÷1 сек. в игре, как бы короткое зависание (раз в 15÷20 мин.), или они настолько сильные, что вы ту самую игру даже запустить не можете — ждете по 3÷4 мин. пока она загрузится и появится первое меню? Просто, в первом случае — дело часто в настройках электропитания, во втором — спектр проблем гораздо шире;
5) не было ли аварийного выключения электричества? Дело в том, что после такого "резкого" выключения ПК (ноутбуки обычно спасает аккумуляторная батарея) — необходимо запустить утилиту chkdsk (об этом чуть ниже), и проверить диск на ошибки файловой системы (что, кстати, часто делает сама Windows).
❸ Режим питания диска. Электропитание
В этом пункте есть два момента. Первый — хорошо и плотно-ли вставлены шлейфы в гнезда жесткого диска? Бывает такое, что шлейфы не плотно сидят, из-за чего питание жесткого диска может быть нестабильным (это не есть хорошо).
И, второй момент, в настройках электропитания вашего компьютера (чаще всего этим грешат ноутбуки) — может быть поставлен экономный режим. Из-за чего, если к диску нет обращений некоторое время — он останавливается. Но потом, когда вы к нему обращаетесь — ему нужно время, и как результат у вас случается небольшое зависание на 0,5÷1,5 сек. Особенно, это заметно в играх, редакторах и пр. приложениях.
1) Итак, для начала откройте: 📌 Панель управления\Оборудование и звук\Электропитание
2) Далее передвиньте ползунок на "Высокая производительность" и нажмите на ссылку "настройка схемы электропитания" (пример на скрине ниже 👇).
Далее откройте ссылку "Изменить дополнительные параметры питания" (расположена в нижней части окна).
Изменить дополнительные параметры питания
Затем в списке доп. параметров раскройте вкладку "Жесткий диск/Отключать жесткий диск через" и выставите свое время. Чтобы жесткий диск не отключался вовсе, поставьте время - 0. После чего, сохраните настройки и перезагрузите ПК.
Через сколько времени отключать жесткий диск
Также обратите внимание еще на один момент. Часто производители ноутбуков ставят на свои устройства доп. софт, призванный, например, экономить заряд аккумуляторной батареи. А за счет чего? За счет яркости монитора, таймера гашения экрана, и т.д. Среди прочего, есть опции, которые в дополнении к Windows — помогают останавливать жесткий диск.
В общем-то, посыл простой — проверьте, нет ли у вас таких программ менеджеров и, хотя бы на время, попробуйте выставить производительность в них на максимум .
Питание - ноутбук LENOVO
Читайте также: