Zona disk read error outofmemoryerror

Многие пользователи ПК во время работы с какой-либо программой могут столкнуться с «вылетом» указанной программы, и появившимся сообщением «Out of memory». Возникшая проблема может иметь множество причин, начиная от банального недостатка памяти на пользовательском ПК, и заканчивая некорректной работой с памятью какой-либо программы.

Окно с сообщением об ошибке «Out of memory»

Причины появления дисфункции

Ошибка «Out of memory» (в переводе дословно «вне памяти», или «недостаточно памяти») обычно возникает при недостатке памяти на пользовательском компьютере. В частности же, в появлении данной ошибки «виновен» следующий набор факторов:

  • Недостаток памяти RAM на вашем ПК (рабочей памяти, планки которой установлены на материнской плате вашего компьютера). Если на вашем компьютере установлен всего 1 гигабайт памяти, вы будете встречаться с описываемой ошибкой довольно часто. Нормальным же ныне считается наличие на компьютере 4 гигабайт памяти и выше;
  • Недостаток места на жёстком диске .

Когда вашему компьютеру не хватает физической R.A.M. памяти, он заимствует часть места на жёстком диске, и создаёт так называемую «виртуальную память». Система временно хранит в такой виртуальной памяти ту часть данных, которая не помещается в памяти обычной. Такие данные обычно хранятся в файле « pagefile.sys », размер которого может увеличиваться или уменьшаться в зависимости от специфики работы вашей ОС. Если на диске будет недостаточно места, файл «pagefile.sys» не сможет расти, и пользователь получит ошибку «out of memory».

  • При одновременном запуске на ПК большого количества программ, каждая из которых бронирует часть памяти ПК под свои задачи;
  • При запуск большого количества вкладок браузера. Веб-навигаторы уровня «Firefox» или «Google Chrome» способны занимать от 500 мегабайт до 1 гигабайта памяти под свой функционал, при этом число открытых вкладок и соответствующей обслуживающей памяти может быть ограничено системой. Специалисты Майрософт называют такую проблему «the desktop heap limitation» — «ограничение кучи рабочего стола»);
  • Некорректная работа с памятью ряда программ (наиболее часто это игровые программы);
  • Не оптимальный размер файла подкачки, с которым работает система.

Обычно причиной возникновения проблемы является недостаток ОЗУ на компьютере пользователя

Как исправить ошибку «Out of memory»

Для решения указанной проблемы рекомендую сделать следующее:

  1. Перезагрузите ваш ПК, и запустите требуемую программу вновь. Возможно, что проблема имеет случайный характер, и более повторяться не будет;
  2. Перед запуском нужной программы закройте другие ненужные программы (браузер, музыкальный или видео плеер, текстовый или графический редактор, мессенджер и так далее);
  3. Если проблема возникает во время серфинга в сети, закройте всё множество вкладок вашего браузера (при наличии), оставив лишь одну или две.

Частой причиной проблемы является множество открытых вкладок в браузере пользователя

Альтернативным вариантом решения проблемы «Out of memory» является установка соответствующего фикса от Майкрософт. Или использование расширений или дополнений для браузера уровня «The Great Suspender» для «Google Chrome», хорошо работающего с ненужными вкладками браузера.

    Добавьте оперативной памяти на ваш ПК. Если у вас на компьютере установлено 1-2 гигабайта памяти, будет оптимальным довести её объём до 4 гигабайт (а для 64-битных Виндовс 7, 8 и 10 версии рекомендую 8 и более гигабайт);

