ошибка «недостаточно памяти» при попытке загрузить определенные веб-сайты (нет свободного места в ОЗУ)

15

ОБНОВЛЕНИЕ: решение Рича (с галочкой) решило мою проблему! Я также опубликовал ответ с обходным решением, которое может помочь, если решение Рича не подойдет вам. Ответ, который получил награду, был лучшим в то время, но у него нет реального решения (хотя это помогло с устранением неполадок).


У меня проблема с тем, что мой компьютер (Macbook Pro, 8 ГБ ОЗУ, ОС 10.8) не будет пытаться загрузить определенные веб-сайты. Ничто не исправляет это, кроме перезагрузки. Это происходит, когда с моим компьютером или подключением к Интернету явно ничего не происходит, и когда другие сайты загружаются без проблем.

Когда это происходит, вот ошибки, которые я получаю:

  • Хром :Error 13 (net::ERR_OUT_OF_MEMORY)
  • Сафари :"The error is: 'The operation couldn't be completed. Cannot allocate memory.' (NSPOSIXErrorDomain:12)"
  • Firefox : нет ответа после ввода URL-адреса и нажатия кнопки возврата (нет сообщения об ошибке, нет сообщения о том, что он загружается или пытается связаться с сайтом).
  • пинг :

    PING google.com (74.125.224.135): 56 data bytes
    ping: sendto: Cannot allocate memory
    ping: sendto: Cannot allocate memory
    Request timeout for icmp_seq 0
    ping: sendto: Cannot allocate memory
    Request timeout for icmp_seq 1
    

(после чего я отменил)

Когда я впервые это заметил, это произошло на одном или двух сайтах, которые я пытался посетить. Я все еще был в состоянии использовать Facebook и Google. Позже в тот же день ошибка распространилась и на Facebook и Google. После перезагрузки эти сайты снова стали доступны, но позже я не смог получить доступ к другим сайтам (stackexchange.com, surveygizmo.com).

Некоторые другие заметки:

  • Я могу подтвердить, что это происходит в нескольких беспроводных сетях и VPN.
  • В тот момент, когда это происходило, у меня было 2 ГБ ОЗУ "неактивно" и 500 МБ "свободно" из общего количества 8 ГБ, поэтому на самом деле мне не хватает памяти. Другие веб-сайты и приложения быстро реагируют, и нет признаков чрезмерного обмена.
  • Кажется, что ответ от ping говорит о том, что проблема не влияет на DNS (хотя IP-адрес мог быть где-то кэширован).

Я нашел только одну ссылку на эту проблему в теме поддержки Apple . Решение не найдено, кроме перезагрузки.

ПРИМЕЧАНИЕ: это не проблема с нехваткой оперативной памяти

Монитор активности показывает много свободной / неактивной памяти. Там не чрезмерное количество пейджинга происходит. Другие сайты загружаются без проблем. Может происходить какая-то другая ошибка распределения памяти, но я не могу представить, чтобы из-за нехватки ОЗУ некоторые старые веб-сайты не влияли на производительность.

octern
источник
Похоже, у вас заканчивается ОЗУ вообще? Посмотрите, куда (какие процессы) уходит ваша память.
Джерри
Спасибо, но я не думаю, что это проблема. Там нет никаких признаков задержки или обмена, когда это происходит; это просто мгновенно дает мне ошибку. Другие программы и вкладки браузера продолжают отвечать без задержки. Кроме того, 2.5G доступной оперативной памяти довольно много (если что-то не сломано и не удается перераспределить неактивную память).
2012 г.
Ну, вполне возможно, что-то сломано, но это не проблема просмотра, но в более общем плане связана с управлением памятью.
Джерри
После перерыва проблема снова возвращается. На этот раз это мешало мне получить доступ к любому из моих рабочих файлов, поэтому мне действительно нужно исправить это! Щедрость добавлена.
Октябрь
2
Эта проблема вряд ли будет связана с системной памятью, но вместо этого с сетевыми буферами. Пожалуйста, покажите нам результат netstat -m. Какие VPN вы используете? Вы видите проблему, когда вы не используете VPN?
AndrewNimmo

Ответы:

6

Я не смог вернуть свою сеть, отключив и снова включив TCP / IP или Wi-Fi. Похоже, в моем случае компьютер перешел в спящий режим с подключением Juniper VPN, и когда он восстановился, время соединения истекло, и маршруты не были очищены. Для меня у меня было два компьютера, один работал, а другой нет, и я смог определить проблему после запуска netstat -rn.

На компьютере, который не работал, у меня был пункт назначения 192.168.43.1 со шлюзом ссылки № 5. На компьютере, на котором работал WAS, шлюзом этого назначения был mac-адрес беспроводного маршрутизатора, поэтому я удалил этот маршрут с помощью:

sudo route delete -host 192.168.43.1

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

Некоторые люди утверждали, что переход в «Настройки» → «Сеть» → «Wi-Fi» → «Дополнительно» → «Прокси» и включение автоматического обнаружения прокси-серверов работает для них. Я не смог проверить это, так как мое соединение было исправлено путем удаления «мертвого» маршрута.

