Ошибка из-за малого размера памяти подкачки

Обновлено: 21.11.2024

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

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

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

"Ошибка чтения на устройстве подкачки" – относительно распространенный сбой в Linux, который может привести к сбою системы или ее зависанию, что сделает ее непригодной для использования. В этом руководстве показано, как исправить ошибку чтения при сбое устройства подкачки в Ubuntu Linux.

Зачем использовать файл подкачки?

Файл подкачки может быть физическим носителем данных, например USB-накопителем, файлом на жестком диске или выделенным разделом на носителе данных.

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

Начиная с Ubuntu Linux 18.04 область подкачки по умолчанию представляет собой файл подкачки, до этого область подкачки использовалась как выделенный раздел подкачки.

Распространенные причины ошибки чтения при сбое устройства подкачки

Некоторые из наиболее распространенных причин сбоев при подкачке устройств или файлов включают следующее:

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

Глядя на причины, упомянутые выше, мы можем сказать, что увеличение размера ОЗУ или файла подкачки может помочь исправить ошибку чтения при проблеме с устройством подкачки в Ubuntu.

Просмотр размера файла подкачки

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

Выполните следующую команду, чтобы проверить размер файла подкачки в Ubuntu Linux. Кроме того, в нем также указывается объем оперативной памяти.

Как видно из приведенного выше вывода, этот конкретный компьютер имеет хранилище файлов подкачки объемом 2 ГБ.

Кроме того, вы также можете использовать графический интерфейс для проверки файла подкачки и используемой памяти. Нажмите клавиши Super + A на клавиатуре и найдите системный монитор. На графике в середине показано использование памяти и файла подкачки.

Знание файла подкачки и использования оперативной памяти важно для принятия обоснованных решений при управлении вашей оперативной памятью в Linux.

Создание файла подкачки

Прежде чем создавать или увеличивать размер файла подкачки, обязательно отключите /swapfile с помощью приведенной ниже команды.

После отключения файла подкачки вы готовы создать новый файл подкачки. Например, чтобы создать файл подкачки 4G, выполните следующую команду.

В целях безопасности вы должны назначить своему файлу подкачки только права на чтение и запись для пользователя root, используя приведенную ниже команду.

Вы можете указать, что /swapfile является областью подкачки, используя утилиту mkswap, как показано ниже.

Наконец, вы можете включить или запустить файл подкачки, выполнив следующую команду.

Отслеживание использования памяти в Linux

Теперь, когда у вас есть файл подкачки с достаточным объемом памяти, ваша система Linux будет использовать его соответствующим образом. Вы можете контролировать файл подкачки и использование оперативной памяти с помощью инструментов, описанных в этом руководстве. Другой вариант проверки файла подкачки и использования оперативной памяти — использовать команду free -m.

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

Мне нужна помощь. это было 3 ДНЯ, и это сообщение действительно раздражает. он продолжал говорить:

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

могу дать совет или помочь

или, может быть, я буду играть в роблокс или что-то еще.

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

  • Добытчик алмазов
  • Местоположение: Техас.
  • Дата регистрации: 7 декабря 2011 г.
  • Сообщений: 783
  • Местоположение: Музыкальная комната
  • Minecraft: Playstation2RSOD
  • Xbox: токсиковирус1230
  • PSN: toxicvirus1230
  • Сведения об участнике

Мне нужна важная информация, мой мальчик: игра запускается и вылетает после экрана Mojang или программа запуска вылетает при запуске?

Скучно и не знаете, что делать иногда? Хотите иметь возможность зарабатывать все на Amazon, не тратя НИКАКИХ денег? Points2Shop может сделать именно это! Вот ссылка на мой личный реферальный сайт, если вы действительно заинтересованы. Это потрясающий сайт, которым я пользуюсь с 2013 года. Зарабатывайте баллы, чтобы использовать что-либо на Amazon. Его бесплатно и люди всех возрастов могут использовать его! Вещи, которые я заработал:

Tony Hawk's Underground для Xbox Original

Повязка "Меланхолия Харухи Судзамии"

Баскетбольный мяч NBA Spalding, светящийся в темноте

Веб-камера ночного видения Aftermark U19

Альбом Космического Яйца Волчицы

Подарочная карта iTunes на 10 долл. США (цифровая)

