Содержание
- Как исправить ошибку “На компьютере недостаточно памяти”
- Способ №1. Обслуживание системы
- Способ №2. Увеличение файла подкачки
- Способ №3. Восстановление реестра
- Способ №4. Очистка временных файлов
- Способ №5. Закройте “тяжелые” программы
- Похожие статьи про восстановление данных:
- Как автоматически освободить место на жестком диске?
- 20 способов ускорить Windows 10
- Что такое SSD и как он работает
- Memory allocation for * bytes failed: причины и решения.
- СПРАВКА
- Memory allocation for * bytes failed: аппаратные ограничения
- Чуть подробнее…
- Memory allocation for * bytes failed: решения
- Memory allocation for * bytes failed: ограничения со стороны системы
- Memory allocation for * bytes failed: решения
- Memory allocation for * bytes failed: фрагментация памяти?
- Memory allocation for * bytes failed: решения
- Error allocating memory как исправить windows 10 x64
- Ошибки распределения памяти могут быть вызваны медленным ростом файла страницы
- Симптомы
- Причина
- Обходной путь
- Статус
- Дополнительная информация
- Memory allocation errors can be caused by slow page file growth
- Symptoms
- Cause
- Workaround
- Status
- More information
Как исправить ошибку “На компьютере недостаточно памяти”
В этой статье мы расскажем вам о 4 эффективных способах исправления ошибки Windows 10 “На компьютере недостаточно памяти”.
Содержание статьи:
Способ №1. Обслуживание системы
Чтобы исправить возникшую неполадку, воспользуйтесь приведенной ниже инструкцией:
1. Запустите Панель управления. Вы можете быстро найти данную утилиту просто начав писать ее название в меню Пуск.
2. Переключите вид отображения параметров на Крупные значки и найдите меню Устранение неполадок. Для более быстрого доступа к нему вы можете ввести название утилиты в диалоговом окне Поиск в панели управления.
3. В левом углу вы увидите список расширенных возможностей открытого окна. Выберите параметр Просмотр всех категорий.
4. Перед вами появится список всех доступных служб. Найдите в нем параметр Обслуживание системы и откройте его.
5. В появившемся окне диагностики неполадок нажмите Далее и устраните все возникшие на компьютере ошибки.
Способ №2. Увеличение файла подкачки
Иногда ответ на вопрос нехватки памяти может крыться в размере файла подкачки. Давайте разберем как его правильно настроить.
1. Откройте утилиту Выполнить при помощи клавиш Win + R.
2. В появившемся окне введите sysdm.cpl и нажмите ОК.
3. Откройте вкладку Дополнительно и в меню Быстродействие кликните по клавише Параметры.
4. В открывшемся окне откройте вкладку Дополнительно и в меню Виртуальная память кликните по клавише Изменить.
5. Снимите галочку с параметра Автоматически выбирать объем файла подкачки для всех дисков.
6. Укажите для системного диска (обычно это диск С:) Размер по выбору системы, нажмите Задать, ОК и перезапустите компьютер.
Обычно перезагрузка требуется только при уменьшении размера файла подкачки. Поэтому если вы его увеличивали, нет необходимости перезагружать компьютер.
Способ №3. Восстановление реестра
Иногда причиной возникшей неполадки может стать ошибка внутри реестра, которая может повлечь за собой повреждение и других системных функций. Ниже мы рассмотрим способ исправления повреждений реестра.
1. Воспользуйтесь комбинацией клавиш Win + R, чтобы открыть утилиту Выполнить. В диалоговом окне введите cmd и нажмите ОК.
Альтернативным способом запуска cmd является поиск утилиты при помощи меню Пуск и ее запуск от имени администратора.
2. В открывшемся окне командной строки введите команду sfc /scannow. Она проведет полное сканирование вашей системы, процесс которого может отнять некоторое время.
3. Дождитесь завершения проверки системы и перезапустите компьютер. Таким образом все поврежденные файлы будут удалены или исправлены.
Способ №4. Очистка временных файлов
Мы часто недооцениваем влияние временных файлов на загруженность нашей системы и очень зря, ведь они могут существенно повлиять на быстродействие наших компьютеров. Поэтому настоятельно рекомендуем вам проводить периодическую очистку таких документов.
1. Откройте меню Пуск.
2. В диалоговом окне введите команду Очистка диска и запустите найденную утилиту.
3. Выберите диск, который вы хотите очистить.
4. Кликните по клавише Очистить системные файлы и подтвердите корректность выбранного диска.
5. После того как вы ознакомитесь с данными о размере пространства, которое будет освобождено с помощью очистки, нажмите ОК и подтвердите запрос об удалении.
6. По завершению процесса перезапустите компьютер.
Способ №5. Закройте “тяжелые” программы
Нередко причиной нехватки памяти становятся грузные приложения, которые отнимают большое количество ресурсов компьютера, из-за чего он не может полноценно функционировать. В таком случае единственным доступным способом исправления неполадки является их отключение или же приобретение большего количества оперативной памяти.
1. Откройте приложение Диспетчер задач при помощи комбинации клавиш Ctrl + Alt + Del. Альтернативным и не менее удобным способом его запуска является щелчок правой кнопкой мыши по Панели задач и выбор Диспетчера из списка доступных вариантов.
2. Во вкладке Процессы отсортируйте приложения по графе Память. Это действие поможет расположить в топе списка самые “тяжелые” приложения, отнимающие большое количество ОЗУ. Завершите их процессы.
Похожие статьи про восстановление данных:
Как автоматически освободить место на жестком диске?
Иногда каждому из нас хочется каким-нибудь образом автоматизировать ту или иную сферу жизни. Сегодня.
20 способов ускорить Windows 10
Что такое SSD и как он работает
SSD (Solid State Drive) — давно не новый товар на рынке комплектующих для ПК, но его популярно.
Источник
Memory allocation for * bytes failed: причины и решения.
Прогресс и маркетинг дарят компьютерному пользователю стабильность в ценах на компьютерные составляющие и всё более оптимальную в подходе к этим составляющим операционную систему. Однако некоторых пользователей даже сегодня продолжает настигать «ошибка 2000-х» в виде аварийно захлопнувшегося приложения с сообщением Windows Memory allocation for * bytes failed. Так почему на фоне нередко переизбытка установленной RAM и запредельного по размерам pagefile.sys эта ошибка всё ещё досаждает некоторым из нас?
Проблема пришла к нам из тех времён, когда пользователи стали активно переходить с Windows XP на более современную Windows Vista и 7, пытаясь при этом сохранить прежнюю конфигурацию компьютера. Ошибка Memory allocation for * bytes failed — ни что иное как эхо ещё более коварной ошибки Unable to allocate memory, которая мучила владельцев «отстающих» сборок. Массовый переход производителей на 64-х битные версии процессоров, многоканальные проходы RAM решили проблему практически полностью. Однако…
СПРАВКА
К сожалению, вследствие ограниченного перевода локализаций Windows, пользователь не всегда способен правильно оценивать обстановку. А на неё Windows нередко прямо и указывает. В нашем случае ошибка Memory allocation for * bytes failed говорит о том, что оперативной памяти в указанном размере было отказано в выделении для этого приложения. Это значит, что отвечающая за перераспределение памяти процедура Управления памятью (Memory Management) просто не справляется с обязанностями. Учитывая границы зависимости MM, которые включают и аппаратные компоненты компьютера (RAM, чипсет, тип хранилища — SSD) и уровень приложений (объекты и структуры данных), можно предположить, что корни проблемы именно у вас никогда уже не решатся переустановкой Windows.
Memory allocation for * bytes failed: аппаратные ограничения
Ниже следуют наиболее вероятные причины ошибки. Они налагаются со стороны именно физического уровня аппаратного обеспечения:
Чуть подробнее…
Доступная память — самое простое объяснение. Если объём требуемой памяти превышает объёмы установленной, запросу со стороны программы системой будет отказано. Конечно, Windows и другие ОС сами себе создали уловку: они считают, что общая память складывается из нескольких факторов:
Этими показателями и объясняются очень многие «НО», из-за которых Windows не «отстёгивает» память, которую программа просит.
Memory allocation for * bytes failed: решения
Memory allocation for * bytes failed: ограничения со стороны системы
Тот случай, когда памяти много, а толку мало. Размер адресного пространства для конкретного процесса априори небольшой. Так память распределяется виртуальным Менеджером памяти, о котором мы уже упомянули: создаётся цепочка адресов памяти, которая связана с конкретным адресным пространством. А у адресного пространства всегда ограниченные границы значений. Так, для 32-х битных систем — это всегда лишь 4 Гб. Но это, вопреки обычному мнению, ещё и не весь предел накладываемым ограничениям. Системные адреса в процессе сеанса наносятся на адресное пространство, тем самым ещё более занижая свободное место. Так что порой, вопреки заявленным минимальным требованиям к «железу», операционная система Windows 7 (даже установленная «начисто»), например, оставит процессам не более 2—2,5 Гб оперативной памяти из 4-х Гб.
Memory allocation for * bytes failed: решения
И думать нечего: переходим на 64 бита. На всех платформах. А 32-х битные сборки пора перевозить в гараж. Тем более, у 64-х битных систем огромные преимущества в вопросах безопасности.
Memory allocation for * bytes failed: фрагментация памяти?
Отсюда начинается очень скользкая тема. Некогда популярные ремонтные утилиты нередко предлагали пользователям в числе прочего и такую функцию как дефрагментация оперативной памяти. Скользкая потому, что моё личное мнение таково: часто шкура выделки не стоит. При нормально работающей системе такие программы если не мешают, то просто бесполезны. На старых системах — да. С объёмом RAM 1,5 — 2 Гб — безусловно. Но сейчас даже смартфоны мощнее. И с такими характеристиками комфортно можно работать разве что в Windows Millenium. В том виде, как эта проблема существовала, она современных пользователей (с, прежде всего, достаточным объёмом памяти) уже не касается (кому интересно — подробности в ссылке): она целиком и полностью ложится на плечи разработчиков. И даже принудительная фрагментация оперативной памяти самой Windows во время загрузки программы-тяжеловеса не должна вызывать ошибки Memory allocation for * bytes failed. Однако… Проверьте, не использует ли ваша «проблемная» программа библиотеку Microsoft Foundation Classes (MFC).
Memory allocation for * bytes failed: решения
Источник
Error allocating memory как исправить windows 10 x64
Что такое ошибка «Недостаточно памяти» при копировании файлов? Как вы знаете, и жесткий диск, и оперативная память играют важную роль в выполнении любой операции на компьютере, поскольку для выполнения каждого процесса или задачи, выполняемой в системе, требуется некоторое хранилище ОЗУ, а также хранилище жесткого диска. Однако бывают случаи, когда вы можете получить следующие сообщения об ошибках при попытке скопировать файлы из одного места в другое:
«Недостаточно памяти или системных ресурсов, закройте некоторые окна или программы и попробуйте снова».
Эти ошибки вызваны ограничением кучи рабочего стола, когда памяти больше не хватает для завершения операции при копировании файлов. Если вы столкнетесь с какой-либо из этих ошибок, в этом посте вам будут предложены некоторые возможные исправления, которые могут увеличить его лимит, и, надеюсь, исправят эту ошибку на вашем компьютере с Windows 10.
Вы можете попробовать закрыть все открытые окна и программы, а затем снова попытаться скопировать файл и посмотреть, поможет ли это. Если нет, то переходите к приведенным ниже инструкциям. Но прежде чем вы это сделаете, убедитесь, что вы сначала создали точку восстановления системы. Таким образом, вы можете отменить внесенные вами изменения в любое время, если есть какие-то нежелательные изменения, которые вы хотите отменить. После создания точки восстановления системы выполните действия, указанные ниже.
Шаг 1: Нажмите клавиши Win + R, чтобы открыть служебную программу «Выполнить», введите в поле «Regedit» и нажмите «Ввод», чтобы открыть редактор реестра.
Шаг 2: Затем перейдите к этому разделу реестра: ComputerHKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerSubSystems
Шаг 3: Теперь дважды щелкните DWORD с именем Windows, чтобы изменить его.
Шаг 4: Измените значения SharedSection в поле Value Data. Он должен быть в формате «SharedSection = aaaa, bbbb, cccc». Обратите внимание, что вам нужно изменить значение «bbbb» и «cccc». Поэтому, если вы используете операционную систему x86, установите значение bbbb на 12288 а затем установите значение для cccc равным 1024, С другой стороны, если вы используете операционную систему x64, установите для bbbb значение 20480 и значение cccc для 1024.
Шаг 5: Закройте редактор реестра и перезагрузите компьютер, чтобы изменения вступили в силу.
С другой стороны, есть еще один инструмент, который может помочь в устранении ошибки Out of Memory. Этот инструмент, называемый в Windows средством диагностики памяти, может помочь устранить ошибку нехватки памяти, проверяя и автоматически исправляя любые проблемы, связанные с памятью. Чтобы запустить его, выполните следующие действия:
Примечание: После того, как вы выберете предпочтительный вариант, ваш компьютер перезагрузится и проверит наличие проблем с памятью. Если он обнаружит какие-либо проблемы, он автоматически их исправит.
Поздравляем, вы только что самостоятельно исправили ошибку «Недостаточно памяти» при копировании файлов в Windows 10. Если вы хотите читать более полезный статьи и советы о посещении различного программного и аппаратного обеспечения errortools.com в день.
Вот как исправить ошибку «Недостаточно памяти» при копировании файлов в Windows 10 на компьютер. С другой стороны, если ваш компьютер испытывает проблемы, связанные с системой, которые необходимо исправить, существует решение в один клик, известное как Ресторо вы можете проверить, чтобы решить их.
Выполните полное сканирование системы, используя Ресторо. Для этого следуйте приведенным ниже инструкциям.
Источник
Ошибки распределения памяти могут быть вызваны медленным ростом файла страницы
В этой статье предусмотрен обход ошибок, которые возникают при частом выделении памяти приложениями.
Применяется к: Windows 10 — все выпуски
Исходный номер КБ: 4055223
Симптомы
Приложения, которые часто выделяют память, могут испытывать случайные ошибки из памяти. Такие ошибки могут привести к другим ошибкам или неожиданному поведению в затронутых приложениях.
Причина
Сбои в распределении памяти могут возникать из-за задержки, связанные с ростом размера файла страницы для поддержки дополнительных требований к памяти в системе. Возможной причиной этих сбоев является настройка размера файла страницы в качестве «автоматического». Автоматический размер файла страницы начинается с небольшого файла страницы и автоматически растет по мере необходимости.
Система IO состоит из многих компонентов, включая фильтры файловой системы, файловые системы, фильтры громкости, фильтры хранения и т. д. Определенные компоненты в данной системе могут привести к вариативности в росте файлов страниц.
Обходной путь
Чтобы решить эту проблему, необходимо вручную настроить размер файла страницы. Для этого выполните следующие действия:
Статус
Корпорация Майкрософт подтвердила, что это проблема в Windows 10.
Дополнительная информация
При использовании компиляторов Microsoft Visual C++ (cl.exe) могут возникнуть такие ошибки сборки, как следующие:
Дополнительные сведения об ошибках компиляторов Visual C++ и о том, как их обойти, см. в материале Precompiled Header (PCH) issues and recommendations.
Источник
Memory allocation errors can be caused by slow page file growth
This article provides a workaround for errors that occur when applications frequently allocate memory.
Symptoms
Applications that frequently allocate memory may experience random «out-of-memory» errors. Such errors can result in other errors or unexpected behavior in affected applications.
Cause
Memory allocation failures can occur due to latencies that are associated with growing the size of a page file to support additional memory requirements in the system. A potential cause of these failures is when the page file size is configured as «automatic.» Automatic page-file size starts with a small page file and grows automatically as needed.
The IO system consists of many components, including file system filters, file systems, volume filters, storage filters, and so on. The specific components on a given system can cause variability in page file growth.
Workaround
To work around this issue, manually configure the size of the page file. To do this, follow these steps:
Status
Microsoft has confirmed that this is a problem in Windows 10.
More information
You might see intermittent build errors like the following if you encounter this problem when using the Microsoft Visual C++ compiler (cl.exe):
For more information about the Visual C++ compiler errors and how to work around them, see Precompiled Header (PCH) issues and recommendations.
Источник
инструкции
|
|
To Fix (Memory allocation error) error you need to |
|
Шаг 1: |
|
---|---|
Download (Memory allocation error) Repair Tool |
|
Шаг 2: |
|
Нажмите «Scan» кнопка | |
Шаг 3: |
|
Нажмите ‘Исправь все‘ и вы сделали! | |
Совместимость:
Limitations: |
Ошибка распределения памяти обычно вызвано неверно настроенными системными настройками или нерегулярными записями в реестре Windows. Эта ошибка может быть исправлена специальным программным обеспечением, которое восстанавливает реестр и настраивает системные настройки для восстановления стабильности
Если у вас ошибка распределения памяти, мы настоятельно рекомендуем вам
Загрузить (ошибка распределения памяти) Repair Tool.
This article contains information that shows you how to fix
Memory allocation error
both
(manually) and (automatically) , In addition, this article will help you troubleshoot some common error messages related to Memory allocation error that you may receive.
Примечание:
Эта статья была обновлено на 2023-01-24 и ранее опубликованный под WIKI_Q210794
Содержание
- 1. Meaning of Memory allocation error?
- 2. Causes of Memory allocation error?
- 3. More info on Memory allocation error
Значение ошибки распределения памяти?
Ошибка или неточность, вызванная ошибкой, совершая просчеты о том, что вы делаете. Это состояние неправильного суждения или концепции в вашем поведении, которое позволяет совершать катастрофические события. В машинах ошибка — это способ измерения разницы между наблюдаемым значением или вычисленным значением события против его реального значения.
Это отклонение от правильности и точности. Когда возникают ошибки, машины терпят крах, компьютеры замораживаются и программное обеспечение перестает работать. Ошибки — это в основном непреднамеренные события. В большинстве случаев ошибки являются результатом плохого управления и подготовки.
Причины ошибки выделения памяти?
If you have received this error on your PC, it means that there was a malfunction in your system operation. Common reasons include incorrect or failed installation or uninstallation of software that may have left invalid entries in your Windows registry, consequences of a virus or malware attack, improper system shutdown due to a power failure or another factor, someone with little technical knowledge accidentally deleting a necessary system file or registry entry, as well as a number of other causes. The immediate cause of the «Memory allocation error» error is a failure to correctly run one of its normal operations by a system or application component.
More info on
Memory allocation error
РЕКОМЕНДУЕМЫЕ: Нажмите здесь, чтобы исправить ошибки Windows и оптимизировать производительность системы.
Or more just BIOS revison installed? 1011 I believe. It never does give Kingston HyperX(2×512) for the blue slots. Lately I have noticed that it takes for ever found that there are «memory allocation errors». I happened to run CheckIt Diagnostics and ram for Xmas for the other two slots.(2X512).
Hope this the POST beep btw. Also do you have the lastest to count the ram)! Thanks: Mark
MB- ASUS P4P800se,
Processor-P4 3.2 gig
Windows XP Pro sp2
Memory- 2 sticks for my machine to POST.( I’m talking around 90 sec. The computer seems to run fine most of the time except for a few little annoyances sometimes.
I’ve swapped the sticks around and I even tried a gig of generic ram but I still get the error if the second pair of sticks are installed.
My ASUS P4p800se MB helps
Then it goes into Windows XP Pro SP2 just fine. The only way I can get rid of just ignore it and use all 2 gigs of hotrod (ie expensive) ram?
Video- ATI Radeon X700 Pro, 256mb
Sound- Creative Audigy 2 ZS Platinum
Liteon DVD burner
Liteon just wasn’t waiting long enough. Come to find out, I has four memory slots. What does this mean and will it cause any problems or can I CD burner
Hey Redbluffian,
Have you tried clearing the CMOS/BIOS with all four modules installed? Hd -2 internal and 1 external.
Я получил концерт Crucial Ballistic Crucial Ballistics (512) и 2 палочки Kingston HyperX (512), чтобы заполнить все слоты. Я купил сообщение об ошибках, чтобы удалить вторую палочку 2.
Решено: ошибка распределения памяти
Any idea what could’ve exited the program, and I got an error. Memory allocation error
Невозможно загрузить COMMAND
Система вызвала это?
ударяться
Я использовал программу DOS, я остановился
Мне пришлось перезагрузить компьютер.
error opening a ksh shell sh.exe:»_main: memory allocation at startup
Здравствуйте,
After the one year anniversary update I get error opening a ksh how it goes. Select «Safe the computer again and select «Startup Repair» then follow the prompts. Thanks,
Кит
Коснитесь F8 перед тем, как вы не сработаете? Если он не запускается или не дает вам такую же ошибку, при перезагрузке обычно появляется флаг Windows при запуске.
Если это не так, щелкните правой кнопкой мыши кнопку «Пуск», Эндрю
Mode with Networking». Does it still select Command Prompt (Admin) and type «sfc /scannow» then reboot. Post back with shell sh.exe:»_main: memory allocation error during startup.»
Кто-нибудь еще видит что-то подобное?
выделение памяти
Выделение определенного диапазона физической памяти для предотвращения его использования НЕ является жизнеспособным вариантом. Ни в коем случае программа не может контролировать себя как жизнеспособное решение. У меня есть модули памяти 4 2GB и все, что действительно делает выделение внутри собственного виртуального адресного пространства.
Попытка найти утилиту или C ++-процедуру для памяти, в которой есть ошибки, поэтому ее нельзя использовать.
Проблема в том, что когда программа выделяет память, у меня четыре, я получаю ошибки памяти. Я бы не подумал, что это позволит мне выделить конкретный адрес физической памяти. Кажется, у меня проблема с определенным диапазоном памяти на моей материнской плате. Я хотел бы, чтобы какой-то вопрос о том, как выделить диапазон, поможет другим помочь с вашей проблемой.
Когда я использую все другое решение вашей проблемы. Если вы разместили свои полные системные спецификации, адресное пространство должно быть физически сохранено по мере необходимости. или даже знание адресов физической памяти, которые он использует. RAC
Вам нужно найти модули для тестирования OK при использовании по два за раз.
Затем диспетчер системной памяти отображает это
Распределение памяти в R52
Распределение памяти AGP
По какой-то причине в моем
Я считаю, что это может исправить некоторые проблемы с графикой, которые у меня были с такими идеями? Будет ли мигать мой биос более поздней версии? благодаря
bios, чтобы изменить распределение памяти для agp.
Память 8GB — распределение XP
Я слышал трюки / секреты памяти в серверной системе SMP с Windows XP?
Нужно ли в любом случае использовать преимущества 8GB с помощью PageFile и, возможно, программного обеспечения? Чтобы вы посоветовали?
нет, что я на сервере с 8GB ОЗУ?
Почему, черт возьми, вы знаете xp, но позвольте мне спросить очевидное.
Ошибка распределения памяти
В конечном итоге я загрузился из справки о спасении с проблемой на моем ПК. Запуск Win 98SE и не будет загружаться. аналогичных проблем, но они были специально для ME. Я искал сайт MS и нашел пару
Теперь все кажется ОК.
Любая помощь будет очень признательна — Norman
Я диск и переустановил 98SE над собой.
Привет всем. Может кто-нибудь, пожалуйста, не смог найти информацию об этой проблеме с помощью Win 98SE.
Путаница распределения памяти?
Спасибо.
Vista это делает? Итак, почему почему он заменяет мой жесткий диск с использованием виртуальной памяти, когда он может использовать другую свободную физическую RAM 22%?
[y530] Распределение памяти RAM
Чипсет материнской платы должен поддерживать там там 512mb еще для графической карты, и остальное для ОЗУ и «не использовать». Тогда его нет. Должна быть использована версия Windows x64 (64-бит)
Больше информации начали мои проблемы.
вернуть этот 1GB в обычную RAM, не предназначенную для графической карты? BIOS должен быть здесь:
Проблема с памятью 3GB-not-4GB
Операционная система 4GB (используется 3.25)
Надеюсь это поможет
ЦП должен поддерживать набор инструкций x64.
3. Now GF have 1,5GB RAM for it self. Any ideas how to
Но меньше 8 GB адресного пространства
2. Этот 1GB был заменен на 2GB, и поэтому в соответствии с этим, что было до этого, функция переопределения памяти поддержки
4.
Неизвестное распределение памяти
to timestamp when this started happening. I’m open to isn’t malware or hardware related, but hey… The amount of unknown unlisted memory continues being used/allocated than currently running (or even listed).
Теперь я мог бы быть использован / выделен, чем в настоящее время (или даже указан). OS = XP показывает тишину в сети)
It would seem for some reason my post is deleted… I’m wondering if anyone has any ideas Anyways, basically the task manager shows more memory
The HIDs hasn’t detected any file system changes or startup changes at all…I’ve as to what might be causing this. The amount of unknown unlisted memory continues I’d say going back to 2005. Anyways I’ve finally been hit with Before I post the issue I guess some background: I’ve been suggestions at this point.
The only key abnormality I see is an unusual amount of ARP requests from my system to the router (40-60 a minute). I’m open to to increase exponentially as additional programs are loaded. I have your usual suspects for malware removal, logging, etc. [Hijackthis, easily re-image the system… But where’s the an issue I can’t seem to troubleshoot.
combofix, avira, avast, spybot, rookit revealer and a plethora of similar programs]. From what I can tell this issue of the running processes… So I’ll fun in that? an issue I can’t seem to troubleshoot.
Теперь я мог бы предложить …
выделение памяти не удалось!
Также помогите! Заранее спасибо.
ошибка процессора.
Я запустил # 1-TuffTEST для Windows и сделал тест памяти, и я получил распределение памяти, не удалось выполнить тест. Мог
Распределение игр и памяти
Other than that I’m not sure, but
Not sure if I should post here, but I’d like to know if there is… Anyone?
Помимо проверки диспетчера задач для использования памяти, есть ли способ проверить или помочь игре использовать больше бесплатной ОЗУ?
У меня есть вопросы относительно игр, которые запускаются с компакт-диска.
Справка: выделение памяти с диска D на C
Needs to be done in two steps, first you have to Shrink select C: > Expand Volume. Assuming Windows Select D: > (if available) Shrink Volume (set size). AFTER THAT do the same, tutorials.
However, BEFORE doing this, I would recommend that you scrutinize you usage of 7 here… Also is there a method where it will not can please be simple as I am new to partitioning and such. Computer (right-click on icon)> Manage > Disk Management > or Volume — Extend
Раздел или объем — Термоусадочная
Раздел C: и посмотрите, есть ли что-нибудь, что вы могли бы перераспределить в D: …
Кроме того, удалите файлы, которые у меня есть на диске C? Я понятия не имею, что я делаю, поэтому, если вы D: чтобы освободить место для C: развернуть.
Режим XP и распределение памяти
I’m running Win XP Mode on Win 7 Pro x64. XP is showing only 512mb RAM, is there a way to increase this to a full 1GB of RAM? I have a total of 4GB on the machine.
Решено.
РАСПРЕДЕЛЕНИЕ ПАМЯТИ В МОДЕМ
выделение памяти для ob-графики
Большая часть встроенной графики и звука имеет как настройку BIOS, так и настройку перемычки.
Руководство пользователя должно указать на системной плате отключить графику? Помогите пожалуйста.
Разве нет перемычки, как отключить ее.
Распределение BIOS / памяти
I don’t have any is your first you’ve been seen this stop error system, restart your computer. How to solve such as caching / shadowing. For your information, i’m using bla .. Recently, i try to use system restore to windows at the windows startup.
Если вам нужно … Отключить опцию памяти BIOS, система там висела прямо там. После ответа для выполнения перед окнами. Вот некоторые заметки с экрана.
Напишите нам в чат или Email
Проблема была обнаружена и присуждена система BIOS и Windows XP.
Техническая поддержка :
** STOP: 0x00000050 (0f7942d20, 0x00000001, 0xf7507f2b, 0x00000000
** restore back what i ‘ve done previous date. Again, sometimes the computer is not use safe mode …… If the problem continue, disable or has damaged ?
Если это новая установка, попросите, чтобы аппаратные окна были отключены, чтобы предотвратить повреждение вашего компьютера.
Кажется, что компьютер вызван следующим файлом ACPI.sys
PAGE_FAULT_IN_NONPAGED AREA
если эта цифра эта проблема? Итак, может кто-то к этой проблеме? Если экран появляется снова, выполните следующие действия:
пройдите к окнам. Или, возможно, материнская плата удалит все вновь установленное оборудование или программное обеспечение.
Он полностью перезагружает компьютер и без предупреждения.
хорошо, я думаю, что у меня проблема. Продвинутый старт получил здесь большие неприятности. Я попытался отремонтировать, убедитесь, что все новое оборудование или программное обеспечение установлено.
Bla bla ACPI.sys — адрес F7507F2 …
Помощь в распределении памяти раздела
Посмотрите здесь
http://www.partitionwizard.com/free-partition-manager.html
и посмотреть, будет ли это пространство, которое было выделено для этих разделов. Я щелкнул правой кнопкой мыши тома в списке томов и нажал кнопку «Удалить».
Недавно я удалил раздел, который был на моем компьютере, на котором был установлен Linux. Я теперь не могу восстановить диск, сделай трюк для тебя
Держите нас в курсе
Толстый
«Расширяемый объем» является серым, когда я нажимаю правой кнопкой мыши мой текущий диск C: и не отображается выделенное пространство. Как я могу восстановить это пространство?
Проблема распределения памяти
Вам нужно будет объяснить, что у вас много доступной памяти. После этого это удается? У меня есть дела и почему немного лучше.
Почему выделить 128 мегабайт непрерывной памяти в драйвере с трудом.
Всем привет,
мой компьютер имеет 8 GByte Ram, но когда я пытаюсь перезапустить 4 или 5?
распределение памяти vid
MajorGeeks по крайней мере 32MB выделенный RAM. Спасибо, моя графика и видео. Моя проблема с большим количеством парней! Проверьте BIOS и посмотрите.
If i’m playing any kind of video (dvd, and sometimes 128 MB to be allocated to the video. If yes, is there any way for me to increase you to adjust the amount of ram dedicated to the on-board video. Could the 8MB be the cause of the problem?
2. Трудно поверить, что новая компьютерная система
Сабрина
There is usually a setting in the bios that allows rock. mpeg, etc, etc.) it tends to stick and stutter. The bios options usually allow — 16, 32, 64 seems that there’s only 8MB of RAM allocated to the video card. Most on-board gpu’s have are my questions:
1.
Теперь на них есть только RAM 8MB, предназначенный для графики. Один мой друг взглянул на мою систему и на объем ОЗУ, который может использовать моя видеокарта?
Сообщения: 51437
Благодарности: 14738
Многие пользователи ПК во время работы с какой-либо программой могут столкнуться с «вылетом» указанной программы, и появившимся сообщением «Out of memory». Возникшая проблема может иметь множество причин, начиная от банального недостатка памяти на пользовательском ПК, и заканчивая некорректной работой с памятью какой-либо программы.
Причины появления дисфункции
Сообщение «Out of memory» (в переводе дословно «вне памяти», или «недостаточно памяти») обычно возникает при недостатке памяти на пользовательском компьютере. В частности же, в появлении данной ошибки «виновен» следующий набор факторов:
Когда вашему компьютеру не хватает физической R.A.M. памяти, он заимствует часть места на жёстком диске, и создаёт так называемую «виртуальную память». Система временно хранит в такой виртуальной памяти ту часть данных, которая не помещается в памяти обычной. Такие данные обычно хранятся в файле «pagefile.sys», размер которого может увеличиваться или уменьшаться в зависимости от специфики работы вашей ОС. Если на диске будет недостаточно места, файл «pagefile.sys» не сможет расти, и пользователь получит рассматриваемую ошибку.
Как исправить ошибку «Out of memory»
Для решения указанной проблемы рекомендую сделать следующее:
Альтернативным вариантом решения проблемы является установка соответствующего фикса от Майкрософт. Или использование расширений или дополнений для браузера уровня «The Great Suspender» для «Google Chrome», хорошо работающего с ненужными вкладками браузера.
bcdedit/set IncreaseUserVa 3072
И нажмите на ввод, и перезагрузите ваш ПК. Функционал данной команды позволяет выделить пользовательским приложениям 3 гигабайта оперативной памяти для работы. В некоторых системах этого может быть слишком много, потому если после ввода данной команды система начала чаще сбоить, то введите в командной строке от имени администратора:
bcdedit /set IncreaseUserVa 2560 — что позволит задействовать 2,5 гигабайта вместо ранее забронированных 3.
Если ситуацию этим исправить не удалось, верните настройки на состояние по умолчанию:
bcdedit /deletevalue IncreaseUserVa
Установите нужный размер файла подкачки
Заключение
Ошибка «Out of memory» может иметь множество причин, связанных как с физическим недостатком памяти на ПК, так и другими детерминантами, изложенными мной выше. Для решения проблемы советую закрыть ненужные программы (вкладки браузера) на вашем компьютере (тем самым разгрузив его память), а самым эффективным инструментом является установка дополнительной планки памяти на ПК, что в большинстве случаев поможет избавиться от ошибки на вашем компьютере.
Windows run out of memory utorrent что делать
Сообщения: 35936
Благодарности: 6473
Сообщения: 44
Благодарности: 1
Сообщения: 8628
Благодарности: 2126
Сообщения: 44
Благодарности: 1
Тут возможно отмечать полезные сообщения. А бесполезные невозможно, жаль.
В предыдущем посте я ясно выразился, что файл подкачки размером 64 Гб ну никак не влезет в 12 Гб свободного места на SSD.
Сообщения: 51908
Благодарности: 14931
Сообщения: 44
Благодарности: 1
Сообщения: 51908
Благодарности: 14931
Ошибка «Ran out of video memory. Exiting. «. Нужна помощь!
Приветствую, столкнулся с такой проблемой.
После переустановления Виндоус 7 на Виндоус 10 столкнулся с такой проблемой.
Драйвера обновлял сразу же после переустановления Виндоус. Использовал программы Driver Booster 7 и GeForce Experience. Помогите, пожалуйста!
Видеокарта GTX 1050ti
Игры абсолютно не требовательные, раньше играл и всё было нормально.
Дубликаты не найдены
Сделай файл подкачки фиксированным, 6 Гб.
У меня 8 гигов оперативы, своп 0. Нормально игры играются
у меня 12, но старкрафт 2 на максималках срывало, пока не за фиксил своп.
Какую то чушь несешь про древнючий Старкрафт, которому хватит пары гигов за глаза.
вот геймплей на 8Гб оперативы
Оборону Чары загрузи на СтарКрафте 2, древнючем, и я посмотрю, как, без свопа, поиграешь. Не играл, не пиши чуши сам.
Скидывай свои пруфы, тролль
Рекомендованные? Сам то веришь, тому, что написал?
Да ты задолбал, скинь видео хоть какое то, где человек не может играть в Старкрафт 2 так как забита оперативная память >2Гб
Задолбал? Я предпочитаю девушек.
Девушкам мозги и еби коли так)
Я предпочитаю естественные варианты.
Я по миру Старкрафт 2 не сильно эксперт, однако мне кажется ты в этом ролике https://yadi.sk/i/eDN2aAIuDQnlsw засрал сотнями мобов карту, в этом и проблема.
в Warcraft 3 посмотри, какими войсками бьются, 12 на 12 от силы
Не эксперт? Так и молчи в тряпочку.
Троллятина? Так и живи под мостом
Вижу только одного тролля, не кострюлеголового.
Логично, что видишь. Вампиры и тролли не одно и то же.
Я смотрю, у моих комментариев в этой заброшенной ветке рейтинг спущен был сегодня на единичку. Похоже, мы подобрались к концовке видосика.
Звук как в экранке)))
Экранка и есть. Снято зеркалкой. У меня нет платы захвата.
Звук можно было улучшить внешним микрофоном, но смысл видео в другом, потому не стал.
Складывается ощущение что для 3Д режима используется размазанное видео а не дискретная нвидия.
еще пару лет назад налетела бы толпа народу и закричала: это вирус, майнинг качает! А щас все такие рассудительные
Не ожидал, что так много ответов будет, пока всё нормально, спасибо большое всем за отзывчивость, работяги.
Недавно купил комп и была подобная ситуация.
Есть аргументы что это сильно плохо? Я не вникал в этот вопрос но вычитал что можно на ssd подкачку ставить
Можно, но на большой глупо. NTFS в принципе убивает любой жесткий диск кривым двойным журналом и раскиданными кластерами. В итоге файл подкачки будет размазан как нутелла теще на бутерброд. С новыми дисками все не так грустно, ибо TRIM, но по ресурсу бьет.
Всё подряд не пиши что видишь на Пикабу, можешь хуйню сотворить с компом
Какая винда не важно,пиратка или нет,попробуй сделать как выше пишут,хуже точно не будет.
Да и зачем было ставить 10 если 7норм работала?
мыши плакали, кололись, но продолжали жрать кактус
У меня 2Гб 560Ti хватало на ГТА 5 всякие
Моей нвидии 450 гтс на 1 гиг хватало на гта онлайн с фулловой сессией,
Видеокарта на 4гб памяти, не в видеокарте проблема, я так думаю, скорее всего либо, что-то с Виндоус, ибо пиратка, либо с драйверами что-то не то. К тому же я написал, что раньше всё нормально было
Драйвера через джифорс икспириенс заново поставь
А откуда джифорс икспириенс их качает? Это официальная прога нвидиа
молодец, намек не понял, но додумался
каким отбитым надо быть что бы вообще поставить 10 вместо рабочей 7?
7 R.I.P. и на ней не поддерживается какой-то директх. Но я допускаю, что на Пикабу на ней лучше сидеть. Было.
Сейчас либо 8 либо 10. Аксиома Эскобара не применима.
Я на 10 с тех пор, как открыли апдейт с семёрки. Пиратка стала лицензией с тех пор.
У меня и на работе десятка, дома десятка. Винда как винда, только лицензия заместо пиратки, которую надо каждый раз крякать. Что с ней не так?
10-ка самое оптимальное, скайп может качаться отдельным установщиком если что))
Да как не юзабельна то)) скажи что надо запустить я запущу
Ну я же сказал тебе
Работал в компьютерной помощи на выездах. Винду поставить, ноут почистить, негров с письками поперек экрана и требованием заплатить денег удалить. Бывали клиенты разные. Но один особо запомнился.
Система поставилась, ставлю дрова, последние штрихи:
-Интернет сами настроите?
-Не, чувак. Я в этом вообще не понимаю. Настрой.
-Без ножа режешь. Но давай.
-Да почему сразу режу? Можете сами.
-Не. Давай сам настрой.
-У Вас беда такая приключилась, потому что антивируса нет. Может поставить?
-Не это денег стоит. У меня есть где-то купленный касперский.
-Но Вы поставьте его. Обязательно.
-Обязательно. Держи деньгу за винду и прощай.
Вышел с адреса и на остановку. Сел в автобус, доехал до своего района. Звонок.
-Запиши себе. Переустановить винду.
-Ну да. Клиент скачал танки с модами и теперь у него негры поперек экрана.
Как бороться с OutOfMemoryError на практике, или ох уж мне эти базы данных
Предыстория
Для начала нужно понять, как возникает 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) позволяет видеть метрики, связанные с хипом.
Вот два скриншота вкладки 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.
Перейдём ко второму приложению:
В нём 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 Console, я подумал, что вот он, момент истины — я или начну использовать её на полную катушку, или так и забью на всё это.
Прежде, чем начать, конечно же был задан вопрос гуглу, и он любезно предоставил шпаргалку (cheat sheet) по использованию OQL в JVVM: http://visualvm.java.net/oqlhelp.html
Сначала обилие сжатой информации привело меня в уныние, но после применения гугл-фу на свет таки появился вот такой OQL-запрос:
Это уже исправленная и дополненная, финальная версия этого запроса 🙂
Результат можно увидеть на скриншоте:
После нажатия на 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.
На каждую подпапку внутри папки /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 могут содержать одинаковые значения.
Для примера:
После этого всё стало ясно: 11 соединений было потому, что в одном, активном DataSource было съедено 8 соединений (maxTotal = 8), и ещё по minIdle=1 в трёх других неиспользуемых DataSource-копиях.
В ту пятницу мы откатились на Tomcat 7, который лежал рядышком, и ждал, когда от него избавятся, это дало время спокойно во всём разобраться.
Плюс позже, уже на TC7, обнаружилась утечка соединений, всё благодаря removeAbandoned+logAbandoned. DBCP радостно сообщил в логфайл catalina.log о том, что
Вот этот вот плохойПлохойМетод имеет в сигнатуре 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’ов необходимо искать.
Не то, это «внутренние» вызовы.
А вот и дичь!
Для чистоты эксперимента можно кинуть такой же запрос в любимой БД-IDE, и он будет очень долго отрабатывать, а если покопаться в недрах хранимки, то будет понятно, что там просто из базы, которая нам не принадлежит, выбирается 2 миллиона строк по такому запросу с такими параметрами. Эти два миллиона даже влазят в память приложения, но вот попытка отмаршалить результат становится фатальной для приложения. Такое себе харакири. 🙂
При этом GC старательно убирает все улики, но не спасло его это, всё же источник остался в памяти, и он будет наказан.
Почему-то после всего этого рассказа почувствовал себя тем ещё неудачником.
Прощание
Вот и закончилось моё повествование, надеюсь, Вам понравилось 🙂
Хотел бы выразить благодарность своему начальнику, он дал мне время во всём этом разобраться. Считаю эти новые знания очень полезными.
Спасибо девушкам из Scorini за неизменно вкусный кофе, но они не прочтут этих слов благодарности — я даже сомневаюсь, что они знают о существовании Хабрахабра 🙂
Хотелось бы увидеть в комментариях ещё больше полезной инфы и дополнений, буду очень благодарен.
Думаю, самое время почитать документацию к MAT…
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
Утвердившись, что тут всё-таки косяк у Оракла, дело оставалось за малым.
Попросил администратора БД посмотреть информацию по обнаруженной проблеме:
Источник
На неслабом, в общем то сервере на любую команду выдается
-bash: fork: Cannot allocate memory
в редкий момент просветления получил top
top - 17:52:36 up 50 days, 6:13, 1 user, load average: 1.01, 1.13, 1.03
Tasks: 1868 total, 2 running, 1866 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.8 us, 33.9 sy, 0.0 ni, 64.4 id, 0.8 wa, 0.0 hi, 0.0 si, 0.2 st
KiB Mem : 2052332 total, 59784 free, 1930936 used, 61612 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 12570 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
37 root 20 0 0 0 0 R 52.4 0.0 126:43.98 kswapd0
5553 mysql 20 0 691788 147584 0 S 6.9 7.2 31:10.36 mysqld
15691 root 20 0 48052 3160 556 R 4.4 0.2 0:00.43 top
455 root 20 0 572420 16564 0 S 1.6 0.8 55:10.43 containerd
26602 root 20 0 298640 15884 0 S 1.6 0.8 6:07.22 php
5456 root 20 0 725056 18412 0 S 1.3 0.9 7:01.30 core
736 root 20 0 417512 141040 0 S 0.9 6.9 233:22.80 fail2ban-s+
5667 root 20 0 1363264 113900 0 S 0.9 5.5 26:30.04 core
7 root 20 0 0 0 0 S 0.3 0.0 31:45.10 rcu_sched
142 root 20 0 0 0 0 S 0.3 0.0 3:11.06 jbd2/vda5-8
854 ntp 20 0 102104 584 0 S 0.3 0.0 4:06.90 ntpd
15602 root 20 0 0 0 0 S 0.3 0.0 0:00.10 kworker/u4+
1 root 20 0 270292 67236 0 S 0.0 3.3 1:17.53 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.36 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 2:17.78 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:+
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
лично мне непонятно – свапа в системе вроде как нет, но половину CPU съедает процесс kswapd0.
Еще очень много sleeping tasks. Я подозреваю, что они возникли так:
На сревере крутится php процесс, который хотелось бы иметь постоянно работающим. Там стоит set_time_limit(0); Но, понятно, что это не гарантирует от разных форсмажоров. Потому, этот процесс запускается кроном каждую минуту и первым делом смотрит – есть ли дубль в ps axu. Если есть – то прекращает работу. Вероятно, в какой-то момент система оказалась сильно загруженной и процесс хоть и запустился, но не смог даже проверить на дубль. Через 1 минуту это повторилось ну и так далее.
Значит, у меня 2 вопроса.
1. Поможет ли в описанной ситуации создание свап файла? Или он таки уже есть?
2. Как организовать чтоб нужный php скрипт гарантировано выполнялся, а в случае краха – перезапускался?
Спасибо.
Иногда, когда вы пытаетесь получить доступ к онлайн-игре или проекту, вас приветствует сообщение об ошибке . Браузер не может выделить достаточно памяти для содержимого WebGL. Если вы являетесь разработчиком этого контента, попробуйте выделить меньше памяти для вашей сборки WebGL в настройках проигрывателя WebGL.
Один пользователь позаботился о том, чтобы объяснить природу проблемы на Reddit.
в большинстве игр, которые я пробовал, выдается ошибка «Браузер не может выделить достаточно памяти для содержимого WebGL. Если вы разработчик этого контента, попробуйте выделить меньше памяти для вашей сборки WebGL в настройках проигрывателя WebGL ».
Во-первых, убедитесь, что вы соответствуете системным требованиям игры. Если это так, начните процедуру устранения неполадок с шагов, которые мы предоставили ниже.
Решение 1. Обновите браузер
- Мы будем использовать Google Chrome, но вы можете выполнить аналогичные действия для других браузеров.
- Зайдите в настройки Chromes.
- Выберите Справка, а затем О Google Chrome.
- Если доступно обновление, Chrome предложит вам установить его. После обновления проверьте, есть ли у вас проблемы с памятью.
Мы много писали о проблемах памяти Chrome. Проверьте эти руководства для получения дополнительной информации.
Решение 2 – Сброс настроек браузера
- Откройте настройки Chrome.
- Прокрутите вниз и нажмите « Дополнительно».
- Прокрутите весь путь вниз и в разделе « Сброс и очистка» нажмите « Восстановить настройки до их исходных значений по умолчанию».
- Подтвердите, нажав на кнопку Сброс настроек.
Решение 3 – конкретное исправление Mozilla Firefox
- Нажмите кнопку меню (3 горизонтальные линии) и выберите « Параметры».
- Нажмите на Общие.
- В разделе «Производительность» снимите флажок « Использовать рекомендуемые параметры производительности».
- Снимите флажок Использовать аппаратное ускорение, если доступно.
- Выйдите и перезапустите Firefox.
Если вы хотите отключить WebGL, выполните следующие действия:
- Введите about: config в адресную строку и нажмите Enter.
- В поле «Фильтр» введите webgl.disabled.
- Затем дважды щелкните по нему, чтобы установить его значение в true.
- Выйдите и перезапустите Firefox.
Все решения могут быть применены к определенным браузерам, не только упомянутые. Просто найдите похожие опции в вашем браузере и следуйте инструкциям выше. На наш взгляд, лучшим вариантом на сегодняшний день является UR Browser.
Этот браузер на основе Chromium довольно лёгкий при использовании системных ресурсов, поэтому вы должны быть уверены, что таких проблем не будет. Кроме того, он полностью и полностью ориентирован на конфиденциальность, поэтому отслеживание и профилирование станут делом прошлого.
Проверьте браузер UR сегодня и узнайте, почему это наш браузер.
Рекомендация редактора UR Browser
- Быстрая загрузка страницы
- Конфиденциальность на уровне VPN
- Усиленная безопасность
- Встроенный антивирусный сканер
Скачать сейчас UR Browser
Если вам известен другой способ решения проблем с памятью браузера в Windows 10, поделитесь своими действиями по устранению неполадок в разделе комментариев ниже.
Прогресс и маркетинг дарят компьютерному пользователю стабильность в ценах на компьютерные составляющие и всё более оптимальную в подходе к этим составляющим операционную систему. Однако некоторых пользователей даже сегодня продолжает настигать «ошибка 2000-х» в виде аварийно захлопнувшегося приложения с сообщением Windows Memory allocation for * bytes failed. Так почему на фоне нередко переизбытка установленной RAM и запредельного по размерам pagefile.sys эта ошибка всё ещё досаждает некоторым из нас?
Проблема пришла к нам из тех времён, когда пользователи стали активно переходить с Windows XP на более современную Windows Vista и 7, пытаясь при этом сохранить прежнюю конфигурацию компьютера. Ошибка Memory allocation for * bytes failed — ни что иное как эхо ещё более коварной ошибки Unable to allocate memory, которая мучила владельцев «отстающих» сборок. Массовый переход производителей на 64-х битные версии процессоров, многоканальные проходы RAM решили проблему практически полностью. Однако…
СПРАВКА
К сожалению, вследствие ограниченного перевода локализаций Windows, пользователь не всегда способен правильно оценивать обстановку. А на неё Windows нередко прямо и указывает. В нашем случае ошибка Memory allocation for * bytes failed говорит о том, что оперативной памяти в указанном размере было отказано в выделении для этого приложения. Это значит, что отвечающая за перераспределение памяти процедура Управления памятью (Memory Management) просто не справляется с обязанностями. Учитывая границы зависимости MM, которые включают и аппаратные компоненты компьютера (RAM, чипсет, тип хранилища — SSD) и уровень приложений (объекты и структуры данных), можно предположить, что корни проблемы именно у вас никогда уже не решатся переустановкой Windows.
Memory allocation for * bytes failed: аппаратные ограничения
Ниже следуют наиболее вероятные причины ошибки. Они налагаются со стороны именно физического уровня аппаратного обеспечения:
- доступная системе память (не общий объём памяти в планках, а именно доступной Windows) — память забита другими приложениями; на вновь запущенное свободных блоков просто не хватает
- ограничения в объёмах поддерживаемой памяти — планок RAM в компьютер можно напихать сколь угодно — но более 4 Гб 32-х битная версия не увидит. А ещё и встроенная видеокарта хочет кушать…
- фрагментация оперативной памяти — сопредельные блоки оперативной памяти выделяются вылетающему приложению неэффективно
Чуть подробнее…
Доступная память — самое простое объяснение. Если объём требуемой памяти превышает объёмы установленной, запросу со стороны программы системой будет отказано. Конечно, Windows и другие ОС сами себе создали уловку: они считают, что общая память складывается из нескольких факторов:
- Физическая память (видимые объёмы планок RAM)
- Виртуальная память (выделяемая системой часть на жёстком диске/флешке, куда системой будет записываться информация по нехватке RAM и программам, ожидающим — swapfile+pagefile)
- Свободная память из части общей RAM (памяти может быть много, но если она занята остальными процессами, приложению будет отказано в дополнительных блоках).
Этими показателями и объясняются очень многие «НО», из-за которых Windows не «отстёгивает» память, которую программа просит.
Memory allocation for * bytes failed: решения
- выходите из фоновых приложений, закрывайте ненужные на данный момент программы; в Диспетчере задач — искомая вкладка Процессы:
- выбираем планки оперативной памяти — и в магазин за дополнительными или более объёмными
- не экономьте на объёмах виртуальной памяти. Доверьте системе самой выбрать нужный. Но смысла задавать файл подкачки запредельных размеров тоже не вижу — это медленная память; выделяемые объёмы на диске просто погаснут перед маленькой скоростью обмена с жёстким диском. На SSD скорости буду по-интереснее, но всё равно это уже не совсем то…
- если компьютер очень уж стар, а до планок RAM ещё нужно дойти, попробуйте Readyboost. Дешёвый способ попробовать подстегнуть память за счёт флешки. Для ветхих систем — это иногда настоящая палочка-выручалочка
- в то время, как место на диске для файла подкачки выставлено достаточно, на всякий случай одна из флешек в режиме Readyboost, захлопываем все приложения и отправляемся в Диспетчер задач, где выставляем приоритет выполнения для «проблемного» процесса максимальный до уровня, пока нестабильность системы не станет очевидна:
- дефрагментация диска и регулярное удаление файлов pagefile.sys и swapfile.sys (по мере появления проблем с производительностью и ошибок RAM). Помните, что оба файла — это пространство жёсткого диска со всеми вытекающими проблемами: уже упомянутые медленные скорости обмена и почти мгновенная фрагментация файловой структуры.
Memory allocation for * bytes failed: ограничения со стороны системы
Тот случай, когда памяти много, а толку мало. Размер адресного пространства для конкретного процесса априори небольшой. Так память распределяется виртуальным Менеджером памяти, о котором мы уже упомянули: создаётся цепочка адресов памяти, которая связана с конкретным адресным пространством. А у адресного пространства всегда ограниченные границы значений. Так, для 32-х битных систем — это всегда лишь 4 Гб. Но это, вопреки обычному мнению, ещё и не весь предел накладываемым ограничениям. Системные адреса в процессе сеанса наносятся на адресное пространство, тем самым ещё более занижая свободное место. Так что порой, вопреки заявленным минимальным требованиям к «железу», операционная система Windows 7 (даже установленная «начисто»), например, оставит процессам не более 2—2,5 Гб оперативной памяти из 4-х Гб.
Memory allocation for * bytes failed: решения
И думать нечего: переходим на 64 бита. На всех платформах. А 32-х битные сборки пора перевозить в гараж. Тем более, у 64-х битных систем огромные преимущества в вопросах безопасности.
Memory allocation for * bytes failed: фрагментация памяти?
Отсюда начинается очень скользкая тема. Некогда популярные ремонтные утилиты нередко предлагали пользователям в числе прочего и такую функцию как дефрагментация оперативной памяти. Скользкая потому, что моё личное мнение таково: часто шкура выделки не стоит. При нормально работающей системе такие программы если не мешают, то просто бесполезны. На старых системах — да. С объёмом RAM 1,5 — 2 Гб — безусловно. Но сейчас даже смартфоны мощнее. И с такими характеристиками комфортно можно работать разве что в Windows Millenium. В том виде, как эта проблема существовала, она современных пользователей (с, прежде всего, достаточным объёмом памяти) уже не касается (кому интересно — подробности в ссылке): она целиком и полностью ложится на плечи разработчиков. И даже принудительная фрагментация оперативной памяти самой Windows во время загрузки программы-тяжеловеса не должна вызывать ошибки Memory allocation for * bytes failed. Однако… Проверьте, не использует ли ваша «проблемная» программа библиотеку Microsoft Foundation Classes (MFC).
Memory allocation for * bytes failed: решения
В нашем случае единственное — обновите версию Framework до последней. Неважно, что хочет программа. Версия .NET Framework 4 должна быть установлена точно. Иногда требуется .NET Framework 3.5. И позаботьтесь о том, чтобы обновления к Windows приходили в вашу систему вовремя.
Ещё по теме:
Тестирование оперативной памяти с помощью memtest поможет вскрыть проблемы в связке «планка-оперативной-памяти -> слот DIMM». Если ошибки с RAM продолжают преследовать вашу ОС даже после переустановки, время пускать в ход тяжёлую артиллерию.
Успехов.