Богатый
источник
Это работает! И в отличие от моего решения, оно на самом деле решает основную проблему и помогает объяснить, что происходит. Спасибо!
октябрь
Оглядываясь назад, я думаю, что клиент Juniper был причиной моих проблем тоже. Теперь я могу сообщить, что это явление не повторилось, так как моя организация перестала использовать Juniper и переключилась на собственный интерфейс VPN OS X.
октября
4

Это не проблема ОЗУ или диска.

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

  • netstat -mm предоставит подробную информацию об использовании вашего пула буферов;
  • netstat -I en0если ваш действующий сетевой интерфейс en0(Ethernet) покажет вам любые фактические ошибки (Ierrs, Oerrs);
  • netstat -r покажет вам, если ваши маршруты к остальному миру верны.

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

  • оставить любое сетевое приложение ( Safari, Mail, ssh...) так, чтобы ограничить свой собственный известный шум (на сетевом интерфейсе);
  • откройте Terminalи введите: /usr/bin/sudo tcpdump -i en0(если ваш интерфейс en0== Ethernet);
    • если вывод tcpdumpмолчит, вы не атакованы, просто выйдите из этого привилегированного приложения, набрав control-C
    • если вывод tcpdump- флуд, вы атакованы. Если вы находитесь в таком случае, пожалуйста, опубликуйте выдержку из этих выходных данных и из трех вышеприведенных выходных данных команд.
Дан
источник
Я до сих пор не смог проверить это, но я попробую, когда смогу. Я наградил награду, чтобы предотвратить ее истечение. Спасибо вам за ваши предложения.
Октябрь
Я очень заинтересован в ваших следующих тестах, потому что у меня была такая же трудная проблема для воспроизведения ... и я должен ее убить!
дан
3

Это должно быть довольно легко отследить с помощью инструмента sysdiagnose.

Когда браузер заклинивает и выдает ошибки, откройте терминал и добавьте имя браузера в качестве аргумента в скрипт: (так что, если Safari падает)

 sysdiagnose Safari

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

На этом этапе вы получите огромный файл tar.gz для диагностики системы, который хранится в / private / var / tmp, который вы можете скопировать на рабочий стол и просмотреть его. Это будет немного похоже на поиск иголки в стоге сена - но вы можете быть уверены, что какой-то ресурс заполняется, если перезагрузка заставляет вещи работать до тех пор, пока какая-либо ошибка или ресурс не будут запущены / использованы снова.

bmike
источник
Спасибо за совет! Мне пришлось перезагрузиться, чтобы выполнить срочную работу, поэтому проблема сейчас неактивна. Я обязательно попробую ваше предложение и отправлю ответ в следующий раз.
Октябрь
Звучит хорошо - вы также можете отправить отчет об ошибке в Apple, если не можете диагностировать проблему. Скорее всего, они не ответят, чтобы помочь вам в устранении вашей проблемы, но они могли бы решить основную проблему с помощью данных, которые вы отправляете, о том, как система выглядит, когда вам удается ее устранить.
bmike
2

Посмотрите на свою таблицу маршрутизации (запустите netstat -rnна Терминале). Эта проблема даже сохраняется после перезагрузки.

Я решил похожие проблемы, отключив TCP / IP ( Системные настройки »Сеть» Wi-Fi »,« Дополнительно »TCP / IP ) и снова включив TCP / IP для интерфейса Wifi / Ethernet.

VincentM
источник
1

Эта проблема вряд ли будет связана с системной памятью, но вместо этого с сетевыми буферами. Пожалуйста, покажите нам вывод команды netstat -m.

Какое программное обеспечение VPN вы используете? Вы видите проблему, когда вы не используете VPN?

AndrewNimmo
источник
0

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

  1. Очистите кеши, везде ... запустите Cocktail или MacPilot, чтобы уничтожить их всех.
  2. Очистите Internet Plug-insпапку в главной Libraryпапке. Каждый браузер будет их использовать.
  3. Я бы также предложил создать новую, новую учетную запись пользователя и протестировать ее там, просто чтобы посмотреть, что произойдет.
Pixelwiz
источник
0

Мой друг однажды столкнулся с подобной проблемой с Google Chrome, где он тянул RAM так. Вы можете посмотреть, какие программы используют объем оперативной памяти, когда эта проблема возникает с Activity Monitor. Если есть подоперация Google Chrome, вы можете попробовать переустановить ее.

cbbcbail
источник
0

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

Шаг 1. Найдите IP-адрес сайта, который вы хотите загрузить.

Вы можете сделать это, используя ping, digили nslookup(подробности см. В этом вопросе ).

Шаг 2: Найдите IP-адрес вашего шлюза

Вы можете найти это на панели управления сетью, ifconfigзапустив netstat -rnили отметив IP-адрес рядом с записью «default».

Шаг 3. Создайте запись в таблице маршрутизации для затронутого IP-адреса или блока.

Используйте команду sudo route add [affected IP address] [gateway IP address]

Если, как и у меня, у вас есть эта проблема с целыми блоками IP одновременно, вы можете ввести весь блок / 8. Например, если адрес сайта, на который вы хотите перейти 173.231.155.34, можно ввестиsudo route add 173.0.0.0/8 [gateway IP address]

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

octern
источник