Если у вас есть какие-либо вопросы, напишите мне.

  • Убийца драконов Края
  • Дата регистрации: 06.10.2013
  • Сообщения: 12 114
  • Minecraft: TheMasterCaver
  • Сведения об участнике

Каковы ваши аргументы JVM? Из чтения ошибки наиболее вероятными причинами являются либо нехватка физической оперативной памяти на вашем компьютере, либо превышение предела 32-битного процесса, который легко превысить, если вы выделяете больше памяти, чем по умолчанию (на самом деле, я даже получил ошибку «Minecraft исчерпал память» (нефатальное сообщение об ошибке в игре) с выделенным по умолчанию 1 ГБ, так как у меня 32-битная Java/OS и версии до 1.6.4, даже предупреждают меня об этом если я попытаюсь использовать дальнее расстояние рендеринга. С выделенным 768 МБ у меня никогда не было проблем, и для самой игры еще достаточно памяти).

По большей части для Minecraft требуется только 1 ГБ выделенной оперативной памяти, а при настройках по умолчанию будет еще меньше; попытка изменить аргументы JVM часто вызывает больше проблем, чем решает, особенно из-за непонимания того, что означает "-Xmn128M".

В частности, обратите внимание на решения, приведенные для ошибки, которую вы получаете:

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

Возможные решения:
Уменьшить нагрузку на память в системе.
Увеличить физическую память или пространство подкачки.
Проверить, заполнено ли резервное хранилище подкачки.
Использовать 64-разрядную версию Java в 64-разрядной ОС.
Уменьшить размер кучи Java (-Xmx/-Xms)
Уменьшить количество потоков Java
Уменьшить размер стека потоков Java (-Xss)
Установить больший размер кэша кода с помощью -XX:ReservedCodeCacheSize =

Если у вас 64-разрядная ОС, вы также должны использовать только 64-разрядную версию Java, поскольку в противном случае ОС должна эмулировать 32-разрядную среду, что приводит к снижению производительности и проблемам со стабильностью, что должно иметь место, если вы используете последний лаунчер, который поставляется с собственной Java. В противном случае у вас слишком много вещей работает в фоновом режиме; в простое мой компьютер использует только 600-700 МБ ОЗУ, 2 ГБ при игре в Minecraft (процесс Java использует намного больше памяти, чем выделено из-за памяти, используемой нативными библиотеками, OpenGL и самой JVM, что является то, что необходимо учитывать при выделении памяти).

Первый мир TheMasterCaver — возможно, самый заброшенный мир в истории Minecraft — включает в себя загрузку мира.
TheMasterCaver's World — моя собственная версия Minecraft, в значительной степени основанная на моих представлениях о том, как игра должна была развиваться с версии 1.6.4.
Почему я до сих пор играю в 1.6.4?

  • Добытчик алмазов
  • Дата регистрации: 22 февраля 2015 г.
  • Сообщения: 846
  • Сведения об участнике

Каковы ваши аргументы в пользу JVM? Из чтения ошибки наиболее вероятными причинами являются либо нехватка физической оперативной памяти на вашем компьютере, либо превышение предела 32-битного процесса, который легко превысить, если вы выделяете больше памяти, чем по умолчанию (на самом деле, я даже получил ошибку «Minecraft исчерпал память» (нефатальное сообщение об ошибке в игре) с выделенным по умолчанию 1 ГБ, так как у меня 32-битная Java/OS и версии до 1.6.4, даже предупреждают меня об этом если я попытаюсь использовать дальнее расстояние рендеринга. С выделенным 768 МБ у меня никогда не было проблем, и для самой игры еще достаточно памяти).

По большей части для Minecraft требуется только 1 ГБ выделенной оперативной памяти, а при настройках по умолчанию будет еще меньше; попытка изменить аргументы JVM часто вызывает больше проблем, чем решает, особенно из-за непонимания того, что означает "-Xmn128M".

В частности, обратите внимание на решения, приведенные для ошибки, которую вы получаете:

