Disk read error outofmemoryerror ошибка zona

В некоторых редких случаях пользователь torrent-клиента может столкнуться с ошибкой «Write to disk. Отказано в доступе». Такая проблема возникает тогда, когда торрент-программа пытается скачать файлы на жесткий диск, но сталкивается с некоторыми препятствиями. Обычно, при такой ошибке загрузка останавливается примерно на 1% — 2%. Существует несколько возможных вариантов возникновения данной проблемы.

Причины возникновения ошибки

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

Как уже было упомянуто, ошибка Write to disk довольно редкая и имеет несколько причин возникновения. Чтобы её исправить вам понадобится несколько минут.

Причина 1: Блокировка вирусами

Вирусное ПО, которое могло поселиться в системе вашего компьютера, может принести множество проблем, среди которых и ограничение доступа torrent-клиента к записи на диск. Рекомендуется использовать портативные сканеры на выявление вирусных программ, так как обычный антивирус может не справиться с данной задачей. Ведь если он упустил эту угрозу, то есть вероятность того, что он совсем её не найдёт. В примере будет использоваться бесплатная утилита Doctor Web Curelt!. Вы можете просканировать систему любой другой удобной вам программой.

    Запустите сканер, согласитесь с участием в статистике Доктор Веб. После нажмите «Начать проверку».

Начнётся процесс проверки. Он может длиться несколько минут.

Причина 2: Недостаточно свободного места на диске

Возможно диск, на который загружаются файлы заполнен до отказа. Чтобы освободить немного места, придётся удалить некоторые ненужные объекты. Если у вас ничего такого нет удалять, а места мало и некуда перенести, то стоит воспользоваться облачными хранилищами, которые бесплатно предлагают гигабайты пространства. Например, подойдут Google Drive, Dropbox и другие.

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

  1. В программе Ccleaner перейдите во вкладку «Сервис», а потом в «Поиск дублей». Вы можете настроить нужные вам параметры.
  2. Когда нужные галочки будут поставлены нажмите «Найти».

Причина 3: Некорректная работа клиента

Возможно, torrent-программа стала некорректно работать или её настройки были повреждены. В первом случае нужно перезапустить клиент. Если же вы подозреваете, что проблема в повреждённом компоненте программы, нужно переустановить torrent с чисткой реестра или попытаться скачать файлы с помощью другого клиента.
Чтобы устранить проблему записи на диск, попробуйте перезапустить торрент-клиент.

    Полностью выйдите с торрента, нажав на соответствующий значок в трее правой клавишей мыши и выбрав «Выход» (пример показан на BitTorrent, но практически во всех клиентах все аналогично).

Теперь нажмите на ярлык клиента правой кнопкой и выберите «Свойства».

В окне выберите вкладку «Совместимость» и поставьте галочку на пункте «Выполнять эту программу от имени администратора». Примените изменения.

Если у вас Windows 10, то есть смысл поставить режим совместимости с Windows XP.

Во вкладке «Совместимость» поставьте галочку напротив «Запустить программу в режиме совместимости с» и в нижнем списке настройте «Windows XP (пакет обновления 3)».