Увеличьте количество памяти на вашем ПК

  • Убедитесь, что на вашем жёстком диске (или SSD) достаточно свободного места. При необходимости, освободите диск от ненужных файлов;
  • Используйте инструмент командной строки BCDEdit для изменения параметров загрузки системы. Если у вас на ПК установлена Виндовс 7 и более, запустите командную строку от имени администратора на Виндовс 7 и Виндовс 10, и в ней наберите:
  • bcdedit/set IncreaseUserVa 3072

    И нажмите на ввод, и перезагрузите ваш ПК. Функционал данной команды позволяет выделить пользовательским приложениям 3 гигабайта оперативной памяти для работы. В некоторых системах этого может быть слишком много, потому если после ввода данной команды система начала чаще сбоить, то введите в командной строке от имени администратора:

    bcdedit /set IncreaseUserVa 2560 — что позволит задействовать 2,5 гигабайта вместо ранее забронированных 3.

    Если ситуацию этим исправить не удалось, верните настройки на состояние по умолчанию:

    bcdedit /deletevalue IncreaseUserVa

      Увеличьте объём файла подкачки. Нажмите кнопку «Пуск», в строке поиска введите sysdm.cpl и нажмите ввод. В открывшемся окне настроек системы выберите «Дополнительно» — «Быстродействие» — «Параметры» — «Дополнительно» — «Виртуальная память» — «Изменить». Снимите галочку с опции автоматического размера, поставьте галочку на «Указать размер», и поставьте исходный размер в 8192, и максимальный в 8192. Затем выберите «Задать»;

    Установите нужный размер файла подкачки

  • Если ошибка возникает при использовании игровой программы, перейдите в её графические настройки, и выберите их минимальные значения;
  • Произведите правильную настройку «Java». Для решения проблем с игровой программой «Майнкрафт» перейдите в Панель управления Виндовс, найдите там «Java» и запустите данную среду исполнения. Нажмите на кнопку «View», затем дважды кликните на «Runtime Parametres». Введите туда –Xms256m – Xmx3072m (или больше). Xms – это минимальное выделение ОЗУ, Xmx – максимальное. Значение Xmx рекомендуют устанавливать на процентов 70-80% от общего объёма ОЗУ. Примените изменения, и перезагрузите ваш ПК.
  • Заключение

    Ошибка «Out of memory» может иметь множество причин, связанных как с физическим недостатком памяти на ПК, так и другими детерминантами, изложенными мной выше. Для решения проблемы советую закрыть ненужные программы (вкладки браузера) на вашем компьютере (тем самым разгрузив его память), а самым эффективным инструментом является установка дополнительной планки памяти на ПК, что в большинстве случаев поможет избавиться от ошибки «Out of memory» на вашем компьютере.

    Причины и способы лечения ошибки загрузки disk read error occurred

    Яндекс Диалог: начни новый чат прямо сейчас

    Экспресс-панель для Гугл Хром: быстрый доступ с доставкой на дом

    Автозаполнение в Гугл Хром: полезная опция или опасный функционал?

    Динозаврик Гугл Хром: поставь рекорд среди пользователей браузера

    Как в Гугл Хром открыть код страницы и почему это должен знать каждый?

    Если появление синего экрана смерти способно не на шутку встревожить, то что можно говорить о тех случаях, когда при включении компьютера появляется черный экран с одной или несколькими строчками на английском языке. Сегодня мы попробуем разобраться с одной из самых грозных и распространенных ошибок disk read error occurred press ctrl+alt+del to restart. Переводится она как «Не могу прочитать диск, нажмите ctrl+alt+del и перезагрузите компьютер».

    Причины disk read error occurred могут быть разными, но так или иначе они связаны либо с повреждением данных на диске, либо с повреждением самой магнитной поверхности диска, либо со шлейфом или иными аппаратными компонентами, что встречается намного реже. Ниже вы можете ознакомиться с основными методами лечения ошибки, но сначала давайте узнаем, что же может стать ее первичной причиной.

    • Некорректная установка второй операционной системы
    • Установка старой версии Windows поверх новой
    • Манипуляции с логическими разделами при наличии нестабильных секторов
    • Падение работающего ноутбука (повреждение механики)
    • Восстановление системы из образа на забитый под развязку раздел
    • Отключение работающего компьютера кнопкой питания
    • Ошибочное удаление загрузочной записи антивирусом
    • Повреждение загрузочной записи вирусом
    • Физический износ диска и наличие на нем множества бэд-секторов
    • Проблемы с контактами, шлейфом, контроллерами
    • Неисправности блока питания

    Итак, если вы столкнулись с ошибкой disk read error occurred, первым делом убедитесь в отсутствии аппаратных проблем. Зайдите в BIOS и посмотрите, определяется ли диск вообще. Если нет, проверьте контакты. Для верности можно попробовать подключить диск к рабочему компьютеру. Если диск не определяется BIOS или определяется неверно, данные на нем превратились в «кашу» – несите компьютер в сервисный центр, в этом случае лучше довериться специалистам.

    Часто появление ошибки disk read error occurred связано с частичным или полным разрушением MBR – загрузочной записи, расположенной в нулевом секторе диска и обеспечивающей опознание логических разделов. Если информация MBR корректна, управление передается разделу «Зарезервировано системой» и дальше – по цепочке системному разделу C. При обнаружении несоответствия выдаётся ошибка disk read error occurred или Reboot and selеct proper boot device. Впрочем, известны случаи, когда ошибка disk read error occurred появлялась при повреждении загрузочных файлов скрытого раздела «Зарезервировано системой».

    Проверка скрытого раздела

    Загрузитесь с диска Acronis Disk Director или аналогичной программы и для начала убедитесь, что раздел «Зарезервировано системой» помечен как активный (установлен флажок). Если такой отметки нет, кликните по разделу правой кнопкой мыши и выберите опцию «Пометить как активный».

    Заодно убедитесь, что необходимые для загрузки системы файл bootmgr и папка Boot находятся на месте. Если одного из этих элементов нет, скорее всего, причина ошибки в этом.

    Восстановление файлов скрытого раздела

    Для восстановления загрузочных файлов скрытого раздела вам понадобиться загрузочный образ с Windows 8.1. Загрузитесь с него, нажмите «Восстановление системы», «Диагностика», «Дополнительные параметры», «Командная строка».

    Чтобы определиться с буквами дисков, выполните команду notepad.exe. В открывшемся Блокноте выбираем «Файл», «Открыть», «Этот компьютер» и смотрим буквы разделов. В нашем примере скрытый раздел имеет букву C, раздел с Windows букву D, а загрузочный диск букву X.

    Восстановим файлы загрузки, выполнив команду bcdboot D:/Windows. Если ошибка была связана с повреждением файлов загрузки, проблема будет решена.

    Проверка файловой системы и восстановление загрузочной записи

    Ошибка disk read error occurred может быть вызвана повреждением файловой системы. Для анализа и исправления ошибок диска в командной строке загрузочной среды выполните команды chkdsk C: /r и chkdsk C: /f, а затем повторите то же для основного раздела с системой (раздел D).

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

    После этого выполняем поиск операционных систем и добавляем их в список меню загрузки:

    Прочие варианты

    Если вышеописанные способы не помогли, можно попробовать переустановить систему, предварительно удалив и основной системный и зарезервированный разделы. А еще лучше снять диск, подключить его к другому компьютеру и, скопировав всю ценную информацию, полностью отформатировать, а заодно выполнить проверку на наличие ошибок. После этого на чистый диск устанавливается система.

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

    Один мой коллега является адептом философии “дефолтных настроек”. Эта философия пропагандирует следующий подход: не пытайтесь менять environment под свои нужды, — просто научитесь пользоваться стандартным environment’ом.

    Несмотря на то что сам по себе этот подход довольно спорен, в нем есть свои плюсы. Умение решать задачи штатными средствами особенно выручает когда необходимо быстро продиагностировать какую-то проблему, а у вас под рукой нет настроенного environment’а. Например, вы временно работаете за другой машиной, или географически отдалены от вашего милого сердцу, прекрасно настроенного environment’а. Поэтому, я считаю, очень важно уметь диагностировать типовые проблемные ситуации пользуясь только штатными утилитами. Так что давайте посмотрим как мы можем диагностировать memory leak’и в java, когда у вас под рукой нет ничего кроме JDK.

    Итак, в логах вы нашли OutOfMemoryError . Что делать? Во-первых, надо уяснить чего делать не надо. Ни в коем случае не надо перезапускать процесс. Сделав это вы потеряете весь heap приложения, а в нашем случае heap — это единственная улика, которая может натолкнуть вас на причины OOM. Вам надо сделать heap dump. Это позволит понять кто занимает память, а также почему эта память не была конкретно высвобождена garbage collector’ом.

    Самый простой способ сделать dump — это использовать утилиту jmap из пакета JDK.

    Вот теперь, когда вы сделали dump, вы можете смело возвращать систему к жизни и перезапускать JVM, если это требуется.

    Перед доставкой dump’а на вашу машину советую его пережать, так как heap dump’ы очень хорошо жмутся. Когда dump будет на вашей машине возникает вопрос. А каким образом вообще понять что там у “не внутря”?

    С последними версиями JDK поставляется приложение VisualVM, которое содержит в себе в том числе и memory profiler. Загружаем heap dump в VisualVM и открываем вкладку “Classes”.

    На этой вкладе мы видим распределение памяти в dump’е по классам объектов. В данном случае большего всего памяти занимает тип char[] . Видимо кто-то хранит много строчек в памяти. Кто же это?

    Дважды щелкаем на типе и переходим в instance view. Здесь мы видим все экземпляры данного типа, а также кто на них ссылается, а следственно и то, почему GC их не собрал. Просматриваем несколько экземпляров.

    В моем случае большинство ссылок на строку удерживается базой данных H2 при помощи soft reference. Немного погуглив можно узнать, что H2 использует soft reference для хранения кеша базы данных. Отличительной особенностью soft ссылок является то, что JVM собирает их только тогда, когда ей не хватает памяти (перед генерацией OOM). Это делает soft ссылки довольно удобным механизмом для различного рода кешей. Тем не менее JVM не гарантирует что она успеет собрать все soft ссылки перед генерацией exception’а. Что, судя по всему, и происходит в моем случае.

    Также стоит отметить, что VisualVM может сам находить ближайших GC root, удерживающий данный instance от garbage collector’а.

    Это избавляет вас от необходимости сайгаком прыгать по дереву referent’ов в поисках ближайшего GC root’а.

    Auto dump

    Иногда бывает так, что причиной OutOfMemoryError служит не нехватка памяти, а другие причины. Например, если JVM видит, что она тратит большую часть процессорного времени на сборку мусора, а не на выполнение собственно приложения, она генерирует следующий exception.

    В зависимости от того как написано приложение оно может остаться живо, и даже продолжать выполнять свои функции. Причем уже через несколько минут heap может быть чистенький и без лишнего мусора (GC не зря жрал так много процессорного времени, и в конце концов собрал весь мусор).

    Отладка затрудняется, — у вас нет heap’а, хоть на кофейной гуще гадай. В этом случае, стоит перезапустить приложение с ключом -XX:-HeapDumpOnOutOfMemoryError . Это заставит JVM сделать heap dump автоматически перед тем как кидать в бедное приложение OOM’ом. После следующего подобного инцидента у вас появится пища для размышлений.

    Runtime статистика

    Часто бывает так, что у программиста появляется теория относительно того, почему возникает memory leak. Например, зная список последних изменений кодовой базы, можно предположить что проблема локализована в каком-то конкретном участке системы. В этом случае, вам снова может помочь jmap. Эта утилита позволяет просмотреть количество экземпляров и занимаемую ими память по типам.

    Вы также можете легко посчитать суммарную память занимаемую типами определенного пакета.

    Да пребудет с вами сила дефолтных настроек.

    Оцените статью
    avataria-cheat.ru
    Добавить комментарий