Если у вас 64-разрядная ОС, вы также должны использовать только 64-разрядную версию Java, поскольку в противном случае ОС должна эмулировать 32-разрядную среду, что приводит к снижению производительности и проблемам со стабильностью, что должно иметь место, если вы используют последнюю версию программы запуска, которая поставляется с собственной Java.В противном случае у вас слишком много вещей работает в фоновом режиме; в простое мой компьютер использует только 600-700 МБ ОЗУ, 2 ГБ при игре в Minecraft (процесс Java использует намного больше памяти, чем выделено из-за памяти, используемой нативными библиотеками, OpenGL и самой JVM, что является то, что необходимо учитывать при выделении памяти).

Некоторое время назад у меня было множество проблем с Java и программой запуска Minecraft, поэтому я скачал программу запуска, используемую на компьютерах с Linux, а также установил 32-разрядную версию Java (у меня 64-разрядный компьютер. Разве не все современные компьютеры 64-битная?). Мой FPS увеличился, но теперь, когда я играю, память расходуется слишком быстро. Когда я запускаю мир, процентная часть в правом верхнем углу экрана отладки начинается примерно с 20% и довольно быстро увеличивается до 70%, а затем снова снижается до 20%. Если я играю с Forge, это еще хуже, так как он использует память безумно быстро. Хуже всего то, что по какой-то причине, когда я захожу в миры и выхожу из них, память снова начинает подниматься, когда я вхожу в мир. Например, когда я впервые захожу в сохранение после открытия игры, память уходит с 20% до 70%. Если я выйду из системы и войду в какое-то другое сохранение несколько раз, а затем снова войду в любое сохранение, память начнет увеличиваться с 20% до 99%, и тогда я получу всплеск задержки, и память вернется к 20%.

Я выделил 512 МБ в аргументах JVM, но, как вы сказали, я могу не понять, что это на самом деле означает. Я всегда предполагал, что это означает 512 МБ ОЗУ. Я также заметил, что даже когда я изменяю число по умолчанию 128 МБ в аргументах JVM, когда я смотрю на экран отладки, в правом верхнем углу все равно будет указано 768 МБ или 972 МБ, выделенных для Minecraft. У вас есть идеи, что может быть причиной всего этого?

Если вы заинтересованы в отличном чистом ванильном сервере из белого списка, рассмотрите возможность подачи заявки!

  • Убийца драконов Края
  • Дата регистрации: 06.10.2013
  • Сообщения: 12 114
  • Minecraft: TheMasterCaver
  • Сведения об участнике


Я выделил 512 МБ в аргументах JVM, но, как вы сказали, я могу не понять, что это на самом деле означает. Я всегда предполагал, что это означает 512 МБ ОЗУ. Я также заметил, что даже когда я изменяю число по умолчанию 128 МБ в аргументах JVM, когда я смотрю на экран отладки, в правом верхнем углу все равно будет указано 768 МБ или 972 МБ, выделенных для Minecraft. У вас есть идеи, что может быть причиной всего этого?

Распространенной ошибкой, которую делают люди при изменении аргументов JVM, является увеличение -Xmn, что, в свою очередь, вызывает всевозможные проблемы с пиковыми задержками и необычным поведением памяти; лучше оставить его в покое или даже удалить все аргументы, кроме -Xmx(что угодно); Я сам использую -Xmx768M -Xms768M -Xss1024K (последнее увеличивает объем стека, что в противном случае приводило к сбоям переполнения стека. Это не требуется для 64-битной Java, если вы не используете определенные моды, поскольку распределение по умолчанию составляет 1024 КБ. Кроме того, не рекомендуется устанавливать очень высокое значение Xms, если Xmx тоже высокое, если вы не уверены, что игра будет использовать память; после нескольких часов игры без него было выделено около 600 МБ; это действительно снижает частоту мусора коллекции на ранней стадии, пока JVM не изменит размер кучи до оптимального размера). В любом случае оптимальные аргументы JVM для разных компьютеров разные.

Обратите внимание, что в любом случае нормально наблюдать рост и падение использования памяти в регулярном цикле, потому что так работает сборщик мусора в Java. сбор мусора в режиме реального времени. Вот пример того, как меняется использование памяти (диаграмма в правом верхнем углу); с настройками, которые я использую, он поднимается до 99%, прежде чем произойдет полная сборка мусора.:

Первый мир TheMasterCaver — возможно, самый заброшенный мир в истории Minecraft — включает в себя загрузку мира.
TheMasterCaver's World — моя собственная версия Minecraft, в значительной степени основанная на моих представлениях о том, как игра должна была развиваться с версии 1.6.4.
Почему я до сих пор играю в 1.6.4?