Причина 4: Путь сохранения файла написан кириллицей

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

    Зайдите в клиенте в «Настройки»«Настройки программы» или используйте сочетание Ctrl+P.

  • Во вкладке «Папки» пометьте галочкой «Перемещать загружаемые файлы в».
  • Нажав кнопку с тремя точками, выберите папку с латинскими буквами (убедитесь, что путь к папке не состоит из кириллицы).
  • Если у вас есть незавершённая загрузка, кликните на неё правой клавишей и наведите на «Дополнительно»«Загружать в» выбрав соответствующую папку. Это нужно проделать для каждого недозагруженного файла.

    Другие причины

    • Возможно ошибка записи на диск связана с кратковременным сбоем. В таком случае, перезагрузите компьютер;
    • Антивирусная программа может блокировать torrent-клиент или как раз сканировать недогружённый файл. Отключите защиту на некоторое время для нормальной закачки;
    • Если один объект загружается с ошибкой, а остальные нормально, то причина кроется в криво залитом torrent-файле. Попробуйте совсем удалить загружённые фрагменты и закачайте их заново. Если этот вариант не помог, то стоит найти другую раздачу.

    В основном, для устранения ошибки «Отказано в доступе Write to disk», используют запуск клиента от имени администратора или смену директории (папки) для файлов. Но остальные методы тоже имеют право жить, ведь проблема не всегда может ограничиваться лишь двумя причинами.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    By Rodin | Last Updated November 07, 2019

    • Facebook
    • Twitter
    • Linkedin
    • Reddit

    Summary :

    Steam is a popular social gaming website where you can buy, play, and discuss games. But, have you ever received Steam disk write error while installing or updating games? Were you ever able to find an effective solution? If you had a difficult time, this post should be helpful to you.

    Quick Navigation :

    Steam Disk Write Error While Downloading/Installing

    While installing or updating a game like Dota 2, Fallout 4, Grand Theft Auto V and PlayerUnknown’s Battlegrounds, Steam sometimes displays an error message which reads, «An error occurred while installing/updating [game title] (disk write error)».

    See image below.

    Commonly known as Steam disk write error, this issue can occur anytime when a game is updated or installed on Steam, leading to Steam being unable to complete the installation. Disk write error shown in the parenthesis is the specific reason responsible for the error.

    How to fix disk write error Steam? If you are having troubles updating a game or installing a game on Steam due to a disk write error now, try the following solutions out.

    Steam Disk Write Error Fix Provided by Users

    1. Run as Administrator

    Go to the file location of Steam (default location is C:/program files[86]/Steam). Right-click on the steam.exe and go to properties. Head to the Compatibility tab in properties and make sure, «run this program as an administrator», is ticked. Click Apply and run Steam again. Check if the Steam disk write error has been solved.

    2. Delete the 0KB File

    This solution is provided by a Reddit user and many users rate it useful. In short, he just solved this issue by going into Program Files (x86)/Steam/steamapps/common and simply deleting a file titled «Fallout» that was 0KB in size. When he re-launched the game, Fallout 4 loaded up perfectly. This solution might also be useful when updating similar games. See the original post here.

    3. Remove Write Protection

    When a disk is write-protected, you’re unable to modify the formatting and writing. This is another possible reason for the Steam disk write error. Please make sure the directory of Steam is NOT read-only. Then right click your Steam launch icon and click Run as administrator.

    But if the disk is already written protected, you can simply clear write protection and remove the error using command.

    Take Windows 10 for instance.

    Run Command Prompt as an Administrator. Then type these commands one by one and press the Enter key after each:

    • diskpart
    • list disk
    • select disk # (# is the number of the hard drive with which you’re getting the disk error)
    • attributes disk clear readonly

    You may now close Command Prompt, repeat the downloading/upgrading process and check if the Steam disk write error Windows 10 disappeared.

    4. Delete Corrupted Files in Log

    Go to Steam/logs/content_log and open it. Scroll to the bottom of the log file, and look for a «failed to write» error, which will list the file name & path of the issue. Please follow the path to delete the corrupted file, and then repeat the downloading/upgrading.

    5. Check Hard Drive for Errors

    All storage drives/devices can be affected by file corruption, especially if it has run for years or running under a heavy load. You’ll want to work with a tech support specialist to investigate possible issues with your Steam hard drive.

    For Windows: My PC -> Right-click on the drive for Steam -> Properties -> Tools -> Error checking

    If you are not specialized, but want to do it by yourself, MiniTool Partition Wizard Free is a good recommendation. Its Check File System and Surface Test feature can lead you through the disk check process easily and quickly. Applies to all Windows 7/8/8.1/10 editions.

    Download this freeware, install it on computer and follow the guide below:

    Step 1. Launch this free partition magic to the main interface. At the disk map area, select the partition that has Steam installed and choose Check File System from the Check Partition group.

    Step 2. In the new emerging window, select Check & fix detected errors and click the Start button. Please wait patiently until it finishes the job. If any error is found, Partition Wizard will try its best to fix it.

    Now it is time to test whether there are bad sectors on the drive bringing Steam disk write error to Windows 10/8/7.

    Step 3. Select the disk that has Steam installed and reports Steam disk write error and then choose Surface Test from the Check Partition group.

    Step 4. In the new emerging window, click Start Now on the top right corner to begin the check. Note that if there are read errors found, they will be marked with red color. On the contrary, if no bad sector is found, all will be marked with green.

    If no error is found, go back to Steam and see if the Steam game update is stuck still.

    If a lot of errors are found and your drive looks like a failing disk, this may be responsible for the Steam downloading/upgrading error. In this case, it is better for you to back up data on the drive as soon as possible and then replace the drive. Luckily, MiniTool Partition Wizard Free is also capable of doing this work.

    Follow the simple guide below:

    Step 1. At the disk map error, select the hard drive which has Steam installed and choose Copy Disk from the left action panel.

    Step 2. Select a target disk to save all data on the source disk. Be aware that all data on the selected target disk will be cleaned for a successful clone. Thus, it is necessary to transfer important data to a safe place.

    Step 3. Review the changes to be made or change the copy options according to your preference.

    Step 4. Read how to boot from the target disk if you have such an intention.

    Step 5. Click Apply to put the pending operations into effect and wait patiently until MiniTool Partition Wizard finishes.

    But if the above user’s experience does not help, you may continue reading the solutions put forward by Steam.

    Official Steam Troubleshooting

    1. Restart Steam and Computer

    Needless to say, restarting is always the first thing to try. Please restart Steam and then repeat the downloading/upgrading. If the Steam disk write error persists, restart your computer.

    2. Clear Download Cache

    Clearing the download cache of Steam will force the Steam client to flush locally cached configuration data and acquire it from the Steam server again.

    Please follow this path to do the clean: Steam > Settings > Downloads > Clear Download Cache

    3. Reinstall Steam

    Reinstalling Steam may fix potential issues with Steam client and service files while preserving all installed games. Remember: DO NOT uninstall (this may delete all game content), just reinstall Steam to the same location.

    4. Repair Library Folder

    The Steam Library contains all your installed games which should be writable by all users so as to download or update properly. However, sometimes Steam game update stuck because the user permissions changed and need to be refreshed.

    Please follow this path to do the repair: Steam > Settings > Downloads > Steam Library Folders > Right click on folder > Repair Folder

    5. Verify Local Files

    Bad hardware, software crashes, and power surges can corrupt the game folders. You can use Steam to verify the integrity of these files and fix them if necessary.

    Find Game in Library > Right click on Properties > Local Files > Verify Integrity of Game Files

    6. Change Download Region

    The Steam content system is divided into geographical regions. The Steam client automatically detects its current region and uses content servers located in that region.

    Sometimes, servers in a specific region may be slow or overloaded, leading to Steam disk write error while downloading. You can switch to a different download region, using another set of content servers to have a try.

    Please go to Steam > Settings > Downloads > Download Region. You may need to test several regions other than your own.

    7. Move Game Folder

    It is worth trying to install the game on another hard drive in case it is the hard drive failure. If this works, you can then create a new Steam Library folder on this drive and install new games or move the already installed games into this Steam Library folder.

    Please go to Steam > Settings > Downloads > Steam Library Folders > Add New Library Folder

    8. Refresh Local Network Hardware

    Network hardware can get into a slow/broken state after running for a long time. Restarting all modems & routers might be helpful to fix Steam disk write error.

    9. Update System & Drivers

    Make sure your operating system and hardware drivers are all up to date and repeat the downloading/upgrading.

    For Windows: Start > Search «update» > Run «Check for Updates»

    For Mac: drivers cannot be updated separately; you can only update the operating system to the latest.

    10. Investigate Firewalls

    Certain firewalls may prevent Steam from talking to its servers. You can temporarily disable it for testing purpose. If that’s the reason, it may be necessary to add exceptions in your firewalls for Steam.

    11. Investigate Anti-Virus

    Anti-Virus hooks deep into the operating system and can affect disk and network operations, further leading to issues with Steam. Besides, some games use copy protection technology which may appear as malicious software to an antivirus scanner, resulting in Steam disk write error. You can completely disable the Anti-Virus and check if the disk write error stopped.

    12. Investigate Other Programs & Services

    Software that modifies or monitors systems and disk or network activity can cause issues while downloading or running a game. These programs and services can run in the background and are typically associated with software like Anti-Virus, ad-blockers, web-optimizers, firewalls, system cleaners, etc.

    You may work with a tech support specialist to ensure that these services & programs are not interfering with Steam. You may even need to temporarily disable them for testing purposes.

    13. Disable Overclocking

    Some users overclock their hardware to gain the best performance without accepting manufacturers’ recommended settings. This can cause memory and file corruption and should be disabled (usually you can do this in the computer BIOS).

    14. Test Online Connection

    Some Internet providers cache or compress online data to save bandwidth. This can cause issues with Steam. It is good to try connecting your PC to an entirely different network from a different service provider to fix disk write error Steam.

    15. Check RAM for Errors

    Memory errors can cause issues with the Steam installation process, as well as gameplay. You’ll want to work with a tech support specialist to investigate possible issues with your system memory.

    For Windows: Start -> Find «mdsched» and run Windows Memory Diagnostic

    Bottom Line

    Here we come to the end of this post. Now you know what Steam disk write error installing/updating is and how to resolve it with multiple methods. Hopefully some of our suggestions help you solve any issues early on.

    If you have any other tried and true strategies on the subject of how to remove the disk write error on Steam, let us know by typing your suggestions in the comment section below. If you have any difficulty in using MiniTool software, you can send email to [email protected] .

    Если Вы скачиваете торренты из сети, то наверняка сталкивались с таким явлением: программа внезапно прекращает загрузку файлов и сообщает об ошибке. В случае с utorrent она звучит как «Отказано в доступе Write to disk». В случае с qbittorrent – «Произошла ошибка ввода/вывода для торрента».

    Почему возникает ошибка торрента? Виной тому может быть целый ряд факторов… Например, нехватка места на жестком диске (как на скриншоте выше). Также причиной может быть нарушение целостности файлов в результате сбоя работы диска. Ну а уже сбой диска может вызываться в свою очередь целым «букетом» факторов: наличие битых bad-секторов, плохой контакт разъема шлейфа, деятельность вирусов и пр.

    Все вновь загружаемые файлы будут помещаться в новую папку, а Вам осталось туда же перенести имеющиеся на закачке торренты. Для этого выделите их в списке загрузок, выберите опцию «Дополнительно» -> «Загружать в…» и укажите новую папку.

    Друзья, помог ли Вам справиться с ошибкой загрузки и доступа к торренту один из этих способов? Делитесь в комментариях.

    Содержание

    1. A disk read error occurred — как исправить
    2. Причины ошибки disk read error occurred и способы исправления
    3. Если ошибка вызвана повреждением файловой системы
    4. Повреждение загрузчика ОС
    5. Проблемы с настройками БИОС/UEFI
    6. Проблема с подключением жесткого диска
    7. «A disk read error occurred» — как исправить эту ошибку чтения диска (появилась сразу после включения компьютера)
    8. Что можно посоветовать для исправления ошибки чтения диска
    9. ШАГ 1
    10. ШАГ 2
    11. ШАГ 3 (если не определяется диск)
    12. ШАГ 4 (если диск определяется)
    13. A disk read error occurred press ctrl alt del – универсальная инструкция по устранению
    14. Общая информация
    15. Изменение приоритета загрузки
    16. Восстановление файловой системы и загрузчика
    17. Настройка Биос
    18. Разбираемся с жестким диском
    19. Дополнительные способы

    A disk read error occurred — как исправить

    Иногда при включении компьютера можно столкнуться с ошибкой «A disk read error occurred. Press Ctrl+Alt+Del to restart» на черном экране, при это перезагрузка, как правило, не помогает. Ошибка может возникнуть после восстановления системы из образа, при попытке загрузки с флешки, а иногда и без каких-то видимых причин.

    В этой инструкции подробно об основных причинах ошибки A disk read error occurred при включении компьютера и о способах исправить проблему.

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

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

    Среди наиболее распространенных причин, вызывающих появление ошибки «A disk read error occurred» можно выделить следующие

    1. Повреждение файловой системы на диске (например, в результате неправильного выключения компьютера, отключения электричества, сбоя при изменении разделов).
    2. Повреждение или отсутствие загрузочной записи и загрузчика ОС (по вышеозначенным причинам, а также, иногда, после восстановления системы из образа, особенно созданным сторонним ПО).
    3. Неправильные настройки БИОС (после сброса или обновления БИОС).
    4. Физические проблемы с жестким диском (диск вышел из строя, давно работал не стабильно, или после падения). Один из признаков — при работе компьютер то и дело зависал (когда включался) без видимых причин.
    5. Проблемы с подключением жесткого диска (например, вы плохо или неправильно его подключили, поврежден кабель, повреждены или окислены контакты).
    6. Недостаток питания вследствие выхода блока питания из строя: иногда при недостатке питания и неисправностях блока питания компьютер продолжает «работать», но некоторые компоненты могут самопроизвольно отключаться, в том числе — жесткий диск.

    Исходя из этой информации и в зависимости от ваших предположений о том, что способствовало появлению ошибки, можно попробовать исправить её.

    Прежде чем приступать, убедитесь, что диск, с которого выполняется загрузка, виден в БИОС (UEFI) компьютера: если это не так, вероятнее всего, проблем в подключении диска (перепроверьте подключение кабелей как со стороны самого диска, так и со стороны материнской платы, особенно если у вас системный блок находится в открытом виде или вы недавно выполняли какие-либо работы внутри него) или в его аппаратной неисправности.

    Если ошибка вызвана повреждением файловой системы

    Первое и самое безопасное — выполнить проверку диска на ошибки. Для этого потребуется загрузить компьютер с какой-либо загрузочной флешки (или диска) с утилитами диагностики или с обычной загрузочной флешки с любой версией Windows 10, 8.1 или Windows 7. Приведу метод проверки при использовании загрузочной флешки Windows:

    1. Если загрузочной флешки нет, создайте её где-то на другом компьютере (см. Программы для создания загрузочной флешки).
    2. Загрузитесь с неё (Как поставить загрузку с флешки в БИОС).
    3. На экране после выбора языка нажмите «Восстановление системы».
    4. Если у вас была загрузочная флешка Windows 7, в средствах восстановления выберите «Командная строка», если 8.1 или 10 — «Поиск и устранение неисправностей» — «Командная строка».
    5. В командной строке введите по порядку команды (нажимая Enter после каждой из них).
    6. diskpart
    7. list volume
    8. В результате выполнения команды на шаге 7 вы увидите букву системного диска (в данном случае она может отличаться от стандартной C), а также, при их наличии — отдельные разделы с загрузчиком системы, которые могут не иметь буквы. Для проверки её потребуется назначить. В моем примере (см. скриншот) на первом диске есть два раздела, которые не имеют буквы и которые имеет смысл проверить — Том 3 с загрузчиком и Том 1 со средой восстановления Windows. В следующих двух командах назначаю букву для 3-го тома.
    9. select volume 3
    10. assign letter=Z (буква может быть любая не занятая)
    11. Аналогично назначаем букву для других томов, которые следует проверить.
    12. exit (этой командой выходим из diskpart).
    13. Поочередно проверяем разделы (главное — проверить раздел с загрузчиком и системный раздел) командой: chkdsk C: /f /r (где C — буква диска).
    14. Закрываем командную строку, перезагружаем компьютер, уже с жесткого диска.

    Если на 13-м шаге на каком-то из важных разделов были найдены и исправлены ошибки и причина проблемы была именно в них, то есть вероятность, что следующая загрузка пройдет успешно и ошибка A Disk Read Error Occurred вас больше не потревожит.

    Повреждение загрузчика ОС

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

    Проблемы с настройками БИОС/UEFI

    Если ошибка появилась после обновления, сброса или изменения параметров БИОС, попробуйте:

    • Если после обновления или изменения — сбросить параметры БИОС.
    • После сброса — внимательно изучить параметры, особенно режим работы диска (AHCI/IDE — если не знаете, какой выбрать, попробуйте оба варианта, параметры находятся в разделах, связанных с конфигурацией SATA).
    • Обязательно проверьте порядок загрузки (на вкладке Boot) — ошибка может быть вызвана и тем, что нужный диск не выставлен в качестве устройства загрузки.

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

    Проблема с подключением жесткого диска

    Рассматриваемая проблема может быть вызвана и проблемами с подключением жесткого диска или работой SATA шины.

    • Если вы проводили работы внутри компьютера (или он стоял открытым, и кто-то мог задеть кабели) — переподключите жесткий диск как со стороны материнской платы, так и со стороны самого диска. Если есть возможность, попробуйте другой кабель (например, от DVD-привода).
    • Если вы установили новый (второй) накопитель, попробуйте отключить его: если без него компьютер загружается нормально, попробуйте подключить новый диск к другому разъему SATA.
    • В ситуации, когда компьютер долгое время не использовался и хранился не в идеальных условиях, причиной могут быть окисленные контакты на диске или кабеле.

    Если ни один из способов не помогает решить проблему, при этом жесткий диск «виден», попробуйте переустановку системы с удалением всех разделов на этапе установки. Если через короткий промежуток после переустановки (или сразу после неё) проблема вновь заявит о себе — велика вероятность, что причина ошибки в неисправности жесткого диска.

    Источник

    «A disk read error occurred» — как исправить эту ошибку чтения диска (появилась сразу после включения компьютера)

    Сегодня из ниоткуда на экране ПК появилась одна пакость: «A disk read error occurred. Press Ctrl+Alt+Del». С системой ничего не делал: не удалял, не обновлял, не устанавливал. и т.д.

    Есть подозрение только на одно: я накануне часа 2 вечером копировал фильмы на флешки и DVD-диски. Может с диском что-то случилось? Подскажите, как это можно исправить.

    Если перевести эту ошибку на русский (для более простого понимания широкой аудитории) — то она означает, что «Произошла ошибка чтения диска». Возникать она может не всегда из-за поломки диска (хватает и других причин: сбившиеся настройки BIOS; неправильное отключение, приведшее к ошибкам файловой системы и т.д.).

    Ниже, постараюсь в пошаговом и простом «стиле» представить первичную диагностику. Думаю, большинство с ней справятся. 👌

    Что можно посоветовать для исправления ошибки чтения диска

    ШАГ 1

    И так, первый совет банальный : проверьте и отключите от компьютера все флешки, CD/DVD-диски, внешние HDD, дискеты и т.д. (тем более, если вы накануне что-то записывали на эти типы накопителей).

    Примечание: многие пользователи, скинув на внешний накопитель данные, забывают его в USB и выключают компьютер. А затем, при включении, ПК начинает искать загрузочные записи на этой самой флешке (например) — разумеется, их не находит и возникает ошибка*!

    Флешка подключена к USB-порту!

    👉 Дополнение: если к компьютеру подключен сканер, принтер, телефон и пр. периферийные устройства — отключите их также на время диагностики. Оставьте мышь, клавиатуру, монитор — т.е. самый «минимум».

    Если накануне устанавливали доп. диски (HDD/SSD и пр.) — отключите их!

    ШАГ 2

    Если первый шаг не помог — следующее, что я порекомендую — это проверить настройки BIOS (UEFI) компьютера.

    1) Как войти в БИОС (BIOS) на компьютере / ноутбуке.

    👉 В первую очередь в BIOS нужно проверить 2 вещи:

    • определяется ли диск (на котором установлена Windows). Видна ли его модель/размер? Если не определяется — см. шаг 3.
    • стоит ли диск первым в очереди* загрузки ( примечание : в BIOS можно задавать приоритет накопителей: т.е., например, можно задать, чтобы компьютер сначала искал загрузочную флешку, а если ее нет, загружался с диска. Нам нужно сразу же указать диск. ).

    Как правило, модель диска (если он определился) можно увидеть сразу же после входа в BIOS (на странице «Main»). Установлен ли этот диск первым по приоритету загрузки — см. раздел BOOT. Пример привел на фотографиях ниже. 👇

    Диск определяется (уже неплохо)

    Boot Option #1 — указан диск с ОС Windows (настройки BIOS)

    Примечание : после проведенных изменений в BIOS — не забудьте сохранить настройки. Как правило, для этого достаточно нажать клавишу F10.

    ШАГ 3 (если не определяется диск)

    Это явно указывает на какую-то аппаратную причину. (не всегда не определяющийся диск начал сыпаться и нуждается в замене).

    Для начала я бы посоветовал отключить системный блок от питания и посмотреть, не отошел ли какой-нибудь шлейф от диска. Желательно попробовать подключить диск к другому разъему на мат. плате (благо на любой мат. плате есть по несколько SATA-портов).

    Не отошли ли шлейфы.

    Если диск компьютер так и не увидел, то первое в чем необходимо убедиться — исправен ли он вообще, не пришел ли в негодность. Для этого лучше всего диск подключить к другому компьютеру / ноутбуку. Если у вас есть спец. переходники — диск можно даже подключить к USB-порту (пару ссылок ниже о том, как это сделать).

    Подключение SATA и кабеля питания к диску

    👉 Кстати!

    Компьютер можно использовать даже без диска! Для этого вам понадобиться спец. подготовленная флешка (так называемый «живой» LiveCD) — Windows будет загружена прямо с нее (и она мало чем отличается от обычной ОС).

    О том, где загрузить нужный ISO образ с LiveCD и как его правильно подготовить — можете узнать из этой статьи.

    ШАГ 4 (если диск определяется)

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

    Для дальнейшей работы нам понадобиться 👉 LiveCD-флешка от Сергея Стрельца.

    👉 Загрузившись с нее — необходимо открыть программу Victoria и проверить диск (оценить его состояние — не начал ли он сыпаться (из-за этого, кстати, «часть» диска могла перестать читаться и, как следствие, ошибка «A disk read error occurred»)).

    Тестирование быстрое (Quick) — Victoria 5

    👉 Если с самим диском всё в порядке — не лишним было бы проверить файловую систему на ошибки (делается также с LiveCD-флешки!).

    Для этого необходимо будет открыть командную строку, ввести chkdsk C: /f /r и нажать Enter. 👇 В течении 5-15 мин. (в среднем) диск будет проверен, а ошибки исправлены.

    👉 Если вышеприведенное не помогло, то как вариант, можно попробовать с помощью установочной флешки (с Windows) восстановить систему (загрузчик ОС). О том, как это сделать — см. эту заметку.

    Восстановление системы (при установке ОС)

    👉 Ну и как «последняя инстанция» возможно стоит переустановить систему, или лучше сказать установить вторую ОС в свободное место диска (благо, это можно сделать без затрагивания «старой» Windows, без потери данных и форматирования всего диска).

    Источник

    A disk read error occurred press ctrl alt del – универсальная инструкция по устранению

    Как правило, ошибка «A disk read error occurred. Press Ctrl+Alt+Del to restart» возникает при включении компьютера, при этом не исправляется обычной перезагрузкой. На, то есть несколько причин, от программных до технических. Что делать в этой ситуации? Давайте разбираться.

    Общая информация

    В переводе на русский «A disk read error occurred» означает ошибку чтения диска. Но это не говорит о том, что есть проблемы с самим жестким диском или SSD на котором установлена Windows.

    Выделю распространенные причины появления сбоя.

    1. Повредилась файловая система. Обычно это происходит при неправильном выключении компьютера, например, после резкого выключения электричества или наличии вирусов.
    2. Повреждение загрузчика «MBR».
    3. Неверные настройки BIOS, в том числе измененный порядок загрузки устройств.
    4. Неисправность жесткого диска. Особенно если до появления проблемы наблюдались периодические зависания, странные звуки или было физическое воздействие (уронили, потрясли, перегрелся).
    5. Неправильно или неплотно подключили HDD.
    6. Недостаток питания. Несмотря на то, что винчестеры потребляют мало мощности, плохой или полуживой блок питания может нарушать его работу.

    Перед тем как переходить к исправлению проблемы убедитесь, что накопитель виден в БИОС. Если его там нет, то проверьте подключение и при необходимости замените SATA кабель. Иногда достаточно протереть контактные дорожки ластиком. Если это не помогло, то скорее всего он неисправен и подлежит замене.

    Изменение приоритета загрузки

    Проще всего восстановить порядок загрузки можно отключив от компьютера второстепенные устройства (внешние HDD, флешки, карты памяти и прочие).

    Но есть еще и ручной способ.

    1. Зайдите в BIOS и найдите параметр «Boot Option» или аналогичный.
    2. Установите на первое место накопитель с Windows и сохраните изменения.

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

    Это самый безопасный способ, который может помочь в восстановлении работы ПК. Обзаведитесь загрузочной флешкой, LiveCD или WinPE. Буду показывать на примере WinPE (мне нравится сборка от Sergei Strelec ). Принцип записи этой сборки на флешку тот же, что и с Windows, поэтому проблем возникнуть не должно.

    1. Загружаете с накопителя ОС и запускаете командную строку (найти ее можно в Пуске).
    2. Вводите chkdsk C: /f /r – где под буквой «C» подразумевается раздел с операционной системой, которая вышла из строя. Жмете «Enter». Начнется автоматическая проверка и исправление ошибок.
    3. Теперь выполните другую команду — bcdboot C:windows. Она восстановит загрузочную область.

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

    Настройка Биос

    Иногда, изменение настроек Биос влечет за собой появления различных ошибок. Ситуация налаживается следующим образом.

    1. Сбросом параметров. Воспользуйтесь опцией «Optimized Defaults» или аналогичной.
    2. Найдите опцию, отвечающую за режим работы накопителя. Обычно это «Sata Mode» ,«Sata Type». Установите значение «AHCI». Если и так стоит «AHCI», то измените на «IDE». Сохраните изменения и перезапуститесь.
    3. Если проблема возникла после обновления BIOS. То установите старую версию. Загружается с официального сайта материнской платы или ноутбука. Иногда, наоборот, помогает обновление Попробуйте оба варианта.

    Если настройки не сохраняются, то замените батарею питания, скорее всего она отжила свое. Производить замену желательно 3-5 лет.

    Разбираемся с жестким диском

    Рассмотрим несколько типичных проблем и попробуем их исправить.

    1. Проверьте подключение носителя. Особенно, если до появления сбоя проводились какие-либо работы внутри корпуса ПК. Также можно подключить его к другому порту.
    2. Замените SATA кабель.
    3. Удостоверьтесь, что винчестер исправен. Проведите сканирование через «Victoria» или «MHDD». Иногда, казалось бы, нормальный HDD с хорошим смартом и результатами тестирования все равно может быть неисправным. Подтверждать это будет невозможность установить Windows, зависания и сбои приложений.

    Если и это не избавило от ошибки «A disk read error occurred», то напоследок предложу еще несколько вариантов. Маловероятно, что они помогут, но попробовать стоит.

    Дополнительные способы

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

    1. Протестируйте оперативную память. Предварительно очистив их от пыли. При обнаружении неисправности замените битые планки. Также если установлено два или более модулей ОЗУ, попробуйте поменять их местами или вынуть все, кроме одного.
    2. Проведите дефрагментацию. Скептически отношусь к этому пункту.
    3. Переустановите ОС. Возможно, используется «кривая» или поврежденная сборка.
    4. Проведите сканирование на вирусы.
    5. Редко виновниками становится материнская плата (в том числе SATA разъем) или блок питания. Поэтому протестируйте HDD на другом компьютере.
    6. Бывает, что системный диск с операционкой пропадает (удаляется) сам по себе. Решается восстановлением раздела с помощью специальных программ, например, «Acronis Disk Director» или созданием нового раздела (при этом придется заново устанавливать ОС). Если это повторяется часто, то желательно заменить такой накопитель.
    7. Посмотрите на контакты на обратной стороне платы (нужно открутить отверткой), возможно, произошло окисление. Почистите их и прикрутите плату обратно. Выполняйте эту процедуру осторожно и только в крайнем случае, когда нечего терять.

    Напишите в комментариях, если возникли сложности. Буду рад помочь.

    Источник

    Все мы сталкивались с различными ошибками и все они были разные, был ли это экран смерти, или еще какая-нибудь критическая проблема, но я уверен, что многие сталкивались с такой проблемой, когда, при загрузке Windows появляется черный экран, а вверху слева написаны какие-то английские слова. Сегодня мы поговорим о такой ошибке, как «A disk read error occurred Press Ctrl+Alt+Del to restart». Если перевести на русский, то примерно будет выглядеть так: Диск не читается, нажмите Ctrl+Alt+Del и перезагрузитесь.

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

    1. Операционная система установлена некорректно.

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

    1. Возможно установлена более старая версия ОС поверх новой.
    2. Повреждение диска, например, во время падения ноутбука.
    3. Выключение компьютера происходило с помощью кнопки питания
    4. Эксперимент над логическими разделами
    5. Восстановление системы происходило на раздел, которые практически полностью забит.
    6. Загрузочная запись повреждена вирусом.
    7. Загрузочная запись по ошибке удалена антивирусом.
    8. Диск является довольно старым и изношенным.
    9. Проблема с контактами, контроллерами или шлейфом.
    10. Блок питания неисправен.

    Теперь приступим к решению проблемы. Сначала убедитесь, что диск не имеет аппаратных проблем. Зайдите в BIOS и убедитесь, что диск определяется. Если диск отсутствует, то проверьте на диске контакты, шлейф и прочее, подключите его к другому компьютеру, если он и там не работает, следует отнести диск в сервисный центр.

    Чаще всего появление данной ошибки связано с разрушением MBR-записи (частичным или полным), которая расположена на нулевом секторе и обеспечивает определение логических разделов. Кстати, замечены случаи, что данная ошибка появляется, когда повреждены файлы срытого раздела, называемого «Зарезервировано системой».

    Содержание:

    1. Причины и их решение.
    2. Восстановление загрузочной записи диска (MBR).
    3. Исправление ошибки «BOOTMGR is Missing».
    4. Восстановление данных

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

    Ниже будут описаны причины и способы решения ошибок «A disk read error occurred» или «BOOTMGR is Missing», возникающих из-за проблем с жестким диском, BIOS-ом, повреждением системы вирусным ПО, а также другими неполадками.

    Проверяем скрытый раздел

    Для начала, стоит загрузиться с утилиты Acronis Disk Derector или подобной программы и убедиться, что раздел «Зарезервировано системой» вообще активен. Если такого нет, то нажмите по этому диску ПКМ и нажмите «отметить как активный».

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

    Причины и их решение

    Ошибка «A disk read error occurred» в переводе на русский означает «Ошибка чтения диска». С этого можно сделать вывод, что причиной возникновения ошибки стал один из подключенных носителей. Это может быть, как флешка или дисковод, так и основной жесткий диск.

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

    • Отключить все флешки и другие внешние накопители.
    • Проверить запуск системы только с подключенным HDD.
    • Проверить правильность подключения разъёмов в системном блоке (пыль и болтающиеся неподключенные провода могут вызывать сбои в работе системы).
    • Посмотреть, видит ли система HDD в BIOS.
    • Подключить сбоящий HDD на другом компьютере (необходимо, чтобы убедится в правильности работы материнской платы, блока питания и других компонентов, влияющих на запуск).
    • Провести дефрагментацию сбойного диска на другом компьютере.

    Другие варианты

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

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

    Восстановление загрузочной записи диска (MBR)

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

    Шаг 1. Загружаемся с загрузочной флешки или установочного диска Windows и нажимаем кнопку «Далее».

    Как исправить ошибку «A disk read error occurred» или «BOOTMGR is Missing»

    Шаг 2. На экране выбора языка системы открываем «Восстановление системы».

    Как исправить ошибку «A disk read error occurred» или «BOOTMGR is Missing»

    Шаг 3. В окне восстановления системы выбираем пункт «Поиск и устранение неисправностей».

    Как исправить ошибку «A disk read error occurred» или «BOOTMGR is Missing»

    Шаг 4. Переходим в пункт «Дополнительные параметры» и открываем «Командная строка».

    Как исправить ошибку «A disk read error occurred» или «BOOTMGR is Missing»

    Шаг 5. В открывшемся окне командной строки следует ввести две команды:

    bootrec /fixmbr – для перезаписи загрузочной записи

    bootrec /fixboot – для перезаписи загрузочного сектора

    После восстановления загрузочной записи компьютер должен запуститься без ошибок.

    Эти инструкции применимы к Windows 10 и Windows 7

    Когда появится эта ошибка, Вам будет предложено нажать Ctrl + Alt +Del для перезагрузки. Но, в большинстве случаев это не поможет, и вы не сможете правильно загрузить свой компьютер. Когда в Windows возникает проблема с жестким диском или разделом, может появиться предупреждение «Произошла ошибка чтения диска».

    Причины ошибок чтения с диска

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

    • Недостаточно ОЗУ.
    • Слабые или неисправные соединения.
    • Повреждён жесткий диск или хранилище данных конфигурации загрузки.

    Как исправить, когда возникает ошибка чтения диска

    Обход потенциальных исправлений по частым причинам этой ошибки может точно определить и устранить проблему.

    • Проверьте оперативную память. Проблема при загрузке может быть результатом проблем с ОЗУ компьютера. Вы можете использовать диагностику памяти Windows, введя mdsched в поле поиска Windows (или начать поиск) и нажав Enter. Инструмент запустится автоматически при перезагрузке компьютера. Кроме того, вы можете попробовать несколько других бесплатных программ для проверки памяти.
    • Замените ОЗУ или, если в вашей системе два модуля ОЗУ, попробуйте поменять их местами. Кроме того, удалите пыль с чипов, проверяя их на случай, если грязь мешает им правильно работать.
    • Проверьте кабели. Ослабленные соединения или неисправные кабели могут вызвать проблемы с загрузкой, а также ошибки жёсткого диска. Ищите отсоединенные кабели. Если возможно, замените кабели запасными. По крайней мере, отсоедините их, осмотрите кабели на предмет повреждений, а затем надёжно установите их на место.
    • Проверьте жесткий диск. Это может означать удаление жесткого диска из вашего текущего компьютера и подключение его к работающему компьютеру, где вы можете сканировать поврежденные сектора. Это может помочь вам определить, можно ли устранить проблему, или вам нужен новый жесткий диск (HDD) и новая установка Windows.
    • Сбросить BIOS. Если BIOS вернуть к настройкам по умолчанию, то может помочь решить проблему. Получите доступ к BIOS при запуске и найдите опцию загрузки настроек BIOS по умолчанию, которая может быть одной из следующих или похожих:
    • Загрузить настройки BIOS по умолчанию
    • Загрузите стандартные настройки
    • Загрузить отказоустойчивые значения по умолчанию

    Еще немного информации

    Если вы не можете запустить компьютер и видите ошибку чтения с диска, может быть повреждено хранилище данных конфигурации загрузки (BCD), отсутствует или неправильно настроено. Если это проблема, то восстановление BCD может быть решением. Кроме этого, для устранения других проблем при запуске, вы также можете использовать инструмент Bootrec.exe. Например, команда fixmbr позволит восстановить поврежденную основную загрузочную запись, а команда fixboot может записать новый загрузочный сектор раздела.

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

    Восстановление данных

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

    Исправление ошибки

    Существует несколько несложных манипуляций, которые способны исправить ошибку.

    Проверка специальными программами (Test Disk, DMDE)

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

    Инструкция по восстановлению:

    1. Нужна Live CD-флешка с записанной на нее программой Test Disk. Можно скачать со специализированных сайтов или воспользоваться с целым набором полезных утилит по работе с диском. Для создания загрузочной флешки можно использовать Win Setup From USB, Ultra ISO или Daemon Tools Ultra.
    2. Включить компьютер и запустить его со съемного накопителя. Для этого можно внести настройки «Boot» в BIOS, установив флешку приоритетным устройством для запуска. Еще один вариант: во время загрузки системы нажать F9 (появится подсказка), далее выбрать накопитель.
    3. В окне утилиты активировать «Create a new log file», отказываться от файла логов не стоит.
    4. Выделить проблемный диск и нажать «Proceed». В качестве вида разделов стоит установить Intel.
    5. Использовать функцию «Analyse current partition…».
    6. Если результат работы программы оказался удачным, тогда выбрать действие «Backup». В противном случае, запустить повторное сканирование.
    7. Весь список готов, светится зелёным? Хорошо, нажать «Ок» и пробовать загрузить Windows. Если быстрому сканированию не удалось помочь, выбрать «Deep search».

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

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

    Полезные советы:

    1. Если незадолго до появления ошибки внутри компьютера проводились какие-то работы, то следует проверить надежность подключения кабелей. Бывает и такое, что системный блок стоял без крышки, а кабель задел один из домочадцев или животное. Стоит извлечь SATA-шину со стороны жёсткого диска и материнской платы, а затем её переподключить. Еще имеет смысл сменить кабель на другой. Это поможет исключить риск его выхода из строя.
    2. Ошибка появилась после подключения дополнительного диска? Нужно попробовать отсоединить его и проверить как загружается система с одним HDD. Также стоит попробовать подключить диск к другому SATA-порту.
    3. Проверка качества контактов. Окисление особенно часто происходит в компьютерах, которые давно не эксплуатировались. Рекомендуется извлечь кабеля и проверить их качество.

    Проверка оперативной памяти

    При наличии доступа к Windows проще удостовериться, что оперативная память полностью исправна. Когда система не запускается, то придется снова использовать Live CD-флешку с утилитой memtest86+.

    Инструкция к действию:

    1. Вытащить из компьютера всю оперативную память, кроме одной планки.
    2. Подключить флешку с memtest86+ и запустить ее. Сразу появится автоматическая проверка памяти. По завершению тестирования отобразятся найденные ошибки, если таковые есть. Их особенности стоит посмотреть в сети, переписав код ошибки.
    3. Выключить компьютер, установить другой модуль памяти и повторить прошлое действие. Выполнить процедуру нужное количество раз в зависимости от планок ОЗУ.

    Обновить БИОС или сбросить к стандартным настройкам

    Если удалось вспомнить, что предпосылкой к появлению ошибки стала работа с БИОСом, тогда следует:

    1. Сбросить настройки. Процедуру часто приходится выполнять после обновления БИОС. Для этого достаточно перезагрузить ПК, во время запуска открыть BIOS (F2 или Del) и выбрать опцию на главном экране «Load Optimized Defaults». Название пункта может немного отличаться.
    2. Настроить БИОС после сброса. По завершению на странице с настройками SATA следует правильно определить тип AHCI/IDE (можно попробовать каждый).
    3. Установить правильный порядок загрузки. На странице «Boot» нужно назначить в качестве первоочередного устройства для запуска именно жесткий диск. Часто эту настройку меняют в момент установки Windows с флешки или диска.
    4. Обновить BIOS. Практически каждый производитель выпускает специальные утилиты для обновления БИОСа. Остается только сделать загрузочную флешку с ней, запуститься с накопителя и включить обновление.

    Auto dump

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

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

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

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

    Ошибка «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» — «ограничение кучи рабочего стола»);
    • Некорректная работа с памятью ряда программ (наиболее часто это игровые программы);
    • Не оптимальный размер файла подкачки, с которым работает система.

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

    В некоторых редких случаях пользователь torrent-клиента может столкнуться с ошибкой «Write to disk. Отказано в доступе». Такая проблема возникает тогда, когда торрент-программа пытается скачать файлы на жесткий диск, но сталкивается с некоторыми препятствиями. Обычно, при такой ошибке загрузка останавливается примерно на 1% — 2%. Существует несколько возможных вариантов возникновения данной проблемы.

    Причины возникновения ошибки

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

    Как уже было упомянуто, ошибка Write to disk довольно редкая и имеет несколько причин возникновения. Чтобы её исправить вам понадобится несколько минут.

    Причина 1: Блокировка вирусами

    Вирусное ПО, которое могло поселиться в системе вашего компьютера, может принести множество проблем, среди которых и ограничение доступа torrent-клиента к записи на диск. Рекомендуется использовать портативные сканеры на выявление вирусных программ, так как обычный антивирус может не справиться с данной задачей. Ведь если он упустил эту угрозу, то есть вероятность того, что он совсем её не найдёт. В примере будет использоваться бесплатная утилита Doctor Web Curelt!. Вы можете просканировать систему любой другой удобной вам программой.

      Запустите сканер, согласитесь с участием в статистике Доктор Веб. После нажмите «Начать проверку».

    Начнётся процесс проверки. Он может длиться несколько минут.

    Причина 2: Недостаточно свободного места на диске

    Возможно диск, на который загружаются файлы заполнен до отказа. Чтобы освободить немного места, придётся удалить некоторые ненужные объекты. Если у вас ничего такого нет удалять, а места мало и некуда перенести, то стоит воспользоваться облачными хранилищами, которые бесплатно предлагают гигабайты пространства. Например, подойдут Google Drive, Dropbox и другие.

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

    1. В программе Ccleaner перейдите во вкладку «Сервис», а потом в «Поиск дублей». Вы можете настроить нужные вам параметры.
    2. Когда нужные галочки будут поставлены нажмите «Найти».

    Причина 3: Некорректная работа клиента

    Возможно, torrent-программа стала некорректно работать или её настройки были повреждены. В первом случае нужно перезапустить клиент. Если же вы подозреваете, что проблема в повреждённом компоненте программы, нужно переустановить torrent с чисткой реестра или попытаться скачать файлы с помощью другого клиента.
    Чтобы устранить проблему записи на диск, попробуйте перезапустить торрент-клиент.

      Полностью выйдите с торрента, нажав на соответствующий значок в трее правой клавишей мыши и выбрав «Выход» (пример показан на BitTorrent, но практически во всех клиентах все аналогично).

    Теперь нажмите на ярлык клиента правой кнопкой и выберите «Свойства».

    В окне выберите вкладку «Совместимость» и поставьте галочку на пункте «Выполнять эту программу от имени администратора». Примените изменения.

    Если у вас Windows 10, то есть смысл поставить режим совместимости с Windows XP.

    Во вкладке «Совместимость» поставьте галочку напротив «Запустить программу в режиме совместимости с» и в нижнем списке настройте «Windows XP (пакет обновления 3)».

    Причина 4: Путь сохранения файла написан кириллицей

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

      Зайдите в клиенте в «Настройки»«Настройки программы» или используйте сочетание Ctrl+P.

  • Во вкладке «Папки» пометьте галочкой «Перемещать загружаемые файлы в».
  • Нажав кнопку с тремя точками, выберите папку с латинскими буквами (убедитесь, что путь к папке не состоит из кириллицы).
  • Если у вас есть незавершённая загрузка, кликните на неё правой клавишей и наведите на «Дополнительно»«Загружать в» выбрав соответствующую папку. Это нужно проделать для каждого недозагруженного файла.

    Другие причины

    • Возможно ошибка записи на диск связана с кратковременным сбоем. В таком случае, перезагрузите компьютер;
    • Антивирусная программа может блокировать torrent-клиент или как раз сканировать недогружённый файл. Отключите защиту на некоторое время для нормальной закачки;
    • Если один объект загружается с ошибкой, а остальные нормально, то причина кроется в криво залитом torrent-файле. Попробуйте совсем удалить загружённые фрагменты и закачайте их заново. Если этот вариант не помог, то стоит найти другую раздачу.

    В основном, для устранения ошибки «Отказано в доступе Write to disk», используют запуск клиента от имени администратора или смену директории (папки) для файлов. Но остальные методы тоже имеют право жить, ведь проблема не всегда может ограничиваться лишь двумя причинами.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    By Rodin | Last Updated November 07, 2019

    • Facebook
    • Twitter
    • Linkedin
    • Reddit

    Summary :

    Steam is a popular social gaming website where you can buy, play, and discuss games. But, have you ever received Steam disk write error while installing or updating games? Were you ever able to find an effective solution? If you had a difficult time, this post should be helpful to you.

    Quick Navigation :

    Steam Disk Write Error While Downloading/Installing

    While installing or updating a game like Dota 2, Fallout 4, Grand Theft Auto V and PlayerUnknown’s Battlegrounds, Steam sometimes displays an error message which reads, «An error occurred while installing/updating [game title] (disk write error)».

    See image below.

    Commonly known as Steam disk write error, this issue can occur anytime when a game is updated or installed on Steam, leading to Steam being unable to complete the installation. Disk write error shown in the parenthesis is the specific reason responsible for the error.

    How to fix disk write error Steam? If you are having troubles updating a game or installing a game on Steam due to a disk write error now, try the following solutions out.

    Steam Disk Write Error Fix Provided by Users

    1. Run as Administrator

    Go to the file location of Steam (default location is C:/program files[86]/Steam). Right-click on the steam.exe and go to properties. Head to the Compatibility tab in properties and make sure, «run this program as an administrator», is ticked. Click Apply and run Steam again. Check if the Steam disk write error has been solved.

    2. Delete the 0KB File

    This solution is provided by a Reddit user and many users rate it useful. In short, he just solved this issue by going into Program Files (x86)/Steam/steamapps/common and simply deleting a file titled «Fallout» that was 0KB in size. When he re-launched the game, Fallout 4 loaded up perfectly. This solution might also be useful when updating similar games. See the original post here.

    3. Remove Write Protection

    When a disk is write-protected, you’re unable to modify the formatting and writing. This is another possible reason for the Steam disk write error. Please make sure the directory of Steam is NOT read-only. Then right click your Steam launch icon and click Run as administrator.

    But if the disk is already written protected, you can simply clear write protection and remove the error using command.

    Take Windows 10 for instance.

    Run Command Prompt as an Administrator. Then type these commands one by one and press the Enter key after each:

    • diskpart
    • list disk
    • select disk # (# is the number of the hard drive with which you’re getting the disk error)
    • attributes disk clear readonly

    You may now close Command Prompt, repeat the downloading/upgrading process and check if the Steam disk write error Windows 10 disappeared.

    4. Delete Corrupted Files in Log

    Go to Steam/logs/content_log and open it. Scroll to the bottom of the log file, and look for a «failed to write» error, which will list the file name & path of the issue. Please follow the path to delete the corrupted file, and then repeat the downloading/upgrading.

    5. Check Hard Drive for Errors

    All storage drives/devices can be affected by file corruption, especially if it has run for years or running under a heavy load. You’ll want to work with a tech support specialist to investigate possible issues with your Steam hard drive.

    For Windows: My PC -> Right-click on the drive for Steam -> Properties -> Tools -> Error checking

    If you are not specialized, but want to do it by yourself, MiniTool Partition Wizard Free is a good recommendation. Its Check File System and Surface Test feature can lead you through the disk check process easily and quickly. Applies to all Windows 7/8/8.1/10 editions.

    Download this freeware, install it on computer and follow the guide below:

    Step 1. Launch this free partition magic to the main interface. At the disk map area, select the partition that has Steam installed and choose Check File System from the Check Partition group.

    Step 2. In the new emerging window, select Check & fix detected errors and click the Start button. Please wait patiently until it finishes the job. If any error is found, Partition Wizard will try its best to fix it.

    Now it is time to test whether there are bad sectors on the drive bringing Steam disk write error to Windows 10/8/7.

    Step 3. Select the disk that has Steam installed and reports Steam disk write error and then choose Surface Test from the Check Partition group.

    Step 4. In the new emerging window, click Start Now on the top right corner to begin the check. Note that if there are read errors found, they will be marked with red color. On the contrary, if no bad sector is found, all will be marked with green.

    If no error is found, go back to Steam and see if the Steam game update is stuck still.

    If a lot of errors are found and your drive looks like a failing disk, this may be responsible for the Steam downloading/upgrading error. In this case, it is better for you to back up data on the drive as soon as possible and then replace the drive. Luckily, MiniTool Partition Wizard Free is also capable of doing this work.

    Follow the simple guide below:

    Step 1. At the disk map error, select the hard drive which has Steam installed and choose Copy Disk from the left action panel.

    Step 2. Select a target disk to save all data on the source disk. Be aware that all data on the selected target disk will be cleaned for a successful clone. Thus, it is necessary to transfer important data to a safe place.

    Step 3. Review the changes to be made or change the copy options according to your preference.

    Step 4. Read how to boot from the target disk if you have such an intention.

    Step 5. Click Apply to put the pending operations into effect and wait patiently until MiniTool Partition Wizard finishes.

    But if the above user’s experience does not help, you may continue reading the solutions put forward by Steam.

    Official Steam Troubleshooting

    1. Restart Steam and Computer

    Needless to say, restarting is always the first thing to try. Please restart Steam and then repeat the downloading/upgrading. If the Steam disk write error persists, restart your computer.

    2. Clear Download Cache

    Clearing the download cache of Steam will force the Steam client to flush locally cached configuration data and acquire it from the Steam server again.

    Please follow this path to do the clean: Steam > Settings > Downloads > Clear Download Cache

    3. Reinstall Steam

    Reinstalling Steam may fix potential issues with Steam client and service files while preserving all installed games. Remember: DO NOT uninstall (this may delete all game content), just reinstall Steam to the same location.

    4. Repair Library Folder

    The Steam Library contains all your installed games which should be writable by all users so as to download or update properly. However, sometimes Steam game update stuck because the user permissions changed and need to be refreshed.

    Please follow this path to do the repair: Steam > Settings > Downloads > Steam Library Folders > Right click on folder > Repair Folder

    5. Verify Local Files

    Bad hardware, software crashes, and power surges can corrupt the game folders. You can use Steam to verify the integrity of these files and fix them if necessary.

    Find Game in Library > Right click on Properties > Local Files > Verify Integrity of Game Files

    6. Change Download Region

    The Steam content system is divided into geographical regions. The Steam client automatically detects its current region and uses content servers located in that region.

    Sometimes, servers in a specific region may be slow or overloaded, leading to Steam disk write error while downloading. You can switch to a different download region, using another set of content servers to have a try.

    Please go to Steam > Settings > Downloads > Download Region. You may need to test several regions other than your own.

    7. Move Game Folder

    It is worth trying to install the game on another hard drive in case it is the hard drive failure. If this works, you can then create a new Steam Library folder on this drive and install new games or move the already installed games into this Steam Library folder.

    Please go to Steam > Settings > Downloads > Steam Library Folders > Add New Library Folder

    8. Refresh Local Network Hardware

    Network hardware can get into a slow/broken state after running for a long time. Restarting all modems & routers might be helpful to fix Steam disk write error.

    9. Update System & Drivers

    Make sure your operating system and hardware drivers are all up to date and repeat the downloading/upgrading.

    For Windows: Start > Search «update» > Run «Check for Updates»

    For Mac: drivers cannot be updated separately; you can only update the operating system to the latest.

    10. Investigate Firewalls

    Certain firewalls may prevent Steam from talking to its servers. You can temporarily disable it for testing purpose. If that’s the reason, it may be necessary to add exceptions in your firewalls for Steam.

    11. Investigate Anti-Virus

    Anti-Virus hooks deep into the operating system and can affect disk and network operations, further leading to issues with Steam. Besides, some games use copy protection technology which may appear as malicious software to an antivirus scanner, resulting in Steam disk write error. You can completely disable the Anti-Virus and check if the disk write error stopped.

    12. Investigate Other Programs & Services

    Software that modifies or monitors systems and disk or network activity can cause issues while downloading or running a game. These programs and services can run in the background and are typically associated with software like Anti-Virus, ad-blockers, web-optimizers, firewalls, system cleaners, etc.

    You may work with a tech support specialist to ensure that these services & programs are not interfering with Steam. You may even need to temporarily disable them for testing purposes.

    13. Disable Overclocking

    Some users overclock their hardware to gain the best performance without accepting manufacturers’ recommended settings. This can cause memory and file corruption and should be disabled (usually you can do this in the computer BIOS).

    14. Test Online Connection

    Some Internet providers cache or compress online data to save bandwidth. This can cause issues with Steam. It is good to try connecting your PC to an entirely different network from a different service provider to fix disk write error Steam.

    15. Check RAM for Errors

    Memory errors can cause issues with the Steam installation process, as well as gameplay. You’ll want to work with a tech support specialist to investigate possible issues with your system memory.

    For Windows: Start -> Find «mdsched» and run Windows Memory Diagnostic

    Bottom Line

    Here we come to the end of this post. Now you know what Steam disk write error installing/updating is and how to resolve it with multiple methods. Hopefully some of our suggestions help you solve any issues early on.

    If you have any other tried and true strategies on the subject of how to remove the disk write error on Steam, let us know by typing your suggestions in the comment section below. If you have any difficulty in using MiniTool software, you can send email to [email protected] .

    Если Вы скачиваете торренты из сети, то наверняка сталкивались с таким явлением: программа внезапно прекращает загрузку файлов и сообщает об ошибке. В случае с utorrent она звучит как «Отказано в доступе Write to disk». В случае с qbittorrent – «Произошла ошибка ввода/вывода для торрента».

    Почему возникает ошибка торрента? Виной тому может быть целый ряд факторов… Например, нехватка места на жестком диске (как на скриншоте выше). Также причиной может быть нарушение целостности файлов в результате сбоя работы диска. Ну а уже сбой диска может вызываться в свою очередь целым «букетом» факторов: наличие битых bad-секторов, плохой контакт разъема шлейфа, деятельность вирусов и пр.

    Все вновь загружаемые файлы будут помещаться в новую папку, а Вам осталось туда же перенести имеющиеся на закачке торренты. Для этого выделите их в списке загрузок, выберите опцию «Дополнительно» -> «Загружать в…» и укажите новую папку.

    Друзья, помог ли Вам справиться с ошибкой загрузки и доступа к торренту один из этих способов? Делитесь в комментариях.

    Содержание

    1. A disk read error occurred — как исправить
    2. Причины ошибки disk read error occurred и способы исправления
    3. Если ошибка вызвана повреждением файловой системы
    4. Повреждение загрузчика ОС
    5. Проблемы с настройками БИОС/UEFI
    6. Проблема с подключением жесткого диска
    7. «A disk read error occurred» — как исправить эту ошибку чтения диска (появилась сразу после включения компьютера)
    8. Что можно посоветовать для исправления ошибки чтения диска
    9. ШАГ 1
    10. ШАГ 2
    11. ШАГ 3 (если не определяется диск)
    12. ШАГ 4 (если диск определяется)
    13. A disk read error occurred press ctrl alt del – универсальная инструкция по устранению
    14. Общая информация
    15. Изменение приоритета загрузки
    16. Восстановление файловой системы и загрузчика
    17. Настройка Биос
    18. Разбираемся с жестким диском
    19. Дополнительные способы

    A disk read error occurred — как исправить

    Иногда при включении компьютера можно столкнуться с ошибкой «A disk read error occurred. Press Ctrl+Alt+Del to restart» на черном экране, при это перезагрузка, как правило, не помогает. Ошибка может возникнуть после восстановления системы из образа, при попытке загрузки с флешки, а иногда и без каких-то видимых причин.

    В этой инструкции подробно об основных причинах ошибки A disk read error occurred при включении компьютера и о способах исправить проблему.

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

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

    Среди наиболее распространенных причин, вызывающих появление ошибки «A disk read error occurred» можно выделить следующие

    1. Повреждение файловой системы на диске (например, в результате неправильного выключения компьютера, отключения электричества, сбоя при изменении разделов).
    2. Повреждение или отсутствие загрузочной записи и загрузчика ОС (по вышеозначенным причинам, а также, иногда, после восстановления системы из образа, особенно созданным сторонним ПО).
    3. Неправильные настройки БИОС (после сброса или обновления БИОС).
    4. Физические проблемы с жестким диском (диск вышел из строя, давно работал не стабильно, или после падения). Один из признаков — при работе компьютер то и дело зависал (когда включался) без видимых причин.
    5. Проблемы с подключением жесткого диска (например, вы плохо или неправильно его подключили, поврежден кабель, повреждены или окислены контакты).
    6. Недостаток питания вследствие выхода блока питания из строя: иногда при недостатке питания и неисправностях блока питания компьютер продолжает «работать», но некоторые компоненты могут самопроизвольно отключаться, в том числе — жесткий диск.

    Исходя из этой информации и в зависимости от ваших предположений о том, что способствовало появлению ошибки, можно попробовать исправить её.

    Прежде чем приступать, убедитесь, что диск, с которого выполняется загрузка, виден в БИОС (UEFI) компьютера: если это не так, вероятнее всего, проблем в подключении диска (перепроверьте подключение кабелей как со стороны самого диска, так и со стороны материнской платы, особенно если у вас системный блок находится в открытом виде или вы недавно выполняли какие-либо работы внутри него) или в его аппаратной неисправности.

    Если ошибка вызвана повреждением файловой системы

    Первое и самое безопасное — выполнить проверку диска на ошибки. Для этого потребуется загрузить компьютер с какой-либо загрузочной флешки (или диска) с утилитами диагностики или с обычной загрузочной флешки с любой версией Windows 10, 8.1 или Windows 7. Приведу метод проверки при использовании загрузочной флешки Windows:

    1. Если загрузочной флешки нет, создайте её где-то на другом компьютере (см. Программы для создания загрузочной флешки).
    2. Загрузитесь с неё (Как поставить загрузку с флешки в БИОС).
    3. На экране после выбора языка нажмите «Восстановление системы».
    4. Если у вас была загрузочная флешка Windows 7, в средствах восстановления выберите «Командная строка», если 8.1 или 10 — «Поиск и устранение неисправностей» — «Командная строка».
    5. В командной строке введите по порядку команды (нажимая Enter после каждой из них).
    6. diskpart
    7. list volume
    8. В результате выполнения команды на шаге 7 вы увидите букву системного диска (в данном случае она может отличаться от стандартной C), а также, при их наличии — отдельные разделы с загрузчиком системы, которые могут не иметь буквы. Для проверки её потребуется назначить. В моем примере (см. скриншот) на первом диске есть два раздела, которые не имеют буквы и которые имеет смысл проверить — Том 3 с загрузчиком и Том 1 со средой восстановления Windows. В следующих двух командах назначаю букву для 3-го тома.
    9. select volume 3
    10. assign letter=Z (буква может быть любая не занятая)
    11. Аналогично назначаем букву для других томов, которые следует проверить.
    12. exit (этой командой выходим из diskpart).
    13. Поочередно проверяем разделы (главное — проверить раздел с загрузчиком и системный раздел) командой: chkdsk C: /f /r (где C — буква диска).
    14. Закрываем командную строку, перезагружаем компьютер, уже с жесткого диска.

    Если на 13-м шаге на каком-то из важных разделов были найдены и исправлены ошибки и причина проблемы была именно в них, то есть вероятность, что следующая загрузка пройдет успешно и ошибка A Disk Read Error Occurred вас больше не потревожит.

    Повреждение загрузчика ОС

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

    Проблемы с настройками БИОС/UEFI

    Если ошибка появилась после обновления, сброса или изменения параметров БИОС, попробуйте:

    • Если после обновления или изменения — сбросить параметры БИОС.
    • После сброса — внимательно изучить параметры, особенно режим работы диска (AHCI/IDE — если не знаете, какой выбрать, попробуйте оба варианта, параметры находятся в разделах, связанных с конфигурацией SATA).
    • Обязательно проверьте порядок загрузки (на вкладке Boot) — ошибка может быть вызвана и тем, что нужный диск не выставлен в качестве устройства загрузки.

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

    Проблема с подключением жесткого диска

    Рассматриваемая проблема может быть вызвана и проблемами с подключением жесткого диска или работой SATA шины.

    • Если вы проводили работы внутри компьютера (или он стоял открытым, и кто-то мог задеть кабели) — переподключите жесткий диск как со стороны материнской платы, так и со стороны самого диска. Если есть возможность, попробуйте другой кабель (например, от DVD-привода).
    • Если вы установили новый (второй) накопитель, попробуйте отключить его: если без него компьютер загружается нормально, попробуйте подключить новый диск к другому разъему SATA.
    • В ситуации, когда компьютер долгое время не использовался и хранился не в идеальных условиях, причиной могут быть окисленные контакты на диске или кабеле.

    Если ни один из способов не помогает решить проблему, при этом жесткий диск «виден», попробуйте переустановку системы с удалением всех разделов на этапе установки. Если через короткий промежуток после переустановки (или сразу после неё) проблема вновь заявит о себе — велика вероятность, что причина ошибки в неисправности жесткого диска.

    Источник

    «A disk read error occurred» — как исправить эту ошибку чтения диска (появилась сразу после включения компьютера)

    Сегодня из ниоткуда на экране ПК появилась одна пакость: «A disk read error occurred. Press Ctrl+Alt+Del». С системой ничего не делал: не удалял, не обновлял, не устанавливал. и т.д.

    Есть подозрение только на одно: я накануне часа 2 вечером копировал фильмы на флешки и DVD-диски. Может с диском что-то случилось? Подскажите, как это можно исправить.

    Если перевести эту ошибку на русский (для более простого понимания широкой аудитории) — то она означает, что «Произошла ошибка чтения диска». Возникать она может не всегда из-за поломки диска (хватает и других причин: сбившиеся настройки BIOS; неправильное отключение, приведшее к ошибкам файловой системы и т.д.).

    Ниже, постараюсь в пошаговом и простом «стиле» представить первичную диагностику. Думаю, большинство с ней справятся. 👌

    Что можно посоветовать для исправления ошибки чтения диска

    ШАГ 1

    И так, первый совет банальный : проверьте и отключите от компьютера все флешки, CD/DVD-диски, внешние HDD, дискеты и т.д. (тем более, если вы накануне что-то записывали на эти типы накопителей).

    Примечание: многие пользователи, скинув на внешний накопитель данные, забывают его в USB и выключают компьютер. А затем, при включении, ПК начинает искать загрузочные записи на этой самой флешке (например) — разумеется, их не находит и возникает ошибка*!

    Флешка подключена к USB-порту!

    👉 Дополнение: если к компьютеру подключен сканер, принтер, телефон и пр. периферийные устройства — отключите их также на время диагностики. Оставьте мышь, клавиатуру, монитор — т.е. самый «минимум».

    Если накануне устанавливали доп. диски (HDD/SSD и пр.) — отключите их!

    ШАГ 2

    Если первый шаг не помог — следующее, что я порекомендую — это проверить настройки BIOS (UEFI) компьютера.

    1) Как войти в БИОС (BIOS) на компьютере / ноутбуке.

    👉 В первую очередь в BIOS нужно проверить 2 вещи:

    • определяется ли диск (на котором установлена Windows). Видна ли его модель/размер? Если не определяется — см. шаг 3.
    • стоит ли диск первым в очереди* загрузки ( примечание : в BIOS можно задавать приоритет накопителей: т.е., например, можно задать, чтобы компьютер сначала искал загрузочную флешку, а если ее нет, загружался с диска. Нам нужно сразу же указать диск. ).

    Как правило, модель диска (если он определился) можно увидеть сразу же после входа в BIOS (на странице «Main»). Установлен ли этот диск первым по приоритету загрузки — см. раздел BOOT. Пример привел на фотографиях ниже. 👇

    Диск определяется (уже неплохо)

    Boot Option #1 — указан диск с ОС Windows (настройки BIOS)

    Примечание : после проведенных изменений в BIOS — не забудьте сохранить настройки. Как правило, для этого достаточно нажать клавишу F10.

    ШАГ 3 (если не определяется диск)

    Это явно указывает на какую-то аппаратную причину. (не всегда не определяющийся диск начал сыпаться и нуждается в замене).

    Для начала я бы посоветовал отключить системный блок от питания и посмотреть, не отошел ли какой-нибудь шлейф от диска. Желательно попробовать подключить диск к другому разъему на мат. плате (благо на любой мат. плате есть по несколько SATA-портов).

    Не отошли ли шлейфы.

    Если диск компьютер так и не увидел, то первое в чем необходимо убедиться — исправен ли он вообще, не пришел ли в негодность. Для этого лучше всего диск подключить к другому компьютеру / ноутбуку. Если у вас есть спец. переходники — диск можно даже подключить к USB-порту (пару ссылок ниже о том, как это сделать).

    Подключение SATA и кабеля питания к диску

    👉 Кстати!

    Компьютер можно использовать даже без диска! Для этого вам понадобиться спец. подготовленная флешка (так называемый «живой» LiveCD) — Windows будет загружена прямо с нее (и она мало чем отличается от обычной ОС).

    О том, где загрузить нужный ISO образ с LiveCD и как его правильно подготовить — можете узнать из этой статьи.

    ШАГ 4 (если диск определяется)

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

    Для дальнейшей работы нам понадобиться 👉 LiveCD-флешка от Сергея Стрельца.

    👉 Загрузившись с нее — необходимо открыть программу Victoria и проверить диск (оценить его состояние — не начал ли он сыпаться (из-за этого, кстати, «часть» диска могла перестать читаться и, как следствие, ошибка «A disk read error occurred»)).

    Тестирование быстрое (Quick) — Victoria 5

    👉 Если с самим диском всё в порядке — не лишним было бы проверить файловую систему на ошибки (делается также с LiveCD-флешки!).

    Для этого необходимо будет открыть командную строку, ввести chkdsk C: /f /r и нажать Enter. 👇 В течении 5-15 мин. (в среднем) диск будет проверен, а ошибки исправлены.

    👉 Если вышеприведенное не помогло, то как вариант, можно попробовать с помощью установочной флешки (с Windows) восстановить систему (загрузчик ОС). О том, как это сделать — см. эту заметку.

    Восстановление системы (при установке ОС)

    👉 Ну и как «последняя инстанция» возможно стоит переустановить систему, или лучше сказать установить вторую ОС в свободное место диска (благо, это можно сделать без затрагивания «старой» Windows, без потери данных и форматирования всего диска).

    Источник

    A disk read error occurred press ctrl alt del – универсальная инструкция по устранению

    Как правило, ошибка «A disk read error occurred. Press Ctrl+Alt+Del to restart» возникает при включении компьютера, при этом не исправляется обычной перезагрузкой. На, то есть несколько причин, от программных до технических. Что делать в этой ситуации? Давайте разбираться.

    Общая информация

    В переводе на русский «A disk read error occurred» означает ошибку чтения диска. Но это не говорит о том, что есть проблемы с самим жестким диском или SSD на котором установлена Windows.

    Выделю распространенные причины появления сбоя.

    1. Повредилась файловая система. Обычно это происходит при неправильном выключении компьютера, например, после резкого выключения электричества или наличии вирусов.
    2. Повреждение загрузчика «MBR».
    3. Неверные настройки BIOS, в том числе измененный порядок загрузки устройств.
    4. Неисправность жесткого диска. Особенно если до появления проблемы наблюдались периодические зависания, странные звуки или было физическое воздействие (уронили, потрясли, перегрелся).
    5. Неправильно или неплотно подключили HDD.
    6. Недостаток питания. Несмотря на то, что винчестеры потребляют мало мощности, плохой или полуживой блок питания может нарушать его работу.

    Перед тем как переходить к исправлению проблемы убедитесь, что накопитель виден в БИОС. Если его там нет, то проверьте подключение и при необходимости замените SATA кабель. Иногда достаточно протереть контактные дорожки ластиком. Если это не помогло, то скорее всего он неисправен и подлежит замене.

    Изменение приоритета загрузки

    Проще всего восстановить порядок загрузки можно отключив от компьютера второстепенные устройства (внешние HDD, флешки, карты памяти и прочие).

    Но есть еще и ручной способ.

    1. Зайдите в BIOS и найдите параметр «Boot Option» или аналогичный.
    2. Установите на первое место накопитель с Windows и сохраните изменения.

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

    Это самый безопасный способ, который может помочь в восстановлении работы ПК. Обзаведитесь загрузочной флешкой, LiveCD или WinPE. Буду показывать на примере WinPE (мне нравится сборка от Sergei Strelec ). Принцип записи этой сборки на флешку тот же, что и с Windows, поэтому проблем возникнуть не должно.

    1. Загружаете с накопителя ОС и запускаете командную строку (найти ее можно в Пуске).
    2. Вводите chkdsk C: /f /r – где под буквой «C» подразумевается раздел с операционной системой, которая вышла из строя. Жмете «Enter». Начнется автоматическая проверка и исправление ошибок.
    3. Теперь выполните другую команду — bcdboot C:windows. Она восстановит загрузочную область.

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

    Настройка Биос

    Иногда, изменение настроек Биос влечет за собой появления различных ошибок. Ситуация налаживается следующим образом.

    1. Сбросом параметров. Воспользуйтесь опцией «Optimized Defaults» или аналогичной.
    2. Найдите опцию, отвечающую за режим работы накопителя. Обычно это «Sata Mode» ,«Sata Type». Установите значение «AHCI». Если и так стоит «AHCI», то измените на «IDE». Сохраните изменения и перезапуститесь.
    3. Если проблема возникла после обновления BIOS. То установите старую версию. Загружается с официального сайта материнской платы или ноутбука. Иногда, наоборот, помогает обновление Попробуйте оба варианта.

    Если настройки не сохраняются, то замените батарею питания, скорее всего она отжила свое. Производить замену желательно 3-5 лет.

    Разбираемся с жестким диском

    Рассмотрим несколько типичных проблем и попробуем их исправить.

    1. Проверьте подключение носителя. Особенно, если до появления сбоя проводились какие-либо работы внутри корпуса ПК. Также можно подключить его к другому порту.
    2. Замените SATA кабель.
    3. Удостоверьтесь, что винчестер исправен. Проведите сканирование через «Victoria» или «MHDD». Иногда, казалось бы, нормальный HDD с хорошим смартом и результатами тестирования все равно может быть неисправным. Подтверждать это будет невозможность установить Windows, зависания и сбои приложений.

    Если и это не избавило от ошибки «A disk read error occurred», то напоследок предложу еще несколько вариантов. Маловероятно, что они помогут, но попробовать стоит.

    Дополнительные способы

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

    1. Протестируйте оперативную память. Предварительно очистив их от пыли. При обнаружении неисправности замените битые планки. Также если установлено два или более модулей ОЗУ, попробуйте поменять их местами или вынуть все, кроме одного.
    2. Проведите дефрагментацию. Скептически отношусь к этому пункту.
    3. Переустановите ОС. Возможно, используется «кривая» или поврежденная сборка.
    4. Проведите сканирование на вирусы.
    5. Редко виновниками становится материнская плата (в том числе SATA разъем) или блок питания. Поэтому протестируйте HDD на другом компьютере.
    6. Бывает, что системный диск с операционкой пропадает (удаляется) сам по себе. Решается восстановлением раздела с помощью специальных программ, например, «Acronis Disk Director» или созданием нового раздела (при этом придется заново устанавливать ОС). Если это повторяется часто, то желательно заменить такой накопитель.
    7. Посмотрите на контакты на обратной стороне платы (нужно открутить отверткой), возможно, произошло окисление. Почистите их и прикрутите плату обратно. Выполняйте эту процедуру осторожно и только в крайнем случае, когда нечего терять.

    Напишите в комментариях, если возникли сложности. Буду рад помочь.

    Источник

    Все мы сталкивались с различными ошибками и все они были разные, был ли это экран смерти, или еще какая-нибудь критическая проблема, но я уверен, что многие сталкивались с такой проблемой, когда, при загрузке Windows появляется черный экран, а вверху слева написаны какие-то английские слова. Сегодня мы поговорим о такой ошибке, как «A disk read error occurred Press Ctrl+Alt+Del to restart». Если перевести на русский, то примерно будет выглядеть так: Диск не читается, нажмите Ctrl+Alt+Del и перезагрузитесь.

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

    1. Операционная система установлена некорректно.

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

    1. Возможно установлена более старая версия ОС поверх новой.
    2. Повреждение диска, например, во время падения ноутбука.
    3. Выключение компьютера происходило с помощью кнопки питания
    4. Эксперимент над логическими разделами
    5. Восстановление системы происходило на раздел, которые практически полностью забит.
    6. Загрузочная запись повреждена вирусом.
    7. Загрузочная запись по ошибке удалена антивирусом.
    8. Диск является довольно старым и изношенным.
    9. Проблема с контактами, контроллерами или шлейфом.
    10. Блок питания неисправен.

    Теперь приступим к решению проблемы. Сначала убедитесь, что диск не имеет аппаратных проблем. Зайдите в BIOS и убедитесь, что диск определяется. Если диск отсутствует, то проверьте на диске контакты, шлейф и прочее, подключите его к другому компьютеру, если он и там не работает, следует отнести диск в сервисный центр.

    Чаще всего появление данной ошибки связано с разрушением MBR-записи (частичным или полным), которая расположена на нулевом секторе и обеспечивает определение логических разделов. Кстати, замечены случаи, что данная ошибка появляется, когда повреждены файлы срытого раздела, называемого «Зарезервировано системой».

    Содержание:

    1. Причины и их решение.
    2. Восстановление загрузочной записи диска (MBR).
    3. Исправление ошибки «BOOTMGR is Missing».
    4. Восстановление данных

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

    Ниже будут описаны причины и способы решения ошибок «A disk read error occurred» или «BOOTMGR is Missing», возникающих из-за проблем с жестким диском, BIOS-ом, повреждением системы вирусным ПО, а также другими неполадками.

    Проверяем скрытый раздел

    Для начала, стоит загрузиться с утилиты Acronis Disk Derector или подобной программы и убедиться, что раздел «Зарезервировано системой» вообще активен. Если такого нет, то нажмите по этому диску ПКМ и нажмите «отметить как активный».

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

    Причины и их решение

    Ошибка «A disk read error occurred» в переводе на русский означает «Ошибка чтения диска». С этого можно сделать вывод, что причиной возникновения ошибки стал один из подключенных носителей. Это может быть, как флешка или дисковод, так и основной жесткий диск.

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

    • Отключить все флешки и другие внешние накопители.
    • Проверить запуск системы только с подключенным HDD.
    • Проверить правильность подключения разъёмов в системном блоке (пыль и болтающиеся неподключенные провода могут вызывать сбои в работе системы).
    • Посмотреть, видит ли система HDD в BIOS.
    • Подключить сбоящий HDD на другом компьютере (необходимо, чтобы убедится в правильности работы материнской платы, блока питания и других компонентов, влияющих на запуск).
    • Провести дефрагментацию сбойного диска на другом компьютере.

    Другие варианты

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

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

    Восстановление загрузочной записи диска (MBR)

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

    Шаг 1. Загружаемся с загрузочной флешки или установочного диска Windows и нажимаем кнопку «Далее».

    Как исправить ошибку «A disk read error occurred» или «BOOTMGR is Missing»

    Шаг 2. На экране выбора языка системы открываем «Восстановление системы».

    Как исправить ошибку «A disk read error occurred» или «BOOTMGR is Missing»

    Шаг 3. В окне восстановления системы выбираем пункт «Поиск и устранение неисправностей».

    Как исправить ошибку «A disk read error occurred» или «BOOTMGR is Missing»

    Шаг 4. Переходим в пункт «Дополнительные параметры» и открываем «Командная строка».

    Как исправить ошибку «A disk read error occurred» или «BOOTMGR is Missing»

    Шаг 5. В открывшемся окне командной строки следует ввести две команды:

    bootrec /fixmbr – для перезаписи загрузочной записи

    bootrec /fixboot – для перезаписи загрузочного сектора

    После восстановления загрузочной записи компьютер должен запуститься без ошибок.

    Эти инструкции применимы к Windows 10 и Windows 7

    Когда появится эта ошибка, Вам будет предложено нажать Ctrl + Alt +Del для перезагрузки. Но, в большинстве случаев это не поможет, и вы не сможете правильно загрузить свой компьютер. Когда в Windows возникает проблема с жестким диском или разделом, может появиться предупреждение «Произошла ошибка чтения диска».

    Причины ошибок чтения с диска

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

    • Недостаточно ОЗУ.
    • Слабые или неисправные соединения.
    • Повреждён жесткий диск или хранилище данных конфигурации загрузки.

    Как исправить, когда возникает ошибка чтения диска

    Обход потенциальных исправлений по частым причинам этой ошибки может точно определить и устранить проблему.

    • Проверьте оперативную память. Проблема при загрузке может быть результатом проблем с ОЗУ компьютера. Вы можете использовать диагностику памяти Windows, введя mdsched в поле поиска Windows (или начать поиск) и нажав Enter. Инструмент запустится автоматически при перезагрузке компьютера. Кроме того, вы можете попробовать несколько других бесплатных программ для проверки памяти.
    • Замените ОЗУ или, если в вашей системе два модуля ОЗУ, попробуйте поменять их местами. Кроме того, удалите пыль с чипов, проверяя их на случай, если грязь мешает им правильно работать.
    • Проверьте кабели. Ослабленные соединения или неисправные кабели могут вызвать проблемы с загрузкой, а также ошибки жёсткого диска. Ищите отсоединенные кабели. Если возможно, замените кабели запасными. По крайней мере, отсоедините их, осмотрите кабели на предмет повреждений, а затем надёжно установите их на место.
    • Проверьте жесткий диск. Это может означать удаление жесткого диска из вашего текущего компьютера и подключение его к работающему компьютеру, где вы можете сканировать поврежденные сектора. Это может помочь вам определить, можно ли устранить проблему, или вам нужен новый жесткий диск (HDD) и новая установка Windows.
    • Сбросить BIOS. Если BIOS вернуть к настройкам по умолчанию, то может помочь решить проблему. Получите доступ к BIOS при запуске и найдите опцию загрузки настроек BIOS по умолчанию, которая может быть одной из следующих или похожих:
    • Загрузить настройки BIOS по умолчанию
    • Загрузите стандартные настройки
    • Загрузить отказоустойчивые значения по умолчанию

    Еще немного информации

    Если вы не можете запустить компьютер и видите ошибку чтения с диска, может быть повреждено хранилище данных конфигурации загрузки (BCD), отсутствует или неправильно настроено. Если это проблема, то восстановление BCD может быть решением. Кроме этого, для устранения других проблем при запуске, вы также можете использовать инструмент Bootrec.exe. Например, команда fixmbr позволит восстановить поврежденную основную загрузочную запись, а команда fixboot может записать новый загрузочный сектор раздела.

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

    Восстановление данных

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

    Исправление ошибки

    Существует несколько несложных манипуляций, которые способны исправить ошибку.

    Проверка специальными программами (Test Disk, DMDE)

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

    Инструкция по восстановлению:

    1. Нужна Live CD-флешка с записанной на нее программой Test Disk. Можно скачать со специализированных сайтов или воспользоваться с целым набором полезных утилит по работе с диском. Для создания загрузочной флешки можно использовать Win Setup From USB, Ultra ISO или Daemon Tools Ultra.
    2. Включить компьютер и запустить его со съемного накопителя. Для этого можно внести настройки «Boot» в BIOS, установив флешку приоритетным устройством для запуска. Еще один вариант: во время загрузки системы нажать F9 (появится подсказка), далее выбрать накопитель.
    3. В окне утилиты активировать «Create a new log file», отказываться от файла логов не стоит.
    4. Выделить проблемный диск и нажать «Proceed». В качестве вида разделов стоит установить Intel.
    5. Использовать функцию «Analyse current partition…».
    6. Если результат работы программы оказался удачным, тогда выбрать действие «Backup». В противном случае, запустить повторное сканирование.
    7. Весь список готов, светится зелёным? Хорошо, нажать «Ок» и пробовать загрузить Windows. Если быстрому сканированию не удалось помочь, выбрать «Deep search».

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

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

    Полезные советы:

    1. Если незадолго до появления ошибки внутри компьютера проводились какие-то работы, то следует проверить надежность подключения кабелей. Бывает и такое, что системный блок стоял без крышки, а кабель задел один из домочадцев или животное. Стоит извлечь SATA-шину со стороны жёсткого диска и материнской платы, а затем её переподключить. Еще имеет смысл сменить кабель на другой. Это поможет исключить риск его выхода из строя.
    2. Ошибка появилась после подключения дополнительного диска? Нужно попробовать отсоединить его и проверить как загружается система с одним HDD. Также стоит попробовать подключить диск к другому SATA-порту.
    3. Проверка качества контактов. Окисление особенно часто происходит в компьютерах, которые давно не эксплуатировались. Рекомендуется извлечь кабеля и проверить их качество.

    Проверка оперативной памяти

    При наличии доступа к Windows проще удостовериться, что оперативная память полностью исправна. Когда система не запускается, то придется снова использовать Live CD-флешку с утилитой memtest86+.

    Инструкция к действию:

    1. Вытащить из компьютера всю оперативную память, кроме одной планки.
    2. Подключить флешку с memtest86+ и запустить ее. Сразу появится автоматическая проверка памяти. По завершению тестирования отобразятся найденные ошибки, если таковые есть. Их особенности стоит посмотреть в сети, переписав код ошибки.
    3. Выключить компьютер, установить другой модуль памяти и повторить прошлое действие. Выполнить процедуру нужное количество раз в зависимости от планок ОЗУ.

    Обновить БИОС или сбросить к стандартным настройкам

    Если удалось вспомнить, что предпосылкой к появлению ошибки стала работа с БИОСом, тогда следует:

    1. Сбросить настройки. Процедуру часто приходится выполнять после обновления БИОС. Для этого достаточно перезагрузить ПК, во время запуска открыть BIOS (F2 или Del) и выбрать опцию на главном экране «Load Optimized Defaults». Название пункта может немного отличаться.
    2. Настроить БИОС после сброса. По завершению на странице с настройками SATA следует правильно определить тип AHCI/IDE (можно попробовать каждый).
    3. Установить правильный порядок загрузки. На странице «Boot» нужно назначить в качестве первоочередного устройства для запуска именно жесткий диск. Часто эту настройку меняют в момент установки Windows с флешки или диска.
    4. Обновить BIOS. Практически каждый производитель выпускает специальные утилиты для обновления БИОСа. Остается только сделать загрузочную флешку с ней, запуститься с накопителя и включить обновление.

    Auto dump

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

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

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

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

    Ошибка «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» — «ограничение кучи рабочего стола»);
    • Некорректная работа с памятью ряда программ (наиболее часто это игровые программы);
    • Не оптимальный размер файла подкачки, с которым работает система.

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

    Время на прочтение
    17 мин

    Количество просмотров 70K

    Приветствую, Хабр!

    Немного лирики

    Сегодня, 2015-03-21, я решил сделать пол-дела, и всё-таки начать писать статью о том, как же всё-таки начать понимать, что же делать с OOM, да и вообще научиться ковырять heap-dump’ы (буду называть их просто дампами, для простоты речи. Также я постараюсь избегать англицизмов, где это возможно).
    Задуманный мной объём «работ» по написанию этой статьи кажется мне не однодневным, а посему статья должна появиться лишь

    через пару недель

    спустя день.

    В этой статье я постараюсь разжевать, что делать с дампами в Java, как понять причину или приблизиться к причине возникновения OOM, посмотреть на инструменты для анализа дампов, инструмент (один, да) для мониторинга хипа, и вообще вникнуть в это дело для общего развития. Исследуются такие инструменты, как JVisualVM (рассмотрю некоторые плагины к нему и OQL Console), Eclipse Memory Analyzing Tool.
    Очень много понаписал, но надеюсь, что всё только по делу :)

    Предыстория

    Для начала нужно понять, как возникает OOM. Кому-то это может быть ещё неизвестно.
    Представьте себе, что есть какой-то верхний предел занимаемой оперативки для приложения. Пусть это будет гигабайт ОЗУ.
    Само по себе возникновение OOM в каком-то из потоков ещё не означает, что именно этот поток «выжрал» всю свободную память, да и вообще не означает, что именно тот кусок кода, который привёл к OOM, виноват в этом.
    Вполне нормальна ситуация, когда какой-то поток чем-то занимался, поедая память, «дозанимался» этим до состояния «ещё немного, и я лопну», и завершил выполнение, приостановившись. А в это время какой-то другой поток решил запросить для своей маленькой работы ещё немного памяти, сборщик мусора попыжылся, конечно, но мусора уже в памяти не нашёл. В этом случае как раз и возникает OOM, не связанный с источником проблемы, когда стектрейс покажет совсем не того виновника падения приложения.

    Есть и другой вариант. Около недели я исследовал, как улучшить жизнь парочки наших приложений, чтобы они перестали себя нестабильно вести. И ещё недельку-две потратил на то, чтобы привести их в порядок. В общей сложности пара недель времени, которые растянулись на полтора месяца, ведь занимался я не только этими проблемами.
    Из найденного: сторонняя библиотека, и, конечно же, некоторые неучтённые вещи в вызовах хранимых процедур.
    В одном приложении симптомы были следующие: в зависимости от нагрузки на сервис, оно могло упасть через сутки, а могло через двое. Если помониторить состояние памяти, то было видно, что приложение постепенно набирало «размер», и в определённый момент просто ложилось.
    С другим приложением несколько интереснее. Оно может вести себя хорошо длительный срок, а могло перестать отвечать минут через 10 после перезагрузки, или вдруг внезапно упасть, сожрав всю свободную память (это я уже сейчас вижу, наблюдая за ним). А после обновления версии, когда была изменена и версия Tomcat с 7й до 8й, и JRE, оно вдруг в одну из пятниц (проработав вменяемо до этого ни много ни мало — 2 недели) начало творить такие вещи, что стыдно признаваться в этом. :)

    В обоих историях очень полезны оказались дампы, благодаря им удалось отыскать все причины падений, подружившись с такими инструментами, как JVisualVM (буду называть его JVVM), Eclipse Memory Analyzing Tool (MAT) и языком OQL (может быть я не умею его правильно готовить в MAT, но мне оказалось легче подружиться с реализацией OQL именно в JVVM).
    Ещё вам понадобится свободная оперативка для того, чтобы было куда загружать дампы. Её объём должен быть соизмерим с размером открываемого дампа.

    Начало

    Итак, начну потихоньку раскрывать карты, и начну именно с JVVM.

    Этот инструмент в соединении с jstatd и jmx позволяет удалённо наблюдать за жизнью приложения на сервере: Heap, процессор, PermGen, количество потоков и классов, активность потоков, позволяет проводить профилирование.
    Также JVVM расширяем, и я не преминул воспользоваться этой возможностью, установив некоторые плагины, которые позволили куда больше вещей, например, следить и взаимодействать с MBean’ами, наблюдать за деталями хипа, вести длительное наблюдение за приложением, держа в «голове» куда больший период метрик, чем предоставляемый вкладкой Monitor час.


    Вот так выглядит набор установленных плагинов.
    Visual GC (VGC) позволяет видеть метрики, связанные с хипом.

    Детальнее о том, из чего состоит хип в этой нашей Java



    Вот два скриншота вкладки VGC, которые показывают, как ведут себя два разных приложения.
    Слева Вы можете увидеть такие разделы хипа, как Perm Gen, Old Gen, Survivor 0, Survivor 1, и Eden Space.
    Все эти составляющие — участки в оперативке, в которую и складываются объекты.
    PermGen — Permanent Generation — область памяти в JVM, предназначенная для хранения описания классов Java и некоторых дополнительных данных.
    Old Gen — это область памяти для достаточно старых объектов, которые пережили несколько перекладываний с места на место в Survivor-областях, и в момент какого-то очередного переливания попадают в область «старых» объектов.
    Survivor 0 и 1 — это области, в которые попадают объекты, которые после создания объекта в Eden Space пережили его чистку, то есть не стали мусором на момент, когда Eden Space начал чиститься Garbage Collector’ом (GC). При каждом запуске чистки Eden Space объекты из активного в текущий момент Survivor’а перекладываются в пассивный, плюс добавляются новые, и после этого Survivor’ы меняются статусами, пассивный становится активным, а активный — пассивным.
    Eden Space — область памяти, в которой новые объекты порождаются. При нехватке памяти в этой области запускается цикл GC.

    Каждая из этих областей может быть отрегулирована по размеру в процессе работы приложения самой виртуальной машиной.
    Если вы указываете -Xmx в 2 гигабайта, например, то это не означает, что все 2 гигабайта будут сразу же заняты (если не запускать сразу что-то активно кушающее память, конечно же). Виртуальная машина сначала постарается держать себя «в узде».
    На третьем скриншоте видно неактивную стадию приложения, которое не используется на выходных — Eden растёт равномерно, Survivor’ы перекладываются через равные промежутки времени, Old практически не растёт. Приложение проработало больше 90 часов, и в принципе JVM считает, что приложению требуется не так уж и много, около 540 МБ.

    Бывают пиковые ситуации, когда виртуальная машина даже выделяет под хип гораздо больше памяти, но я думаю, что это какие-то ещё «неучтёнки», о которых я расскажу детальнее ниже по тексту, а может просто виртуальная машина выделила больше памяти под Eden, например, чтобы объекты в нём успевали стать мусором до следующего цикла очистки.

    Участки, которые на следующем скриншоте я обозначил красным — это как раз возрастание Old, когда некоторые объекты не успевают стать мусором, чтобы быть удалёнными из памяти ранее, и всё-таки попадают в Old. Синий участок — исключение. На протяжении красных участков можно видеть гребёнку — это Eden так себя ведёт.

    На протяжении синего участка скорее всего виртуальная машина решила, что нужно увеличить размер Eden-области, потому как при увеличении масштаба в Tracer’е видно, что GC перестал «частить» и таких мелких колебаний, как ранее, теперь нет, колебания стали медленными и редкими.

    Перейдём ко второму приложению:

    В нём Eden напоминает мне какой-то уровень из Mortal Kombat, арену с шипами. Была такая, кажется… А График GC — шипы из NFS Hot Pursuit, вот те вот, плоские ещё.
    Числа справа от названий областей указывают:
    1) что Eden имеет размер в 50 мегабайт, и то, что нарисовано в конце графика, последнее из значений на текущий момент — занято 25 мегабайт. Всего он может вырости до 546 мегабайт.
    2) что Old может вырости до 1,333 гига, сейчас занимает 405 МБ, и забит на 145,5 МБ.
    Так же для Survivor-областей и Perm Gen.
    Для сравнения — вот Вам Tracer-график за 75 часов работы второго приложения, думаю, кое-какие выводы вы сможете сделать из него. Например, что активная фаза у этого приложения — с 8:30 до 17:30 в рабочие дни, и что даже на выходных оно тоже работает :)

    Если вы вдруг увидели в своём приложении, что Old-область заполнена — попробуйте просто подождать, когда она переполнится, скорее всего она заполнена уже мусором.

    Мусор — это объекты, на которые нет активных ссылок из других объектов, или целые комплексы таких объектов (например, какое-то «облако» взаимосвязанных оъектов может стать мусором, если набор ссылок указывает только на объекты внутри этого «облака», и ни на один объект в этом «облаке» ничто не ссылается «снаружи»).

    Это был краткий пересказ того, что я узнал про структуру хипа за время, пока гуглил.

    Предпосылки

    Итак, случилось сразу две вещи:
    1) после перехода на более новые библиотеки/томкеты/джавы в одну из пятниц приложение, которое я уже долгое время веду, вдруг стало вести себя из рук вон плохо спустя две недели после выставления.
    2) мне на рефакторинг отдали проект, который тоже вёл себя до некоторого времени не очень хорошо.

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

    По первому случаю симптомы были такие: все потоки, отвественные за обработку запросов, выжраны, на базу данных открыто всего 11 соединений, и те не сказать, что используются, база говорила, что они в состоянии recv sleep, то есть ожидают, когда же их начнут использовать.
    После перезагрузки приложение оживало, но прожить могло недолго, вечером той же пятницы жило дольше всего, но уже после окончания рабочего дня таки снова свалилось. Картина всегда была одинаковой: 11 соединений к базе, и лишь один, вроде бы, что-то делает.
    Память, кстати, была на минимуме. Сказать, что OOM привёл меня к поиску причин, не могу, однако полученные знания при поиске причин позволили начать активную борьбу с OOM.

    Когда я открыл дамп в JVVM, из него было сложно что-либо понять.

    Подсознание подсказывало, что причина где-то в работе с базой.
    Поиск среди классов сказал мне, что в памяти аж 29 DataSource, хотя должно быть всего 7.

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

    OQL

    Сидеть переклацывать в просмотровщике все эти объекты было некогда, и моё внимание наконец-то привлекла вкладка OQL Console, я подумал, что вот он, момент истины — я или начну использовать её на полную катушку, или так и забью на всё это.

    Прежде, чем начать, конечно же был задан вопрос гуглу, и он любезно предоставил шпаргалку (cheat sheet) по использованию OQL в JVVM: http://visualvm.java.net/oqlhelp.html

    Сначала обилие сжатой информации привело меня в уныние, но после применения гугл-фу на свет таки появился вот такой OQL-запрос:

    select {instance: x, uri: x.url.toString(), connPool: x.connectionPool}
    from org.apache.tomcat.dbcp.dbcp2.BasicDataSource x
    where x.url != null
    && x.url.toString() == "jdbc:sybase:Tds:айпишник:порт/базаДанных"

    Это уже исправленная и дополненная, финальная версия этого запроса :)
    Результат можно увидеть на скриншоте:

    После нажатия на BasicDataSource#7 мы попадаем на нужный объект во вкладке Instances:

    Через некоторое время до меня дошло, что есть одно несхождение с конфигурацией, указанной в теге Resource в томкете, в файле /conf/context.xml. Ведь в дампе параметр maxTotal имеет значение 8, в то время, как мы указывали maxActive равным 20…

    Тут-то до меня и начало доходить, что приложение жило с неправильной конфигурацией пула соединений все эти две недели!
    Для краткости напишу тут, что в случае, если вы используете Tomcat и в качестве пула соединений — DBCP, то в 7м томкете используется DBCP версии 1.4, а в 8м томкете — уже DBCP 2.0, в котором, как я потом выяснил, решили переименовать некоторые параметры! А про maxTotal вообще на главной странице сайта написано :)
    http://commons.apache.org/proper/commons-dbcp/
    «Users should also be aware that some configuration options (e.g. maxActive to maxTotal) have been renamed to align them with the new names used by Commons Pool 2.»

    Причины

    Обозвал их по всякому, успокоился, и решил разобраться.
    Как оказалось, класс BasicDataSourceFactory просто напросто получает этот самый Resource, смотрит, есть ли нужные ему параметры, и забирает их в порождаемый объект BasicDataSource, молча игнорируя напрочь всё, что его не интересует.
    Так и получилось, что они переименовали самые весёлые параметры, maxActive => maxTotal, maxWait => maxWaitMillis, removeAbandoned => removeAbandonedOnBorrow & removeAbandonedOnMaintenance.
    По умолчанию maxTotal, как и ранее, равен 8; removeAbandonedOnBorrow, removeAbandonedOnMaintenance = false, maxWaitMillis устанавливается в значение «ждать вечно».
    Получилось, что пул оказался сконфигурирован с минимальным количеством соединений; в случае, если заканчиваются свободные соединения — приложение молча ждёт, когда они освободятся; и добивает всё молчанка в логах по поводу «заброшенных» соединений — то, что могло бы сразу показать, в каком именно месте

    программист мудак

    код хватает соединение, но не отдаёт его обратно по окончанию своей работы.
    Это сейчас вся мозаика сложилась быстро, а добывались эти знания дольше.

    «Так быть не должно», решил я, и запилил патчик (https://issues.apache.org/jira/browse/DBCP-435, выразился в http://svn.apache.org/viewvc/commons/proper/dbcp/tags/DBCP_2_1/src/main/java/org/apache/commons/dbcp2/BasicDataSourceFactory.java?view=markup ), патч был принят и вошёл в версию DBCP 2.1. Когда и если Tomcat 8 обновит версию DBCP до 2.1+, думаю, что админам откроются многие тайны про их конфигурации Resource :)

    По поводу этого происшествия мне лишь осталось рассказать ещё одну деталь — какого чёрта в дампе было аж 29 DataSource’ов вместо всего 7 штук. Разгадка кроется в банальной арифметике, 7*4=28 +1=29.

    Детальнее о том, почему нельзя закидывать Resource в файл /conf/context.xml томкета

    На каждую подпапку внутри папки /webapps поднимается своя копия /conf/context.xml, а значит то количество Resource, которые там есть, следует умножать на количество приложений, чтобы получить общее количество пулов, поднятых в памяти томкета. На вопрос «что в этом случае делать?» ответ будет таким: нужно вынести все объявления Resource из /conf/context.xml в файл /conf/server.xml, внутрь тега GlobalNamingResources. Там Вы можете найти один, имеющийся по умолчанию, Resource name=«UserDatabase», вот под ним и размещайте свои пулы. Далее необходимо воспользоваться тегом ResourceLink, его желательно поместить в приложение, в проекте, внутрь файла /META-INF/context.xml — это так называемый «per-app context», то есть контекст, который содержит объявления компонентов, которые будут доступны только для разворачиваемого приложения. У ResourceLink параметры name и global могут содержать одинаковые значения.
    Для примера:

    <ResourceLink name="jdbc/MyDB" global="jdbc/MyDB" type="javax.sql.DataSource"/>

    Эта ссылка будет выхватывать из глобально объявленных ресурсов DataSource с именем «jdbc/MyDB», и ресурс станет доступен приложению.
    ResourceLink можно (но не нужно) разместить и в /conf/context.xml, но в этом случае доступ к ресурсам, объявленным глобально, будет у всех приложений, пусть даже и не будет столько копий DataSource в памяти.
    Ознакомиться с деталями можно вот тут: GlobalNamingResources — http://tomcat.apache.org/tomcat-7.0-doc/config/globalresources.html#Environment_Entries, ResourceLink — http://tomcat.apache.org/tomcat-7.0-doc/config/globalresources.html#Resource_Links, также можно просмотреть эту страницу: tomcat.apache.org/tomcat-7.0-doc/config/context.html.
    Для TC8 эти же страницы: http://tomcat.apache.org/tomcat-8.0-doc/config/globalresources.html и http://tomcat.apache.org/tomcat-8.0-doc/config/context.html .

    После этого всё стало ясно: 11 соединений было потому, что в одном, активном DataSource было съедено 8 соединений (maxTotal = 8), и ещё по minIdle=1 в трёх других неиспользуемых DataSource-копиях.

    В ту пятницу мы откатились на Tomcat 7, который лежал рядышком, и ждал, когда от него избавятся, это дало время спокойно во всём разобраться.
    Плюс позже, уже на TC7, обнаружилась утечка соединений, всё благодаря removeAbandoned+logAbandoned. DBCP радостно сообщил в логфайл catalina.log о том, что

    "org.apache.tomcat.dbcp.dbcp.AbandonedTrace$AbandonedObjectException: DBCP object created 2015-02-10 09:34:20 by the following code was never closed:
    	at org.apache.tomcat.dbcp.dbcp.AbandonedTrace.setStackTrace(AbandonedTrace.java:139)
    	at org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:81)
    	at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
    	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
    	at наш.пакет.СуперКласс.getConnection(СуперКласс.java:100500)
    	at наш.пакет.СуперКласс.плохойПлохойМетод(СуперКласс.java:100800)
    	at наш.пакет.СуперКласс.вполнеВменяемыйМетод2(СуперКласс.java:100700)
    	at наш.пакет.СуперКласс.вполнеВменяемыйМетод1(СуперКласс.java:100600)
    	ещё куча строк..."
    

    Вот этот вот плохойПлохойМетод имеет в сигнатуре Connection con, но внутри была конструкция «con = getConnection();», которая и стала камнем преткновения. СуперКласс вызывается редко, поэтому на него и не обращали внимания так долго. Плюс к этому, вызовы происходили, я так понимаю, не во время рабочего дня, так что даже если что-то и подвисало, то никому уже не было дела до этого. А в ТуСамуюПятницу просто звёзды сошлись, начальнику департамента заказчика понадобилось посмотреть кое-что :)

    Приложение №2

    Что же касается «события №2» — мне отдали приложение на рефакторинг, и оно на серверах тут же вздумало упасть.
    Дампы попали уже ко мне, и я решил попробовать поковырять и их тоже.
    Открыл дамп в JVVM, и «чё-то приуныл»:

    Что можно понять из Object[], да ещё и в таком количестве?
    ( Опытный человек, конечно же, увидел уже причину, правда? :) )

    Так у меня зародилась мысль «ну неужели никто ранее не занимался этим, ведь наверняка уже есть готовый инструмент!». Так я наткнулся на этот вопрос на StackOverflow: http://stackoverflow.com/questions/2064427/recommendations-for-a-heap-analysis-tool-for-java.
    Посмотрев предложенные варианты, я решил остановиться на MAT, надо было попробовать хоть что-то, а это открытый проект, да ещё и с куда бОльшим количеством голосов, чем у остальных пунктов.

    Eclipse Memory Analyzing Tool

    Итак, MAT.
    Рекомендую скачивать последнюю версию Eclipse, и устанавливать MAT туда, потому как самостоятельная версия MAT ведёт себя плохо, там какая-то чертовщина с диалогами, в них не видно содержимого в полях. Быть может кто-то подскажет в комментариях, чего ему не хватает, но я решил проблему, установив MAT в Eclipse.

    Открыв дамп в MAT я запросил выполнение Leak Suspects Report.


    Удивлению не было предела, честно говоря.

    1.2 гига весят соединения в базу.

    Каждое соединение весит от 17 до 81 мегабайта.

    Ну и ещё «немного» сам пул.
    Визуализировать проблему помог отчёт Dominator Tree:

    Причиной всех падений оказались километры SQLWarning’ов, база настойчиво пыталась дать понять, что «010SK: Database cannot set connection option SET_READONLY_TRUE.», а пул соединений BoneCP не вычищает SQLWarning’и после освобождения и возврата соединений в пул (может быть это где-то можно сконфигурировать? Подскажите, если кто знает).
    Гугл сказал, что такая проблема с Sybase ASE известна ещё с 2004 года: https://forum.hibernate.org/viewtopic.php?f=1&t=932731
    Если вкратце, то «Sybase ASE doesn’t require any optimizations, therefore setReadOnly() produces a SQLWarning.», и указанные решения всё ещё работают.
    Однако это не совсем решение проблемы, потому как решение проблемы — это когда при возврате соединения в пул все уведомления базы очищаются в силу того, что они уже никогда никому не понадобятся.
    И DBCP таки умеет делать это: http://svn.apache.org/viewvc/commons/proper/dbcp/tags/DBCP_1_4/src/java/org/apache/commons/dbcp/PoolableConnectionFactory.java?view=markup, метод passivateObject(Object obj), в строке 687 можно увидеть conn.clearWarnings();, этот вызов и спасает от километров SQLWarning’ов в памяти.
    Об этом я узнал из тикета: https://issues.apache.org/jira/browse/DBCP-102
    Также мне подсказали про вот такой тикет в багтрекере: https://issues.apache.org/jira/browse/DBCP-234, но он касается уже версии DBCP 2.0.

    В итоге я перевёл приложение на DBCP (пусть и версии 1.4). Пусть нагрузка на сервис и немаленькая (от 800 до 2к запросов в минуту), но всё же приложение ведёт себя хорошо, а это главное. И правильно сделал, потому как BoneCP уже пять месяцев не поддерживается, правда, ему на смену пришёл HikariCP. Нужно будет посмотреть, как дела в его исходниках…

    Сражаемся с OOM

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

    Вооружившись обоими инструментами, я принялся ковырять каждый присланный дамп в поисках причин падения по OOM.
    Как правило все OOM приводили меня к TaskThread.

    И если нажать на надпись See stacktrace, то да, это будет как раз банальный случай, когда какой-то поток вдруг внезапно упал при попытке отмаршалить результат своей работы.

    Однако здесь ничто не указывает на причину возникновения OOM, здесь лишь результат. Найти причину мне пока-что, в силу незнания всей магии OQL в MAT, помогает именно JVVM.
    Загружаем дамп там, и пытаемся отыскать причину!

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

    Два SybCallableStatement, и один SybPreparedStatement.
    Думаю, что дело усложнится, если Statement’ов будет куда больше, но немного подрихтовав один из следующих запросов, указав в where нужные условия, думаю, всё у Вас получится. Плюс, конечно же, стоит хорошенько посмотреть в MAT, что за результаты пытается отмаршалить поток, какой объект, и станет понятнее, какой именно из Statement’ов необходимо искать.

    select {
        instance: x,
        stmtQuery: x._query.toString(),
        params: map(x._paramMgr._params, function(obj1) {
                if (obj1 != null) {
                    if (obj1._parameterAsAString != null) {
                        return '''+obj1._parameterAsAString.toString()+''';
                    } else {
                        return "null";
                    }
                } else {
                    return "null";
                }
            })
        }
    from com.sybase.jdbc4.jdbc.SybCallableStatement x
    where x._query != null


    Не то, это «внутренние» вызовы.

    select {
        instance: x,
        stmtQuery: x._query.toString(),
        params: map(x._paramMgr._params, function(obj1) {
                if (obj1 != null) {
                    if (obj1._parameterAsAString != null) {
                        return '''+obj1._parameterAsAString.toString()+''';
                    } else {
                        return "null";
                    }
                } else {
                    return "null";
                }
            })
        }
    from com.sybase.jdbc4.jdbc.SybPreparedStatement x
    where x._query != null


    А вот и дичь!
    Для чистоты эксперимента можно кинуть такой же запрос в любимой БД-IDE, и он будет очень долго отрабатывать, а если покопаться в недрах хранимки, то будет понятно, что там просто из базы, которая нам не принадлежит, выбирается 2 миллиона строк по такому запросу с такими параметрами. Эти два миллиона даже влазят в память приложения, но вот попытка отмаршалить результат становится фатальной для приложения. Такое себе харакири. :)
    При этом GC старательно убирает все улики, но не спасло его это, всё же источник остался в памяти, и он будет наказан.

    Почему-то после всего этого рассказа почувствовал себя тем ещё неудачником.

    Прощание

    Вот и закончилось моё повествование, надеюсь, Вам понравилось :)
    Хотел бы выразить благодарность своему начальнику, он дал мне время во всём этом разобраться. Считаю эти новые знания очень полезными.
    Спасибо девушкам из Scorini за неизменно вкусный кофе, но они не прочтут этих слов благодарности — я даже сомневаюсь, что они знают о существовании Хабрахабра :)
    Хотелось бы увидеть в комментариях ещё больше полезной инфы и дополнений, буду очень благодарен.

    Думаю, самое время почитать документацию к MAT…

    UPD1: Да, совсем забыл рассказать про такие полезные вещи, как создание дампов памяти.
    docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/clopts.html#gbzrr
    Опции
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:HeapDumpPath=/disk2/dumps
    весьма полезны для генерации дампов в момент падения приложения по OutOfMemoryError,
    а также существует возможность снять дамп памяти с приложения «наживо», посреди его работы.
    Для этого существует утилита jmap.
    Пример вызова для винды:
    «C:installPSToolsPsExec.exe» -s «C:Program FilesJavajdk1.7.0_55binjmap.exe» -dump:live,format=b,file=C:dump.hprof 3440
    последний параметр — это PID java-процесса. Приложение PsExec из набора PSTools позволяет запускать другие приложения с правами системы, для этого служит ключ «-s». Опция live полезна, чтобы перед сохранением дампа вызвать GC, очистив память от мусора. В случае, когда возникает OOM, чистить память незачем, там уже не осталось мусора, так что не ищите, как можно установить опцию live в случае возникновения OOM.

    UPD2 (2015-10-28) | Случай номер два три
    (Было принято решение дописать это сюда как апдейт, а не пилить новую статью о том же самом):
    Ещё один интересный случай, но уже с Оракловой базой.
    Один из проектов использует фичу с XML, проводит поиски по содержимому сохранённого XML-документа. В общем, этот проект иногда давал о себе знать тем, что вдруг внезапно один из инстансов переставал подавать признаки жизни.
    Почуяв «хороший» случай потренироваться

    на кошках

    , я решил посмотреть его дампы памяти.

    Первое, что я увидел, было «у вас тут много коннектов в памяти осталось». 21к!!! И какой-то интересный oracle.xdb.XMLType тоже давал жару. «Но это же Оракл!», вертелось у меня в голове. Забегая вперёд скажу что таки да, он виноват.

    Итак, видим кучу T4CConnection, которые лежат в HashMap$Entry. Обратил внимание сразу, что вроде бы и SoftHashMap, что, вроде как, должно означать, что оно не должно вырастать до таких размеров. Но результат видите и сами — 50-60 килобайт в коннекте, и их реально МНОГО.

    Посмотрев, что собой представляют HashMap$Entry — увидел, что примерно картина одинакова, всё связано с SoftHashMap, с Оракловыми коннектами.

    Что, собственно, подтверждалось такой картинкой. HashMap$Entry было просто море, и они более-менее сакуммулировались внутри oracle.xdb.SoftHashMap.
    В следующем дампе картина была примерно такой же. По Dominator Tree было видно, что внутри каждого Entry находится тяжёлый такой BinXmlProcessorImpl.

    -=-=-
    Если учесть, что я в тот момент был не силён в том, что такое xdb, и как он связан с XML, то, несколько растерявшись, я решил, что надо бы погуглить, быть может кто-то уже в курсе, что со всем этим нужно делать. И чутьё не обмануло, по запросу «oracle.xdb.SoftHashMap T4CConnection» нашлось
    раз piotr.bzdyl.net/2014/07/memory-leak-in-oracle-softhashmap.html
    и два leakfromjavaheap.blogspot.com/2014/02/memory-leak-detection-in-real-life.html
    Утвердившись, что тут всё-таки косяк у Оракла, дело оставалось за малым.
    Попросил администратора БД посмотреть информацию по обнаруженной проблеме:

    xxx: Ключевые слова: SoftHashMap XMLType
    yyy: Bug 17537657 Memory leak from XDB in oracle.xdb.SoftHashMap
    yyy: The fix for 17537657 is first included in
    12.2 (Future Release)
    12.1.0.2 (Server Patch Set)
    12.1.0.1.4 Database Patch Set Update
    12.1.0.1 Patch 11 on Windows Platforms
    yyy: нда. Описание
    Description
    When calling either getDocument() using the thin driver, or getBinXMLStream()
    using any driver, memory leaks occur in the oracle.xdb.SoftHashMap class.
    BinXMLProcessorImpl classes accumulate in this SoftHashMap, but are never
    removed.
    xxx: Всё так и есть :)

    Вот описание фикса: updates.oracle.com/Orion/Services/download?type=readme&aru=18629243 (для доступа требуется учётка в Оракл).
    -=-=-
    После применения фикса инстансы нашего приложения живут уже месяц, и пока без эксцессов. *постучал по дереву* *поплевал через левое плечо*
    Успехов Вам в поисках!

    What is Out of Memory error while copying files? As you know, both the hard drive and RAM play a major role in performing any operation on a computer since every process or task that takes place in the system requires some RAM storage as well as hard drive storage to be executed. However, there are times when you may receive the following error messages when you try to copy files from one location to another:

    “Out of memory or system resources, Close some windows or programs and try again.”

    “There is not enough memory to complete this operation – copying files.”

    These errors are caused by the Desktop Heap limitation when there is no longer enough memory to complete the operation while copying the files. If you encounter any of these errors, you will be guided in this post with the help of some potential fixes that can increase its limit and will hopefully fix this error on your Windows 10 computer.

    You may try to close all the open windows and programs and then try copying the file again and see if that helps. If not, then proceed to the instructions given below. But before you do that, make sure that you create a System Restore point first. This way, you can undo the changes you’ve made any time in case there are some unwanted changes you want to reverse. After you create a System Restore point, refer to the steps provided below.

    a disk read error occurred press ctrl+alt+del to restart #computer

    Step 1: Tap the Win + R keys to open the Run utility and type “Regedit” in the field and tap Enter to open the Registry Editor.

    Step 2: Next, navigate to this registry key: ComputerHKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerSubSystems

    Step 3: Now double click on the DWORD named Windows to modify it.

    Step 4: Change the values for SharedSection in the Value Data field. It should be in the format of “SharedSection=aaaa,bbbb,cccc”. Note that you have to change the value of “bbbb” and “cccc”. So in case you are using an x86 operating system, set the value of bbbb to 12288 and then set the value for cccc to 1024. On the other hand, if you are using an x64 operating system, set the bbbb value to 20480 and the cccc value to 1024.

    Step 5: Exit the Registry Editor and restart your computer to successfully apply the changes made.

    Note: The bbbb value in the SharedSection registry is the size of the desktop heap for each interactive window station while the cccc section of the SharedSection value is the size of the desktop heap for each non-interactive window station. In addition, you must keep in mind that setting the value of bbbb to more than 20480 KB is not really recommended.

    On the other hand, there is another tool that could help in resolving the Out of Memory error. This tool is called the Memory Diagnostic tool in windows can help resolve the Out of Memory error by checking and automatically fixing any memory-based issues. To run it, refer to these steps:

    • Tap the Win + R keys to open Run and type mdsched.exe and hit Enter to open the Windows Memory Diagnostic Tool.
    • After that, it will give two options such as:
    • Restart now and check for problems (Recommended)
    • Check for problems the next time I start my computer

    Note: After you select your preferred option, your computer will restart and check for memory-based issues. If it finds any issues, it will automatically fix them.

    How To Fix Disk Read Error on Steam [2019-2020]

    Источник: errortools.com

    Многие пользователи ПК во время работы с какой-либо программой могут столкнуться с «вылетом» указанной программы, и появившимся сообщением «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 и более гигабайт);

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

    bcdedit/set IncreaseUserVa 3072

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

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

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

    bcdedit /deletevalue IncreaseUserVa

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

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

    Заключение

    Ошибка «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

    Всем привет, на пк ошибка disk read error out of memory error. Добавлены 2 подозрительных и ненадежных сайта, связанные с zona, которые могут вызывать рекламу. Всем привет, на пк ошибка disk read error out of memory error. Disk read error — outofmemoryerror выскакивает такая ошибка, что мне делать?

    С последней новогодней обновой приложение стало частенько зависать — приходится перезапускать, а так же ошибка outofmemoryerror иногда вылезает. 1 as a dual boot on a win2k machine and im trying to clean up my config files.

    Each time that i boot i get the following error ldmvalidatepartitiontable() disk read failed it. Disk read erro i have a usb drive, so what do i do with it to get rid of the disk read error lol — dell latitude c610 notebook question. While trying to load a new 509mb program i get there is not enough space on the disk in the vm settings i set motherboard memory as 1500mb. Reboot, reconnect the drive if it is an external one and take a look at the disk if there are any dirt or scratches.

    Популярные запросы

    • Disk read error out of memory error zona
    • Disk read error outofmemoryerror ошибка zona
    • Disk read error outofmemoryerror ошибка zonax
    • Disk read error outofmemoryerror ошибка zonal

    Источник: redactor-online.ru

    Read error до загрузки OC

    Здравствуйте, на домашнем пк стала появляться ошибка read error, ошибка появляется ещё до загрузки oc(стоит ubuntu). Если поставить загрузку с флешки или dvd диска, ошибка не появляется, загрузка успешно проходит и на портативной oc удаётся открыть файлы жёсткого диска. Предполагаю что это связано с загрузчиком. В чём может быть проблема и что можно сделать? Заранее очень благодарен за помощь!

    Добавлено через 4 минуты
    После загрузки с live cd ошибка изменилась, теперь это unkown filesystem grub rescue. Понимаю что лучший выхoд это переустановка, но может есть другой выход

    __________________
    Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
    94731 / 64177 / 26122
    Регистрация: 12.04.2006
    Сообщений: 116,782
    Ответы с готовыми решениями:

    HTTP Error 500.19 — Internal Server Error — Read permisions
    http://ScrnSht.com/nxevbh думаю суть проблемы понятна попгуглив я накопал что надо бы поставить.

    Ошибка Error 100: Disk read error
    Program pr2122; Uses Dos, crt; Type stip = record pr: string; gr: string; st.

    Ошибка Error 100: Disk read error
    Что это за ошибка? program test; uses crt; const n = 100; var a: array of real;

    Флэшка ADATA UV128/16GB USB 3.0 глючит Recoverable write error/Recoverable read error
    поначалу во время установки ОС linux mint просто зависла на очень долго потом вообще перестала.

    Источник: www.cyberforum.ru

    Многие пользователи ПК во время работы с какой-либо программой могут столкнуться с «вылетом» указанной программы, и появившимся сообщением «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. Эта утилита позволяет просмотреть количество экземпляров и занимаемую ими память по типам.

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

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

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

    • Причины появления дисфункции
    • Как исправить ошибку «Out of memory»
    • Заключение

    Ошибка out of memory

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

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

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

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

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

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

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

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

    Альтернативным вариантом решения проблемы является установка соответствующего фикса от Майкрософт. Или использование расширений или дополнений для браузера уровня «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» может иметь множество причин, связанных как с физическим недостатком памяти на ПК, так и другими детерминантами, изложенными мной выше. Для решения проблемы советую закрыть ненужные программы (вкладки браузера) на вашем компьютере (тем самым разгрузив его память), а самым эффективным инструментом является установка дополнительной планки памяти на ПК, что в большинстве случаев поможет избавиться от ошибки на вашем компьютере.

    lbfyf#30024

    12.03.2014 14:59

    +

    0

    -

    0

    zna самая лутчшая програма

    Thumbnail

    asdfghj#30063

    12.03.2014 19:48

    +

    0

    -

    0

    Гость#30125

    13.03.2014 14:21

    +

    0

    -

    0

    14.03.2014 14:18

    +

    1

    -

    0

    я хочу загрузить battlefield

    14.03.2014 14:20

    +

    0

    -

    0

    Всем привет! Я новичок на форуме. но есть мысли о программе Zona….У меня Smart TV …..И если на ПК запущена Zona то она отображается и в телевизоре как сеть Zona и смотрю фильмы на большом экране очень удобно и качать не нужно …..остальные закладки не запускаются и это еще не все, можно запустить как Zona_PC как это делается пока не знаю как то само один раз получилось особенно удобно для просмотра фильмов 3D….Надо разбираться

    Гость#30470

    16.03.2014 16:17

    +

    0

    -

    0

    Иван#30476

    16.03.2014 17:49

    +

    0

    -

    0

    не качайте !!! реклама и не удаляется !!! категорически не советую

    Гость#30526

    17.03.2014 09:52

    +

    0

    -

    0

    почему в программе зона при просмотре фильма через некоторое время гаснет экран?

    Гость#30611

    18.03.2014 07:05

    +

    0

    -

    0

    Очень хорошая и интересная программа.

    Гость#30683

    18.03.2014 21:07

    +

    0

    -

    0

    данил дьяченко хотилово2#30771

    19.03.2014 17:29

    +

    0

    -

    0

    Гость#30775

    19.03.2014 17:51

    +

    0

    -

    0

    Гость#30916

    20.03.2014 19:44

    +

    0

    -

    0

    Ярослав#31039

    22.03.2014 05:08

    +

    0

    -

    0

    У меня уже была такая программа. Очень интересная много скачки через неё было совершено. Мне нравится игры через неё скачивать.

    Саня#31054

    22.03.2014 08:04

    +

    0

    -

    0

    Щя скачаем посмотрим =)))

    Thumbnail

    Гость#31117

    22.03.2014 17:47

    +

    0

    -

    0

    замечательная программа очень удобно

    Гость#31137

    22.03.2014 21:50

    +

    0

    -

    0

    Гость#31202

    23.03.2014 16:36

    +

    0

    -

    0

    Хорошая программа сказать нечего

    Гость#31393

    25.03.2014 15:15

    +

    0

    -

    0

    Гость#31578

    27.03.2014 06:58

    +

    0

    -

    0

    очень хорошая . всем скачать надо

    Время на прочтение
    17 мин

    Количество просмотров 71K

    Приветствую, Хабр!

    Немного лирики

    Сегодня, 2015-03-21, я решил сделать пол-дела, и всё-таки начать писать статью о том, как же всё-таки начать понимать, что же делать с OOM, да и вообще научиться ковырять heap-dump’ы (буду называть их просто дампами, для простоты речи. Также я постараюсь избегать англицизмов, где это возможно).
    Задуманный мной объём «работ» по написанию этой статьи кажется мне не однодневным, а посему статья должна появиться лишь

    через пару недель

    спустя день.

    В этой статье я постараюсь разжевать, что делать с дампами в Java, как понять причину или приблизиться к причине возникновения OOM, посмотреть на инструменты для анализа дампов, инструмент (один, да) для мониторинга хипа, и вообще вникнуть в это дело для общего развития. Исследуются такие инструменты, как JVisualVM (рассмотрю некоторые плагины к нему и OQL Console), Eclipse Memory Analyzing Tool.
    Очень много понаписал, но надеюсь, что всё только по делу :)

    Предыстория

    Для начала нужно понять, как возникает OOM. Кому-то это может быть ещё неизвестно.
    Представьте себе, что есть какой-то верхний предел занимаемой оперативки для приложения. Пусть это будет гигабайт ОЗУ.
    Само по себе возникновение OOM в каком-то из потоков ещё не означает, что именно этот поток «выжрал» всю свободную память, да и вообще не означает, что именно тот кусок кода, который привёл к OOM, виноват в этом.
    Вполне нормальна ситуация, когда какой-то поток чем-то занимался, поедая память, «дозанимался» этим до состояния «ещё немного, и я лопну», и завершил выполнение, приостановившись. А в это время какой-то другой поток решил запросить для своей маленькой работы ещё немного памяти, сборщик мусора попыжылся, конечно, но мусора уже в памяти не нашёл. В этом случае как раз и возникает OOM, не связанный с источником проблемы, когда стектрейс покажет совсем не того виновника падения приложения.

    Есть и другой вариант. Около недели я исследовал, как улучшить жизнь парочки наших приложений, чтобы они перестали себя нестабильно вести. И ещё недельку-две потратил на то, чтобы привести их в порядок. В общей сложности пара недель времени, которые растянулись на полтора месяца, ведь занимался я не только этими проблемами.
    Из найденного: сторонняя библиотека, и, конечно же, некоторые неучтённые вещи в вызовах хранимых процедур.
    В одном приложении симптомы были следующие: в зависимости от нагрузки на сервис, оно могло упасть через сутки, а могло через двое. Если помониторить состояние памяти, то было видно, что приложение постепенно набирало «размер», и в определённый момент просто ложилось.
    С другим приложением несколько интереснее. Оно может вести себя хорошо длительный срок, а могло перестать отвечать минут через 10 после перезагрузки, или вдруг внезапно упасть, сожрав всю свободную память (это я уже сейчас вижу, наблюдая за ним). А после обновления версии, когда была изменена и версия Tomcat с 7й до 8й, и JRE, оно вдруг в одну из пятниц (проработав вменяемо до этого ни много ни мало — 2 недели) начало творить такие вещи, что стыдно признаваться в этом. :)

    В обоих историях очень полезны оказались дампы, благодаря им удалось отыскать все причины падений, подружившись с такими инструментами, как JVisualVM (буду называть его JVVM), Eclipse Memory Analyzing Tool (MAT) и языком OQL (может быть я не умею его правильно готовить в MAT, но мне оказалось легче подружиться с реализацией OQL именно в JVVM).
    Ещё вам понадобится свободная оперативка для того, чтобы было куда загружать дампы. Её объём должен быть соизмерим с размером открываемого дампа.

    Начало

    Итак, начну потихоньку раскрывать карты, и начну именно с JVVM.

    Этот инструмент в соединении с jstatd и jmx позволяет удалённо наблюдать за жизнью приложения на сервере: Heap, процессор, PermGen, количество потоков и классов, активность потоков, позволяет проводить профилирование.
    Также JVVM расширяем, и я не преминул воспользоваться этой возможностью, установив некоторые плагины, которые позволили куда больше вещей, например, следить и взаимодействать с MBean’ами, наблюдать за деталями хипа, вести длительное наблюдение за приложением, держа в «голове» куда больший период метрик, чем предоставляемый вкладкой Monitor час.


    Вот так выглядит набор установленных плагинов.
    Visual GC (VGC) позволяет видеть метрики, связанные с хипом.

    Детальнее о том, из чего состоит хип в этой нашей Java



    Вот два скриншота вкладки VGC, которые показывают, как ведут себя два разных приложения.
    Слева Вы можете увидеть такие разделы хипа, как Perm Gen, Old Gen, Survivor 0, Survivor 1, и Eden Space.
    Все эти составляющие — участки в оперативке, в которую и складываются объекты.
    PermGen — Permanent Generation — область памяти в JVM, предназначенная для хранения описания классов Java и некоторых дополнительных данных.
    Old Gen — это область памяти для достаточно старых объектов, которые пережили несколько перекладываний с места на место в Survivor-областях, и в момент какого-то очередного переливания попадают в область «старых» объектов.
    Survivor 0 и 1 — это области, в которые попадают объекты, которые после создания объекта в Eden Space пережили его чистку, то есть не стали мусором на момент, когда Eden Space начал чиститься Garbage Collector’ом (GC). При каждом запуске чистки Eden Space объекты из активного в текущий момент Survivor’а перекладываются в пассивный, плюс добавляются новые, и после этого Survivor’ы меняются статусами, пассивный становится активным, а активный — пассивным.
    Eden Space — область памяти, в которой новые объекты порождаются. При нехватке памяти в этой области запускается цикл GC.

    Каждая из этих областей может быть отрегулирована по размеру в процессе работы приложения самой виртуальной машиной.
    Если вы указываете -Xmx в 2 гигабайта, например, то это не означает, что все 2 гигабайта будут сразу же заняты (если не запускать сразу что-то активно кушающее память, конечно же). Виртуальная машина сначала постарается держать себя «в узде».
    На третьем скриншоте видно неактивную стадию приложения, которое не используется на выходных — Eden растёт равномерно, Survivor’ы перекладываются через равные промежутки времени, Old практически не растёт. Приложение проработало больше 90 часов, и в принципе JVM считает, что приложению требуется не так уж и много, около 540 МБ.

    Бывают пиковые ситуации, когда виртуальная машина даже выделяет под хип гораздо больше памяти, но я думаю, что это какие-то ещё «неучтёнки», о которых я расскажу детальнее ниже по тексту, а может просто виртуальная машина выделила больше памяти под Eden, например, чтобы объекты в нём успевали стать мусором до следующего цикла очистки.

    Участки, которые на следующем скриншоте я обозначил красным — это как раз возрастание Old, когда некоторые объекты не успевают стать мусором, чтобы быть удалёнными из памяти ранее, и всё-таки попадают в Old. Синий участок — исключение. На протяжении красных участков можно видеть гребёнку — это Eden так себя ведёт.

    На протяжении синего участка скорее всего виртуальная машина решила, что нужно увеличить размер Eden-области, потому как при увеличении масштаба в Tracer’е видно, что GC перестал «частить» и таких мелких колебаний, как ранее, теперь нет, колебания стали медленными и редкими.

    Перейдём ко второму приложению:

    В нём Eden напоминает мне какой-то уровень из Mortal Kombat, арену с шипами. Была такая, кажется… А График GC — шипы из NFS Hot Pursuit, вот те вот, плоские ещё.
    Числа справа от названий областей указывают:
    1) что Eden имеет размер в 50 мегабайт, и то, что нарисовано в конце графика, последнее из значений на текущий момент — занято 25 мегабайт. Всего он может вырости до 546 мегабайт.
    2) что Old может вырости до 1,333 гига, сейчас занимает 405 МБ, и забит на 145,5 МБ.
    Так же для Survivor-областей и Perm Gen.
    Для сравнения — вот Вам Tracer-график за 75 часов работы второго приложения, думаю, кое-какие выводы вы сможете сделать из него. Например, что активная фаза у этого приложения — с 8:30 до 17:30 в рабочие дни, и что даже на выходных оно тоже работает :)

    Если вы вдруг увидели в своём приложении, что Old-область заполнена — попробуйте просто подождать, когда она переполнится, скорее всего она заполнена уже мусором.

    Мусор — это объекты, на которые нет активных ссылок из других объектов, или целые комплексы таких объектов (например, какое-то «облако» взаимосвязанных оъектов может стать мусором, если набор ссылок указывает только на объекты внутри этого «облака», и ни на один объект в этом «облаке» ничто не ссылается «снаружи»).

    Это был краткий пересказ того, что я узнал про структуру хипа за время, пока гуглил.

    Предпосылки

    Итак, случилось сразу две вещи:
    1) после перехода на более новые библиотеки/томкеты/джавы в одну из пятниц приложение, которое я уже долгое время веду, вдруг стало вести себя из рук вон плохо спустя две недели после выставления.
    2) мне на рефакторинг отдали проект, который тоже вёл себя до некоторого времени не очень хорошо.

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

    По первому случаю симптомы были такие: все потоки, отвественные за обработку запросов, выжраны, на базу данных открыто всего 11 соединений, и те не сказать, что используются, база говорила, что они в состоянии recv sleep, то есть ожидают, когда же их начнут использовать.
    После перезагрузки приложение оживало, но прожить могло недолго, вечером той же пятницы жило дольше всего, но уже после окончания рабочего дня таки снова свалилось. Картина всегда была одинаковой: 11 соединений к базе, и лишь один, вроде бы, что-то делает.
    Память, кстати, была на минимуме. Сказать, что OOM привёл меня к поиску причин, не могу, однако полученные знания при поиске причин позволили начать активную борьбу с OOM.

    Когда я открыл дамп в JVVM, из него было сложно что-либо понять.

    Подсознание подсказывало, что причина где-то в работе с базой.
    Поиск среди классов сказал мне, что в памяти аж 29 DataSource, хотя должно быть всего 7.

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

    OQL

    Сидеть переклацывать в просмотровщике все эти объекты было некогда, и моё внимание наконец-то привлекла вкладка OQL Console, я подумал, что вот он, момент истины — я или начну использовать её на полную катушку, или так и забью на всё это.

    Прежде, чем начать, конечно же был задан вопрос гуглу, и он любезно предоставил шпаргалку (cheat sheet) по использованию OQL в JVVM: http://visualvm.java.net/oqlhelp.html

    Сначала обилие сжатой информации привело меня в уныние, но после применения гугл-фу на свет таки появился вот такой OQL-запрос:

    select {instance: x, uri: x.url.toString(), connPool: x.connectionPool}
    from org.apache.tomcat.dbcp.dbcp2.BasicDataSource x
    where x.url != null
    && x.url.toString() == "jdbc:sybase:Tds:айпишник:порт/базаДанных"

    Это уже исправленная и дополненная, финальная версия этого запроса :)
    Результат можно увидеть на скриншоте:

    После нажатия на BasicDataSource#7 мы попадаем на нужный объект во вкладке Instances:

    Через некоторое время до меня дошло, что есть одно несхождение с конфигурацией, указанной в теге Resource в томкете, в файле /conf/context.xml. Ведь в дампе параметр maxTotal имеет значение 8, в то время, как мы указывали maxActive равным 20…

    Тут-то до меня и начало доходить, что приложение жило с неправильной конфигурацией пула соединений все эти две недели!
    Для краткости напишу тут, что в случае, если вы используете Tomcat и в качестве пула соединений — DBCP, то в 7м томкете используется DBCP версии 1.4, а в 8м томкете — уже DBCP 2.0, в котором, как я потом выяснил, решили переименовать некоторые параметры! А про maxTotal вообще на главной странице сайта написано :)
    http://commons.apache.org/proper/commons-dbcp/
    «Users should also be aware that some configuration options (e.g. maxActive to maxTotal) have been renamed to align them with the new names used by Commons Pool 2.»

    Причины

    Обозвал их по всякому, успокоился, и решил разобраться.
    Как оказалось, класс BasicDataSourceFactory просто напросто получает этот самый Resource, смотрит, есть ли нужные ему параметры, и забирает их в порождаемый объект BasicDataSource, молча игнорируя напрочь всё, что его не интересует.
    Так и получилось, что они переименовали самые весёлые параметры, maxActive => maxTotal, maxWait => maxWaitMillis, removeAbandoned => removeAbandonedOnBorrow & removeAbandonedOnMaintenance.
    По умолчанию maxTotal, как и ранее, равен 8; removeAbandonedOnBorrow, removeAbandonedOnMaintenance = false, maxWaitMillis устанавливается в значение «ждать вечно».
    Получилось, что пул оказался сконфигурирован с минимальным количеством соединений; в случае, если заканчиваются свободные соединения — приложение молча ждёт, когда они освободятся; и добивает всё молчанка в логах по поводу «заброшенных» соединений — то, что могло бы сразу показать, в каком именно месте

    программист мудак

    код хватает соединение, но не отдаёт его обратно по окончанию своей работы.
    Это сейчас вся мозаика сложилась быстро, а добывались эти знания дольше.

    «Так быть не должно», решил я, и запилил патчик (https://issues.apache.org/jira/browse/DBCP-435, выразился в http://svn.apache.org/viewvc/commons/proper/dbcp/tags/DBCP_2_1/src/main/java/org/apache/commons/dbcp2/BasicDataSourceFactory.java?view=markup ), патч был принят и вошёл в версию DBCP 2.1. Когда и если Tomcat 8 обновит версию DBCP до 2.1+, думаю, что админам откроются многие тайны про их конфигурации Resource :)

    По поводу этого происшествия мне лишь осталось рассказать ещё одну деталь — какого чёрта в дампе было аж 29 DataSource’ов вместо всего 7 штук. Разгадка кроется в банальной арифметике, 7*4=28 +1=29.

    Детальнее о том, почему нельзя закидывать Resource в файл /conf/context.xml томкета

    На каждую подпапку внутри папки /webapps поднимается своя копия /conf/context.xml, а значит то количество Resource, которые там есть, следует умножать на количество приложений, чтобы получить общее количество пулов, поднятых в памяти томкета. На вопрос «что в этом случае делать?» ответ будет таким: нужно вынести все объявления Resource из /conf/context.xml в файл /conf/server.xml, внутрь тега GlobalNamingResources. Там Вы можете найти один, имеющийся по умолчанию, Resource name=«UserDatabase», вот под ним и размещайте свои пулы. Далее необходимо воспользоваться тегом ResourceLink, его желательно поместить в приложение, в проекте, внутрь файла /META-INF/context.xml — это так называемый «per-app context», то есть контекст, который содержит объявления компонентов, которые будут доступны только для разворачиваемого приложения. У ResourceLink параметры name и global могут содержать одинаковые значения.
    Для примера:

    <ResourceLink name="jdbc/MyDB" global="jdbc/MyDB" type="javax.sql.DataSource"/>

    Эта ссылка будет выхватывать из глобально объявленных ресурсов DataSource с именем «jdbc/MyDB», и ресурс станет доступен приложению.
    ResourceLink можно (но не нужно) разместить и в /conf/context.xml, но в этом случае доступ к ресурсам, объявленным глобально, будет у всех приложений, пусть даже и не будет столько копий DataSource в памяти.
    Ознакомиться с деталями можно вот тут: GlobalNamingResources — http://tomcat.apache.org/tomcat-7.0-doc/config/globalresources.html#Environment_Entries, ResourceLink — http://tomcat.apache.org/tomcat-7.0-doc/config/globalresources.html#Resource_Links, также можно просмотреть эту страницу: tomcat.apache.org/tomcat-7.0-doc/config/context.html.
    Для TC8 эти же страницы: http://tomcat.apache.org/tomcat-8.0-doc/config/globalresources.html и http://tomcat.apache.org/tomcat-8.0-doc/config/context.html .

    После этого всё стало ясно: 11 соединений было потому, что в одном, активном DataSource было съедено 8 соединений (maxTotal = 8), и ещё по minIdle=1 в трёх других неиспользуемых DataSource-копиях.

    В ту пятницу мы откатились на Tomcat 7, который лежал рядышком, и ждал, когда от него избавятся, это дало время спокойно во всём разобраться.
    Плюс позже, уже на TC7, обнаружилась утечка соединений, всё благодаря removeAbandoned+logAbandoned. DBCP радостно сообщил в логфайл catalina.log о том, что

    "org.apache.tomcat.dbcp.dbcp.AbandonedTrace$AbandonedObjectException: DBCP object created 2015-02-10 09:34:20 by the following code was never closed:
    	at org.apache.tomcat.dbcp.dbcp.AbandonedTrace.setStackTrace(AbandonedTrace.java:139)
    	at org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:81)
    	at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
    	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
    	at наш.пакет.СуперКласс.getConnection(СуперКласс.java:100500)
    	at наш.пакет.СуперКласс.плохойПлохойМетод(СуперКласс.java:100800)
    	at наш.пакет.СуперКласс.вполнеВменяемыйМетод2(СуперКласс.java:100700)
    	at наш.пакет.СуперКласс.вполнеВменяемыйМетод1(СуперКласс.java:100600)
    	ещё куча строк..."
    

    Вот этот вот плохойПлохойМетод имеет в сигнатуре Connection con, но внутри была конструкция «con = getConnection();», которая и стала камнем преткновения. СуперКласс вызывается редко, поэтому на него и не обращали внимания так долго. Плюс к этому, вызовы происходили, я так понимаю, не во время рабочего дня, так что даже если что-то и подвисало, то никому уже не было дела до этого. А в ТуСамуюПятницу просто звёзды сошлись, начальнику департамента заказчика понадобилось посмотреть кое-что :)

    Приложение №2

    Что же касается «события №2» — мне отдали приложение на рефакторинг, и оно на серверах тут же вздумало упасть.
    Дампы попали уже ко мне, и я решил попробовать поковырять и их тоже.
    Открыл дамп в JVVM, и «чё-то приуныл»:

    Что можно понять из Object[], да ещё и в таком количестве?
    ( Опытный человек, конечно же, увидел уже причину, правда? :) )

    Так у меня зародилась мысль «ну неужели никто ранее не занимался этим, ведь наверняка уже есть готовый инструмент!». Так я наткнулся на этот вопрос на StackOverflow: http://stackoverflow.com/questions/2064427/recommendations-for-a-heap-analysis-tool-for-java.
    Посмотрев предложенные варианты, я решил остановиться на MAT, надо было попробовать хоть что-то, а это открытый проект, да ещё и с куда бОльшим количеством голосов, чем у остальных пунктов.

    Eclipse Memory Analyzing Tool

    Итак, MAT.
    Рекомендую скачивать последнюю версию Eclipse, и устанавливать MAT туда, потому как самостоятельная версия MAT ведёт себя плохо, там какая-то чертовщина с диалогами, в них не видно содержимого в полях. Быть может кто-то подскажет в комментариях, чего ему не хватает, но я решил проблему, установив MAT в Eclipse.

    Открыв дамп в MAT я запросил выполнение Leak Suspects Report.


    Удивлению не было предела, честно говоря.

    1.2 гига весят соединения в базу.

    Каждое соединение весит от 17 до 81 мегабайта.

    Ну и ещё «немного» сам пул.
    Визуализировать проблему помог отчёт Dominator Tree:

    Причиной всех падений оказались километры SQLWarning’ов, база настойчиво пыталась дать понять, что «010SK: Database cannot set connection option SET_READONLY_TRUE.», а пул соединений BoneCP не вычищает SQLWarning’и после освобождения и возврата соединений в пул (может быть это где-то можно сконфигурировать? Подскажите, если кто знает).
    Гугл сказал, что такая проблема с Sybase ASE известна ещё с 2004 года: https://forum.hibernate.org/viewtopic.php?f=1&t=932731
    Если вкратце, то «Sybase ASE doesn’t require any optimizations, therefore setReadOnly() produces a SQLWarning.», и указанные решения всё ещё работают.
    Однако это не совсем решение проблемы, потому как решение проблемы — это когда при возврате соединения в пул все уведомления базы очищаются в силу того, что они уже никогда никому не понадобятся.
    И DBCP таки умеет делать это: http://svn.apache.org/viewvc/commons/proper/dbcp/tags/DBCP_1_4/src/java/org/apache/commons/dbcp/PoolableConnectionFactory.java?view=markup, метод passivateObject(Object obj), в строке 687 можно увидеть conn.clearWarnings();, этот вызов и спасает от километров SQLWarning’ов в памяти.
    Об этом я узнал из тикета: https://issues.apache.org/jira/browse/DBCP-102
    Также мне подсказали про вот такой тикет в багтрекере: https://issues.apache.org/jira/browse/DBCP-234, но он касается уже версии DBCP 2.0.

    В итоге я перевёл приложение на DBCP (пусть и версии 1.4). Пусть нагрузка на сервис и немаленькая (от 800 до 2к запросов в минуту), но всё же приложение ведёт себя хорошо, а это главное. И правильно сделал, потому как BoneCP уже пять месяцев не поддерживается, правда, ему на смену пришёл HikariCP. Нужно будет посмотреть, как дела в его исходниках…

    Сражаемся с OOM

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

    Вооружившись обоими инструментами, я принялся ковырять каждый присланный дамп в поисках причин падения по OOM.
    Как правило все OOM приводили меня к TaskThread.

    И если нажать на надпись See stacktrace, то да, это будет как раз банальный случай, когда какой-то поток вдруг внезапно упал при попытке отмаршалить результат своей работы.

    Однако здесь ничто не указывает на причину возникновения OOM, здесь лишь результат. Найти причину мне пока-что, в силу незнания всей магии OQL в MAT, помогает именно JVVM.
    Загружаем дамп там, и пытаемся отыскать причину!

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

    Два SybCallableStatement, и один SybPreparedStatement.
    Думаю, что дело усложнится, если Statement’ов будет куда больше, но немного подрихтовав один из следующих запросов, указав в where нужные условия, думаю, всё у Вас получится. Плюс, конечно же, стоит хорошенько посмотреть в MAT, что за результаты пытается отмаршалить поток, какой объект, и станет понятнее, какой именно из Statement’ов необходимо искать.

    select {
        instance: x,
        stmtQuery: x._query.toString(),
        params: map(x._paramMgr._params, function(obj1) {
                if (obj1 != null) {
                    if (obj1._parameterAsAString != null) {
                        return '''+obj1._parameterAsAString.toString()+''';
                    } else {
                        return "null";
                    }
                } else {
                    return "null";
                }
            })
        }
    from com.sybase.jdbc4.jdbc.SybCallableStatement x
    where x._query != null


    Не то, это «внутренние» вызовы.

    select {
        instance: x,
        stmtQuery: x._query.toString(),
        params: map(x._paramMgr._params, function(obj1) {
                if (obj1 != null) {
                    if (obj1._parameterAsAString != null) {
                        return '''+obj1._parameterAsAString.toString()+''';
                    } else {
                        return "null";
                    }
                } else {
                    return "null";
                }
            })
        }
    from com.sybase.jdbc4.jdbc.SybPreparedStatement x
    where x._query != null


    А вот и дичь!
    Для чистоты эксперимента можно кинуть такой же запрос в любимой БД-IDE, и он будет очень долго отрабатывать, а если покопаться в недрах хранимки, то будет понятно, что там просто из базы, которая нам не принадлежит, выбирается 2 миллиона строк по такому запросу с такими параметрами. Эти два миллиона даже влазят в память приложения, но вот попытка отмаршалить результат становится фатальной для приложения. Такое себе харакири. :)
    При этом GC старательно убирает все улики, но не спасло его это, всё же источник остался в памяти, и он будет наказан.

    Почему-то после всего этого рассказа почувствовал себя тем ещё неудачником.

    Прощание

    Вот и закончилось моё повествование, надеюсь, Вам понравилось :)
    Хотел бы выразить благодарность своему начальнику, он дал мне время во всём этом разобраться. Считаю эти новые знания очень полезными.
    Спасибо девушкам из Scorini за неизменно вкусный кофе, но они не прочтут этих слов благодарности — я даже сомневаюсь, что они знают о существовании Хабрахабра :)
    Хотелось бы увидеть в комментариях ещё больше полезной инфы и дополнений, буду очень благодарен.

    Думаю, самое время почитать документацию к MAT…

    UPD1: Да, совсем забыл рассказать про такие полезные вещи, как создание дампов памяти.
    docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/clopts.html#gbzrr
    Опции
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:HeapDumpPath=/disk2/dumps
    весьма полезны для генерации дампов в момент падения приложения по OutOfMemoryError,
    а также существует возможность снять дамп памяти с приложения «наживо», посреди его работы.
    Для этого существует утилита jmap.
    Пример вызова для винды:
    «C:installPSToolsPsExec.exe» -s «C:Program FilesJavajdk1.7.0_55binjmap.exe» -dump:live,format=b,file=C:dump.hprof 3440
    последний параметр — это PID java-процесса. Приложение PsExec из набора PSTools позволяет запускать другие приложения с правами системы, для этого служит ключ «-s». Опция live полезна, чтобы перед сохранением дампа вызвать GC, очистив память от мусора. В случае, когда возникает OOM, чистить память незачем, там уже не осталось мусора, так что не ищите, как можно установить опцию live в случае возникновения OOM.

    UPD2 (2015-10-28) | Случай номер два три
    (Было принято решение дописать это сюда как апдейт, а не пилить новую статью о том же самом):
    Ещё один интересный случай, но уже с Оракловой базой.
    Один из проектов использует фичу с XML, проводит поиски по содержимому сохранённого XML-документа. В общем, этот проект иногда давал о себе знать тем, что вдруг внезапно один из инстансов переставал подавать признаки жизни.
    Почуяв «хороший» случай потренироваться

    на кошках

    , я решил посмотреть его дампы памяти.

    Первое, что я увидел, было «у вас тут много коннектов в памяти осталось». 21к!!! И какой-то интересный oracle.xdb.XMLType тоже давал жару. «Но это же Оракл!», вертелось у меня в голове. Забегая вперёд скажу что таки да, он виноват.

    Итак, видим кучу T4CConnection, которые лежат в HashMap$Entry. Обратил внимание сразу, что вроде бы и SoftHashMap, что, вроде как, должно означать, что оно не должно вырастать до таких размеров. Но результат видите и сами — 50-60 килобайт в коннекте, и их реально МНОГО.

    Посмотрев, что собой представляют HashMap$Entry — увидел, что примерно картина одинакова, всё связано с SoftHashMap, с Оракловыми коннектами.

    Что, собственно, подтверждалось такой картинкой. HashMap$Entry было просто море, и они более-менее сакуммулировались внутри oracle.xdb.SoftHashMap.
    В следующем дампе картина была примерно такой же. По Dominator Tree было видно, что внутри каждого Entry находится тяжёлый такой BinXmlProcessorImpl.

    -=-=-
    Если учесть, что я в тот момент был не силён в том, что такое xdb, и как он связан с XML, то, несколько растерявшись, я решил, что надо бы погуглить, быть может кто-то уже в курсе, что со всем этим нужно делать. И чутьё не обмануло, по запросу «oracle.xdb.SoftHashMap T4CConnection» нашлось
    раз piotr.bzdyl.net/2014/07/memory-leak-in-oracle-softhashmap.html
    и два leakfromjavaheap.blogspot.com/2014/02/memory-leak-detection-in-real-life.html
    Утвердившись, что тут всё-таки косяк у Оракла, дело оставалось за малым.
    Попросил администратора БД посмотреть информацию по обнаруженной проблеме:

    xxx: Ключевые слова: SoftHashMap XMLType
    yyy: Bug 17537657 Memory leak from XDB in oracle.xdb.SoftHashMap
    yyy: The fix for 17537657 is first included in
    12.2 (Future Release)
    12.1.0.2 (Server Patch Set)
    12.1.0.1.4 Database Patch Set Update
    12.1.0.1 Patch 11 on Windows Platforms
    yyy: нда. Описание
    Description
    When calling either getDocument() using the thin driver, or getBinXMLStream()
    using any driver, memory leaks occur in the oracle.xdb.SoftHashMap class.
    BinXMLProcessorImpl classes accumulate in this SoftHashMap, but are never
    removed.
    xxx: Всё так и есть :)

    Вот описание фикса: updates.oracle.com/Orion/Services/download?type=readme&aru=18629243 (для доступа требуется учётка в Оракл).
    -=-=-
    После применения фикса инстансы нашего приложения живут уже месяц, и пока без эксцессов. *постучал по дереву* *поплевал через левое плечо*
    Успехов Вам в поисках!

    Алексей Анищенко

    Алексей Анищенко

    Потому что у вас файл больше 4 гигабайт размером, а файловая система, куда пытаетесь копировать, в формате FAT32. Она не умеет хранить файлы размером более 4 гигабайт. Сохраняйте на раздел с NTFS файловой системой

  • Discord произошла неизвестная сетевая ошибка
  • Discord при установке выдает ошибку update failed
  • Discord ошибка при установке java
  • Discord ошибка при запуске приложения 0xc0000135
  • Discord ошибка при запуске приложения 0xc0000102