Как передать много больших файлов через торрент?
Сейчас наиболее популярный клиент (программа) торрента: utorrent, но вот поддержка x64 битной версии уже не работает, а OS Windows постоянно обновляется и выходят другие версии виндовс. Клиент торрента последней версии создан для x32 версии, поэтому при создании большого торрента у вас могут появиться ошибки:
Windows ran out of memory. Unable to allocate 32768000 bytes.
Please close some application and press OK.
Это случается при ошибке разрядности и использовании оперативной памяти клиентом торрента. Что бы решить данную проблему, вам потребуется скачать старый-добрый клиент bittorrent x64, x32 (для обоих версий):
bittorrent.exe (1008 Загрузок)
– данная версия очень старая, но она работает в x64 и в x32 (x86) версии виндовс. И позволяет вам создавать торренты с раздачей.
Если возникает ошибка: uTorrent has crashed. A crash dump has been saved as: жмите Relaunch the application. Закрывайте торрент и устанавливайте битторрент
bittorrent.exe (1008 Загрузок)
. Далее хоть и на английском языке, но всё понятно: File -> Create new torrent (или сочетание клавиш ctrl + n) -> выбираете файл или папку, жмёте Create and save as… ждёте окончании создания, и даёте имя торренту. После этого, удаляете из программы ТОЛЬКО ФАЙЛ ТОРРЕНТА, без удаления данных. (правой кнопкой мыши кликаете на торрент: Delete .torrent). Далее нужно скачать у самого себя этот торрент, что бы он встал ни раздачу. Открываете файл торрента который только что создали, выбираете папку с файлами, именно ту папку в которой уже и лежат ваши раздаваемые файлы, в списке загрузок начнётся проверка файлов, если этого не происходит, значит вы что-то сделали не правильно. По окончанию проверки можно публиковать данный созданный файл .torrent другим людям, что бы они смогли скачать файлы с вашего компа через торрент.
Почему не идёт отдача (раздача торрента)?
Есть возможное решение: Попробуйте добавить список трекеров в ваш торрент. Для этого кликаем правой кнопкой в программе на название торрента, жмём свойства и в появившемся окошке добавляем этот список трекеров, приведённый ниже
udp://tracker.openbittorrent.com:80/announce
udp://tracker.publicbt.com:80/announce
udp://opentor.org:2710
udp://tracker.openbittorrent.com:80/announce
udp://tracker.openbittorrent.com:80
udp://tracker.leechers-paradise.org:6969
udp://tracker.coppersurfer.tk:6969
udp://tracker.openbittorrent.com:80/announce
udp://tracker.leechers-paradise.org:6969
udp://tracker.coppersurfer.tk:6969
udp://tracker.openbittorrent.com:80/announce
http://tracker.torrentbay.to:6969/announce
udp://exodus.desync.com:6969/announce
udp://tracker.opentrackr.org:1337/announce
udp://opentor.org:2710
udp://tracker.openbittorrent.com:80/announce
udp://tracker.leechers-paradise.org:6969
udp://tracker.coppersurfer.tk:6969
http://tracker.torrentbay.to:6969/announce
udp://exodus.desync.com:6969/announce
udp://exodus.desync.com:6969/announce
http://retracker.211.ru/announce.php
http://bt4.t-ru.org/ann
udp://opentor.org:2710
udp://tracker.openbittorrent.com:80/announce
udp://tracker.leechers-paradise.org:6969
udp://tracker.coppersurfer.tk:6969
http://0d.kebhana.mx:443/announce
https://1337.abcvg.info:443/announce
http://182.176.139.129:6969/announce
udp://9.rarbg.me:2940/announce
udp://9.rarbg.to:2840/announce
http://agusiq-torrents.pl:6969/announce
http://announce.mnvv2.info/announce.php
http://arab-torrents.net/announce.php
http://mononoke-bt.org:2401/announce.php
http://nbz.f3322.net:36006/announce
http://open.touki.ru/announce.php
https://p2pdl.com:443/announce
http://packages.crunchbangplusplus.org:6969/announce
http://peerfect.org:6969/announce
http://public.popcorn-tracker.org:6969/announce
http://retracker.lanta-net.ru:2710/announce
http://retracker.mgts.by:80/announce
http://retracker.telecom.by:80/announce
http://sd-95.allfon.net:2710/announce
http://share.camoe.cn:8080/announce
http://special.pwtorrents.net/announce.php
http://t.nyaatracker.com:80/announce
http://tc-boxing.com/announce.php
http://therightsize.net:1337/announce
http://tracker.city9x.com:2710/announce
http://tracker.corpscorp.online/announce
http://tracker.corpscorp.online:80/announce
http://tracker.cypherpunks.ru:6969/announce
http://tracker.electro-torrent.pl:80/announce
http://tracker.files.fm:6969/announce
http://tracker.frozen-layer.net:6969/announce
http://tracker.internetwarriors.net:1337/announce
http://tracker.kamigami.org:2710/announce
http://tracker.minglong.org:8080/announce
http://tracker.port443.xyz:6969/announce
http://tracker.sandrotracker.biz:6969/announce
http://tracker.themixingbowl.org/announce.php
http://tracker.tntvillage.scambioetico.org:2710/announce
https://tracker.torrentsnows.com:443/announce
http://tracker.uw0.xyz:6969/announce
http://tracker.vanitycore.co:6969/announce
http://tracker.xtremewrestlingtorrents.net/announce.php
http://tracker1.itzmx.com:8080/announce
http://tracker-2.msm8916.com:6969/announce
http://tracker4.itzmx.com:2710/announce
http://www.bittorrent-support.com/announce.php
http://www.digitalhive.org/announce.php
http://www.mvgroup.org:2710/announce
http://www.torrent.by/announce.php
http://www.xwt-classics.net/announce.php
http://z.crazyhd.com:2710/announce
http://zephir.monocul.us:6969/announce
После этого, в этом же окне внизу ставим галочки: Включить DHT, Обмен пирами, Поиск локальных пиров. – Если уже стояли галочки – то хорошо.
Жмём ОК.
И последний шаг: Жмём опять же правой кнопкой на название торрента в программе bittorrent, и в появившемся меню выбираем предпоследний пункт: Update tracker (Обновить трекер). Ждём минут 5, если ничего не произошло и раздача не пошла, перезагрузите программу. Должно помочь.
Ошибка «Windows run out of memory unable to allocate 32768000 bytes» (Windows исчерпал память и не может выделить 32768000 байт) может возникать при работе с операционной системой Windows. Она указывает на то, что ваш компьютер не может выделить нужное количество памяти для выполнения определенной задачи.
Эта проблема может возникать из-за нескольких причин, таких как недостаток оперативной памяти, ограничение на доступную память для процесса или неправильные настройки виртуальной памяти. В любом случае, она может серьезно затруднить работу на компьютере и требует немедленного решения.
Для исправления проблемы «Windows run out of memory unable to allocate 32768000 bytes» можно предпринять следующие шаги:
- Увеличьте объем оперативной памяти компьютера. Это может быть одним из самых эффективных способов решения проблемы, особенно если у вас установлена недостаточная оперативная память.
- Проверьте настройки виртуальной памяти. Виртуальная память позволяет компьютеру использовать часть жесткого диска в качестве временного хранилища для данных, когда оперативная память заполняется. Проверьте, правильно ли настроена виртуальная память и внесите необходимые изменения.
- Оптимизируйте использование памяти вашими программами и файлами. Закройте ненужные программы или процессы, освободив тем самым ресурсы компьютера. Удалите ненужные файлы или переместите их на другой носитель.
Важно помнить, что при оптимизации памяти необходимо быть осторожными и не удалять или выключать необходимые программы или процессы. В случае сомнений, лучше проконсультироваться с опытным специалистом.
При соблюдении этих рекомендаций вы сможете избежать проблемы «Windows run out of memory unable to allocate 32768000 bytes» и поддержать оптимальную работу вашего компьютера.
Содержание
- Почему возникает проблема с памятью в Windows?
- Симптомы недостатка памяти в операционной системе Windows
- Как решить проблему «Windows run out of memory unable to allocate 32768000 bytes»
- Полезные советы по оптимизации работы памяти в Windows
Почему возникает проблема с памятью в Windows?
Другой возможной причиной проблемы является неправильное использование памяти программами. Если программа неверно управляет памятью или не освобождает ее после завершения задачи, это может привести к истощению доступной памяти в системе.
Также проблема может быть вызвана дефектными модулями оперативной памяти или конфликтами между программами, которые приводят к утечке памяти. В этом случае решением проблемы может быть замена или повторная установка модулей памяти.
Регулярная проверка системы на наличие вирусов и вредоносных программ также может помочь избежать проблем с памятью в Windows. Некоторые вирусы могут использовать значительное количество ресурсов, включая оперативную память, что может привести к исчерпанию памяти в системе.
Для решения проблемы с памятью в Windows рекомендуется увеличить объем оперативной памяти на компьютере, закрыть ненужные программы и процессы, выполнять регулярную проверку системы на вирусы и оптимизировать использование памяти программами. Также можно воспользоваться инструментами управления памятью операционной системы, такими как «Диспетчер задач» или «Монитор ресурсов», чтобы выяснить, какие программы потребляют больше всего памяти и принять соответствующие меры.
Симптомы недостатка памяти в операционной системе Windows
Недостаток памяти в операционной системе Windows может проявляться следующими симптомами:
- Замедленная работа компьютера и приложений
- Частые перезагрузки или зависания системы
- Появление сообщения «Windows run out of memory unable to allocate XXX bytes»
- Отсутствие возможности открыть или сохранить файлы из-за нехватки оперативной памяти
- Увеличение времени загрузки операционной системы
- Неожиданное закрытие программ без предупреждения
Если вы столкнулись с указанными проблемами, возможно, у вас недостаточно оперативной памяти для эффективного функционирования системы. Решением может быть увеличение объема оперативной памяти или оптимизация работы системы, чтобы более эффективно использовать имеющуюся память.
Как решить проблему «Windows run out of memory unable to allocate 32768000 bytes»
Проблема «Windows run out of memory unable to allocate 32768000 bytes» возникает, когда операционная система Windows не может выделить достаточно памяти для выполнения запущенных программ или процессов. Это может привести к снижению производительности компьютера и возникновению ошибок.
Чтобы решить эту проблему, можно попробовать следующие рекомендации:
1. Закрыть ненужные программы и процессы: Закройте все ненужные программы и процессы, которые потребляют большое количество памяти. Для этого откройте диспетчер задач (нажмите Ctrl + Shift + Esc), выберите вкладку «Процессы» и закройте любые приложения или процессы, которые больше не нужны.
2. Увеличить объем оперативной памяти: Если у вас есть возможность, увеличьте объем оперативной памяти в вашем компьютере. Больше памяти позволит операционной системе аллоцировать больше памяти для выполнения программ.
3. Оптимизировать настройки виртуальной памяти: Виртуальная память – это часть жесткого диска, которая используется компьютером в качестве дополнительной памяти, когда оперативная память исчерпывается. Вы можете попробовать оптимизировать настройки виртуальной памяти, увеличив размер файла подкачки или изменить его расположение на более быстрый диск.
4. Обновить драйверы: Убедитесь, что у вас установлены последние версии драйверов для вашей видеокарты и других устройств. Устаревшие драйверы могут привести к ошибкам операционной системы и недостатку памяти.
5. Проверить наличие вирусов: Вредоносные программы могут занимать память и замедлять работу компьютера. Проверьте систему на наличие вирусов и удалите их с помощью антивирусной программы.
Если после выполнения вышеперечисленных рекомендаций проблема не решена, возможно, вам потребуется обратиться к специалисту по компьютерам или поддержке Windows для получения дополнительной помощи.
Обратите внимание, что моя команда разработчиков не несет ответственности за любые проблемы, возникающие в результате использования этих рекомендаций. Перед внесением любых изменений в вашу систему, сделайте резервную копию всех важных данных.
Полезные советы по оптимизации работы памяти в Windows
Проблема с нехваткой памяти в Windows может возникать в разных ситуациях. Она может оказаться причиной зависаний или неполадок в работе компьютера. В этом разделе мы предлагаем несколько полезных советов, которые помогут вам оптимизировать работу памяти и избежать подобных проблем.
1. Закройте ненужные программы и процессы. Если у вас одновременно запущено много программ, это может занимать большое количество оперативной памяти. Закройте все ненужные программы и процессы, чтобы освободить память для более важных задач.
2. Увеличьте размер виртуальной памяти. Виртуальная память — это специальная область на жестком диске, которая используется в качестве дополнительной памяти в случае нехватки оперативной. Увеличение размера виртуальной памяти может помочь справиться с проблемой нехватки памяти.
3. Оптимизируйте загрузку программ. У программ, которые автоматически запускаются при старте Windows, может быть большое влияние на использование памяти. Отключите запуск ненужных программ при старте, чтобы уменьшить потребление памяти.
4. Используйте оптимизированные приложения. Некоторые программы могут быть более эффективными в использовании памяти, чем другие. Если у вас возникают проблемы с памятью, попробуйте заменить некоторые программы на их более оптимизированные аналоги.
5. Установите дополнительную оперативную память. Если все прочие методы не дают желаемого результата, вы можете попробовать установить дополнительную оперативную память. Это позволит вашему компьютеру оперативно выполнять большее количество задач и улучшит его общую производительность.
Ошибка Out of memory — как исправить
Многие пользователи ПК во время работы с какой-либо программой могут столкнуться с «вылетом» указанной программы, и появившимся сообщением «Out of memory». Возникшая проблема может иметь множество причин, начиная от банального недостатка памяти на пользовательском ПК, и заканчивая некорректной работой с памятью какой-либо программы.
Окно с сообщением об ошибке «Out of memory»
Причины появления дисфункции
Ошибка «Out of memory» (в переводе дословно «вне памяти», или «недостаточно памяти») обычно возникает при недостатке памяти на пользовательском компьютере. В частности же, в появлении данной ошибки «виновен» следующий набор факторов:
- Недостаток памяти RAM на вашем ПК (рабочей памяти, планки которой установлены на материнской плате вашего компьютера). Если на вашем компьютере установлен всего 1 гигабайт памяти, вы будете встречаться с описываемой ошибкой довольно часто. Нормальным же ныне считается наличие на компьютере 4 гигабайт памяти и выше;
- Недостаток места на жёстком диске.
Когда вашему компьютеру не хватает физической R.A.M. памяти, он заимствует часть места на жёстком диске, и создаёт так называемую «виртуальную память». Система временно хранит в такой виртуальной памяти ту часть данных, которая не помещается в памяти обычной. Такие данные обычно хранятся в файле «pagefile.sys», размер которого может увеличиваться или уменьшаться в зависимости от специфики работы вашей ОС. Если на диске будет недостаточно места, файл «pagefile.sys» не сможет расти, и пользователь получит ошибку «out of memory».
- При одновременном запуске на ПК большого количества программ, каждая из которых бронирует часть памяти ПК под свои задачи;
- При запуск большого количества вкладок браузера. Веб-навигаторы уровня «Firefox» или «Google Chrome» способны занимать от 500 мегабайт до 1 гигабайта памяти под свой функционал, при этом число открытых вкладок и соответствующей обслуживающей памяти может быть ограничено системой. Специалисты Майрософт называют такую проблему «the desktop heap limitation» — «ограничение кучи рабочего стола»);
- Некорректная работа с памятью ряда программ (наиболее часто это игровые программы);
- Не оптимальный размер файла подкачки, с которым работает система.
Обычно причиной возникновения проблемы является недостаток ОЗУ на компьютере пользователя
Как исправить ошибку «Out of memory»
Для решения указанной проблемы рекомендую сделать следующее:
- Перезагрузите ваш ПК, и запустите требуемую программу вновь. Возможно, что проблема имеет случайный характер, и более повторяться не будет;
- Перед запуском нужной программы закройте другие ненужные программы (браузер, музыкальный или видео плеер, текстовый или графический редактор, мессенджер и так далее);
- Если проблема возникает во время серфинга в сети, закройте всё множество вкладок вашего браузера (при наличии), оставив лишь одну или две.
Частой причиной проблемы является множество открытых вкладок в браузере пользователя
Альтернативным вариантом решения проблемы «Out of memory» является установка соответствующего фикса от Майкрософт. Или использование расширений или дополнений для браузера уровня «The Great Suspender» для «Google Chrome», хорошо работающего с ненужными вкладками браузера.
- Добавьте оперативной памяти на ваш ПК. Если у вас на компьютере установлено 1-2 гигабайта памяти, будет оптимальным довести её объём до 4 гигабайт (а для 64-битных Виндовс 7, 8 и 10 версии рекомендую 8 и более гигабайт);
Увеличьте количество памяти на вашем ПК
bcdedit/set IncreaseUserVa 3072
И нажмите на ввод, и перезагрузите ваш ПК. Функционал данной команды позволяет выделить пользовательским приложениям 3 гигабайта оперативной памяти для работы. В некоторых системах этого может быть слишком много, потому если после ввода данной команды система начала чаще сбоить, то введите в командной строке от имени администратора:
bcdedit /set IncreaseUserVa 2560 — что позволит задействовать 2,5 гигабайта вместо ранее забронированных 3.
Если ситуацию этим исправить не удалось, верните настройки на состояние по умолчанию:
bcdedit /deletevalue IncreaseUserVa
- Увеличьте объём файла подкачки. Нажмите кнопку «Пуск», в строке поиска введите sysdm.cpl и нажмите ввод. В открывшемся окне настроек системы выберите «Дополнительно» — «Быстродействие» — «Параметры» — «Дополнительно» — «Виртуальная память» — «Изменить». Снимите галочку с опции автоматического размера, поставьте галочку на «Указать размер», и поставьте исходный размер в 8192, и максимальный в 8192. Затем выберите «Задать»;
Установите нужный размер файла подкачки
Заключение
Ошибка «Out of memory» может иметь множество причин, связанных как с физическим недостатком памяти на ПК, так и другими детерминантами, изложенными мной выше. Для решения проблемы советую закрыть ненужные программы (вкладки браузера) на вашем компьютере (тем самым разгрузив его память), а самым эффективным инструментом является установка дополнительной планки памяти на ПК, что в большинстве случаев поможет избавиться от ошибки «Out of memory» на вашем компьютере.
Источник
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) – память забита другими приложениями; на вновь запущенное свободных блоков просто не хватает
- ограничения в объёмах поддерживаемой памяти – планок 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 должна быть установлена. И позаботьтесь о том, чтобы обновления к Windows приходили в вашу систему вовремя.
Тестирование оперативной памяти с помощью memtest поможет вскрыть проблемы в связке “планка-оперативной-памяти -> слот DIMM”. Если ошибки с RAM продолжают преследовать вашу ОС даже после переустановки, время пускать в ход тяжёлую артиллерию.
Источник
Сообщения: 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
Утвердившись, что тут всё-таки косяк у Оракла, дело оставалось за малым.
Попросил администратора БД посмотреть информацию по обнаруженной проблеме:
Источник
Adblock
detector
Во время скачивания или раздачи файла появляется сообщение «Ошибка: Путь не найден» и закачка, раздача прекращается.
Если ваша операционная система — Windows. То, скорей всего, проблема связана с ограничением длинны директории в 255 символов. Тоесть если путь выглядит следующим образом: C:/Program Files/Users/Local Users/My Users/My Files/Files From Internet/Downloaded
From Torrent Trackers/Multimedia Files/Video Files/Favorite Files/Films/HD quality/Comedy Films/Американский пирог/Американский пирог 4 (American Pie Four) — Музыкальный лагерь.avi (265 символов), то появится данное сообщение об ошибке.
Заметьте, что имя файла, включается в ограничение длинны дериктории вместе с расширением.
Чтобы избежать такой ошибки, необходимо разместить файл в менее глубокой директории, к примеру C:/TorrentFiles.
Появляется ошибка uTorrent «Не удается сохранить файл resume».
Для устранения данной ошибки необходимо создать файлы «settings.dat» и «resume.dat» в директории программы (в папке, где находится utorrent.exe)
В строке состояния находится сообщение «Загрузка ограничена».
Это сообщение выводится системой защиты от личеров. Таким образом, uTorrent охраняет других клиентов. Сообщение возникает, когда скорость вашей отдачи в 6
раз меньше скорости загрузки. Но, данный ограничитель работает только, когда вы раздаете со скоростью, ниже 5 КБайт/с, хотя можете раздавать и с большей.
В строке состояния появляется запись — «Диск перегружен».
Такой статус появляется, если ваш жесткий диск не успевает обрабатывать информацию, поступаемую от клиента. Для устранения данной проблемы uTorrent необходимо изменить настройки кэширования диска, через настройки uTorrent:
Options — Preferences — Advanced — Cache (Настройки — Конфигурация — Дополнительно — Кэширование), установите значение кэширования примерно 50 Мб. Или просто отключить «Enable caching of disk writes» (Кеширование записей на диск).
Чаще всего такая проблема uTorrent встречается на старых версиях клиента, из-за плохой работы алгоритмов. Поэтому, как вариант, можно скачать новую версию клиента.
Чтобы избежать этой проблемы в дальнейшем, нужно в Advanced Settings установить значение параметра «diskio.no_zero» равное «True» (Доступно с версии 1.8.1).
Также, такая ошибка uTorrent возникает, когда долгое время не проводилась «Очистка диска» и «Дефрагментация диска».
Появляется сообщение «Не удается назначить порт UPnP **.**.**.**:**».
Данная ошибка возникает при условии, что uTorrent не может назначить необходимый порт через UPnP. Сообщение можно игнорировать, если индикатор работы зеленого цвета, или вы настраивали порт вручную. Но когда индикатор желтый или красный, необходимо
проверить, не блокируется ли порт брандмауэром, или назначить порт вручную, через настройки клиента: Options — Preferences — Connection (Настройки — Конфигурация — Соединение).
При загрузке uTorrent появляется «Ошибка брандмауэра Windows: 0x800706D9» (Error opening Windows firewall: 0x800706D9)
Клиент не смог внести себя в список исключений Windows брандмауэр. Если брандмауэр выключен или отсутсвует, то попробуйте отключить опцию «Add Windows Firewall exception»
(Добавлять uTorrent к исключениям Windows Firewall). Или же, если у вас установлен другой Firewall, вам придется вручную настраивать его и открывать порты.
Также, можно установить в настройках соединения uTorrent свой порт, который не будет изменяться, и разрешить для него входящий трафик
в файерволе.
Во время скачивания торрента, появляется сообщение «Ошибка: недостаточно места на диске».
Ошибка uTorrent проявляется, когда у вас и вправду мало места на диске, или если файловая система вашего диска — FAT32, так как в ней присутствует ограничение на максимальный размер файла — 4 Гб. Для устранения ошибки нужно конвертировать
FAT32 в NTFS.
Появляется сообщение «Error: Element not found» (Ошибка: элемент не найден) и закачка прекращается.
Ошибка возникает из-за включенного параметра «bt.compact_allocation».
Попробуйте выключить его, установить значение «False» и проблема должна исчезнуть. Если не помогло, попробуйте, включить его, применить измененные настройки, а затем опять выключить и применить изменения.
Также, попробуйте заново скачать торрент файл потому, что вы, вероятно, удалили его или изменили. Скачайте торрент файл и перехэшируйте загрузку.
Выводится «Ошибка: неверный параметр» при выборочной загрузке.
Ошибка uTorrent встречается довольно редко и в основном, на старых операционных системах и клиентах. Для решения проблемы, достаточно перезапустить торрент.
Во время закачки появляется «Ошибка данных (проверка четности)».
Ошибка связана с неисправностями жесткого диска. Диск не может прочитать, записать скачиваемые данные. Для решения проблемы необходимо установить специализированные программы, для восстановления жесткого диска. Но они не гарантируют его дальнейшую
работу, скорей всего жесткий диск уже отжил свое и его придется заменить.
В статусе трекера появляется сообщение «Неверная информация с трекера» и клиент не раздает и не скачивает файлы.
Для решения этой проблемы, попробуйте переустановить uTorrent, а также попробовать скачать новую версию. После установки убедитесь, что DHT отключен.
Возможно, проблема в том, что вы работаете через proxy. Чтобы устранить её приобретите внешний (public) IP-адрес у своего провайдера.
При включенном клиенте скорость интернета резко падает до 0, даже если uTorrent ничего не качает.
Проблема не только в клиенте, но и в операционной системе. Для её решения нужно установить патч на количество TCP-соединений (Windows Half-open limit fix (patch))
Запускаю uTorrent, отображаются раздающие и скачивающие клиенты, но закачка не идет.
Скорей всего, проблема в следующем: торренты закрыты провайдером или вашим файерволом. Возможны ошибки в системе рейтингов.
Для решения проблемы свяжитесь с вашим провайдером и проверьте файервол.
Статьи по теме:
Скачать uTorrent — страница загрузки клиента.
Настойка uTorrent — подробные инструкции по настройке и оптимизации работы программы.
Пасхалки uTorrent — интересные особенности, сделанные разработчиками специально для пользователей.
Hi,
If not too late, you will need to follow the steps below:
1. In Bittorent at Options — Preferences — Advanced Disk cache you need to disable «Override automatic cache size and specify size manually (MB):»
2. In «Windows Control Panel\System and Security\System — Advanced system settings — Advanced — Settings — Advance — Change» you need to set custom paging file as follows:
— Initial size (MB): 2 X physical RAM memory
— Maximum size (MB): 3 X physical RAM memory
To commit page file changes you need to click on «Set» & «OK»
3. In Windows regedit you need to update next key from 0 to 1 (making sure the Hexadecimal option is checked):
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache
4. Restart your computer
Following the steps above you will notice that memory consumption diminishes for Bittorrent and does not encounter problems related to disk overload.
Also i attached some useful screenshots.