Для нормальной работы Майнкрафт рекомендуется выделять как можно больше памяти, особенно при использовании модов и ресурспаков высокого разрешения. Проблем в этом направлении несколько, решить их несложно.

В лаунчере можно выделить только 1 ГБ оперативной памяти

В лаунчере настроек (значок Gear -> Advanced) видно, что можно выделить до 1 гигабайта памяти. Все из-за разрядности, заданной Java x32, нужна Java x64.

1) Перед переустановкой Java вы должны знать, что у вас 64-битная система. Выполните следующие шаги, чтобы определить разрядность:

Для Windows

Заходим в "Мой компьютер" -> "Свойства системы" -> находим надпись: "Тип системы" и там будет 64-битная или 32-битная.

Для Linux

Откройте Терминал и введите команду uname -m, если появится x86_64 - значит у вас 64-битная система, если i686 или i386 - то у вас 32-битная.

2) Как только вы узнали, что у вас 64-битная система, приступим к установке Java 64x. (Если у вас по-прежнему 32-битная система, вам необходимо переустановить систему на 64-битную, при условии, что процессор поддерживает 64-битную схему.)

Для Windows

Загрузите установщик Java 64, запустите его и выполните следующие инструкции (просто нажмите «Установить»). Скачать Java 64x для Windows

Для Linux

Загрузите установщик Java 64, запустите его и выполните следующие инструкции (просто нажмите "Установить").

3) После этого в настройках можно выделить максимальный объем памяти (при создании мод-паков тоже).

Старую версию Java 32x удалять не обязательно, но если в настройках отображается только 1 ГБ, удалите старую версию и установите только Java 64x.

Подкачка памяти обычно выполняется по принципу "установил и забыл". В большинстве корпоративных сред подкачка встроена в системы, и эти кэши памяти не манипулируются, если только нет явной нехватки доступной памяти или если сервер выходит из строя из-за ошибки OOM killer (недостаточно памяти). Однако существует нишевая ситуация, которая может привести к тому, что администратору потребуется очистить системную подкачку вручную. Если это та ситуация, в которой вы оказались, вы попали в нужное место. Эта статья представляет собой обсуждение этой ситуации и необходимого решения.

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

Значение по умолчанию для swappiness – 60; однако вы можете вручную установить его в диапазоне от 0 до 100. Небольшие значения приводят к небольшому обмену, в то время как высокие значения могут вызывать очень агрессивный обмен. Нулевое значение приводит к тому, что подкачка вообще не происходит, поэтому, если вы хотите свести к минимуму подкачку до минимально возможного значения, не отключая ее, вы должны установить хотя бы единицу.

Если вы хотите изменить swappiness вашей системы, процедура очень проста. Вы можете проверить текущую настройку swappiness, выполнив следующую команду:

Это должно выглядеть примерно так:

Теперь вы можете видеть, что в моей системе значение swappiness равно 30. Чтобы изменить значение, вы хотите использовать следующее:

Чтобы проверить установленное значение, просто просмотрите файл swappiness, который вы просматривали ранее, чтобы узнать исходное значение. Легкий день. Теперь, когда вы понимаете базовые параметры, управляющие поведением подкачки в нашей системе, вы готовы научиться очищать эту память в случае возникновения ситуации. Впервые в вашей терминальной жизни здесь все будет легко.

Чтобы очистить память подкачки в вашей системе, вам просто нужно отключить подкачку. Это перемещает все данные из памяти подкачки обратно в ОЗУ. Это также означает, что вы должны быть уверены, что у вас есть ОЗУ для поддержки этой операции. Простой способ сделать это — запустить «free -m», чтобы увидеть, что используется в подкачке и в ОЗУ. После того, как вы выключите его, вы можете подождать произвольное количество времени (30 секунд или около того), чтобы дать время для завершения операции, а затем снова включить подкачку. Это очищает кеш памяти подкачки и снова включает его. Вот все команды, которые вам понадобятся!

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

Для получения дополнительной информации о пространстве подкачки см. мою статью с изложением основ здесь.

Хотите попробовать Red Hat Enterprise Linux? Загрузите его сейчас бесплатно.

Читайте также: