Из-за чего Linux может несколько минут не отвечать на запросы при просмотре определенных веб-сайтов?

sed -e 'h; s/./&\n/57; /^.\{17\}.*Cook Co[.] IL.*\n/!d; g' yourfile

Отметьте правую -границу и наложите ограничение с помощью ^ на левую границу. В этом регионе найдите регулярное выражение. Если найдено, распечатайте трюм с ориг. линия.

28
09.08.2019, 16:49
7 ответов

What can make Linux so unresponsive?

Перераспределение доступной оперативной памяти, которое приводит к большому объему подкачки, определенно может привести к этому. Помните, что ввод-вывод с произвольным доступом на вашем механическом жестком диске требует перемещения головки чтения/записи,который может выполнять только около 100 поисков в секунду.

Linux обычно полностью уходит на обед, если вы выделяете ОЗУ «слишком много». У меня также есть вращающийся диск и 8 ГБ оперативной памяти. У меня были проблемы с парой программ с утечкой памяти. т.е. их использование памяти со временем растет и никогда не уменьшается, поэтому единственным способом контролировать это было бы остановить программное обеспечение, а затем перезапустить его. Основываясь на опыте, который у меня был во время этого, я не очень удивлен, узнав о задержках более десяти минут, если вы генерируете 3 ГБ+ подкачки.

Вы не обязательно увидите это во всех случаях, когда у вас более 3 ГБ подкачки. Теория говорит, что ключевым понятием является взбучка . С другой стороны, если вы пытаетесь переключиться между двумя разными рабочими наборами, и для этого требуется подкачка 3 ГБ входящих и исходящих данных, при скорости 100 МБ/с это займет не менее 60 секунд, даже если шаблон ввода-вывода можно идеально оптимизировать. На практике схема ввода/вывода будет далека от оптимальной.

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

Приблизительный баланс между нехваткой памяти и уничтожением процессов и зависанием системы так долго, что вы все равно сдаетесь и перезагружаетесь. Я не знаю, не слишком ли велик раздел подкачки размером 4 ГБ; это может зависеть от того, что вы делаете. Важно следить за тем, когда диск начинает взбалтывать, проверять использование памяти и реагировать соответствующим образом.

Проверка использования памяти многопроцессорными приложениями -затруднена. Чтобы увидеть использование памяти на -процесс без двойного подсчета -общей памяти, вы можете использовать sudo atop -R, нажать M и m и посмотреть в столбце PSIZE. Вы также можете использовать smem.smem -t -P firefoxпокажет PSS всех ваших процессов Firefox, а затем строку с общим PSS. Это правильный подход к измерению общего использования памяти в браузерах на основе Firefox или Chrome. (Хотя существуют также специальные функции браузера -для отображения использования памяти, которые будут отображать отдельные вкладки ).

29
27.01.2020, 19:39

Что выдает free -m? Объем вашей оперативной памяти не имеет смысла, если мы не знаем, сколько вы используете. Это, и мне интересно узнать, сколько места подкачки используется.

Я думаю, вы сами ответили на свой вопрос. Открытие «множества вкладок» в вашем браузере может определенно замедлить работу вашей системы, если вы никогда их не закрываете, поскольку они будут продолжать потреблять память в любом случае; когда ваша система зависает, сколько у вас открыто одновременно?

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

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

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

4
27.01.2020, 19:39

AFAIK, bloatware shouldn't make the OS unresponsive, so I wouldn't consider or even accept that the bloatware is the root cause of the problem

Вам это не понравится, но я думаю, что вредоносное ПО — это ваша проблема (, хотя я не уверен, проблема в памяти или диске ). К сожалению, ядро ​​Linux ужасно справляется с ситуациями с нехваткой памяти и, как известно, обычно требует перезагрузки, когда память исчерпана. Есть три вещи, которые заставляют меня думать, что ваша проблема связана с исчерпанием ресурсов:

  1. Место на диске root (/ )и DATA почти заполнено. Я не уверен, для чего вы используете DATA, но раньше я сталкивался с проблемами, когда размер моего корневого раздела был слишком мал, и моя система становилась неработоспособной.
  2. У вас высокая -нехватка памяти, что означает, что ваша оперативная память почти заполнена. Когда ОЗУ начнет заполняться, вы начнете получать ошибки страниц. Ошибки страниц возникают, когда ядро ​​не может выделить достаточно памяти для процесса и вместо этого должно использовать в некоторых системах гораздо более медленное пространство подкачки. Это приводит нас к нашему последнему наблюдению:
  3. Пространство подкачки почти заполнено. Очевидно, что в вашей системе наблюдается высокая нагрузка на память, поскольку и ОЗУ, и подкачка почти заполнены.

По сути, сложите эти три вместе, и ваша система не имеет достаточно ресурсов, чтобы сделать большую часть чего-либо. К сожалению, Linux плохо справляется с ситуациями с нехваткой памяти -(по сравнению, скажем, с ядром NT в Windows ), но, похоже, так оно и есть. Вы можете найти больше обсуждений в этой ветке Reddit и связанном с ней списке рассылки.

Что касается того, как исправить вашу ситуацию, я бы сказал, что увеличение размера подкачки — хорошая идея, но, поскольку у вас мало места на диске, это будет проблемой. Если на вашем сервере Minecraft не много людей, я думаю, было бы безопасно уменьшить его память примерно до 1024 м (. Я лично использую 1024 м с примерно 10 людьми, и это работает нормально ).Я бы также использовал втулку или бумагу для вашего сервера Minecraft, поскольку они, как правило, более производительны.

Удачи!

5
27.01.2020, 19:39

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

Некоторые предложения:

  • Добавьте апплет монитора памяти на панель задач, чтобы вы могли следить за ним.
  • В настройках Firefox установите «лимит обработки контента» на «1». Как сказано в тексте под параметром :«Процессы дополнительного содержимого могут повысить производительность при использовании нескольких вкладок, но также будут использовать больше памяти».
  • Удалите или замените любые расширения памяти, -требующие расширения браузера. Держите блокировщик рекламы, так как реклама потребляет больше памяти, чем любой блокировщик.
  • Исследуйте и, возможно, удалите все другие программы, требующие -памяти.

Тем не менее, единственно верное решение — купить больше оперативной памяти.

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

4
27.01.2020, 19:39

What can make Linux unresponsive for minutes when browsing certain websites?

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

Фон:

Almost every non-user program’s priority is 0.
Almost every user program’s priority is 20.

Чтобы «исправить» вашу проблему:

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

Примеры из реального мира:

KMail:          nice -n 1 kmail -caption "%c" %i %m
LibreOffice:    nice -n 2 libreoffice --writer %U
Firefox:        nice -n 3 firefox %u
WorstOffender:  nice -n 9 {i'm a bad program}

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

-2
27.01.2020, 19:39

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

  • добавить ОЗУ (32 ГБ отлично подходит для многих настроек)

  • замените жесткий диск на SSD

  • добавить SSD (Твердотельный накопитель )для подкачки

  • создать раздел подкачки в ОЗУ (при 32 и более ГБ ОЗУ)

  • установите более быстрый жесткий диск

  • перейти на систему с более быстрой обработкой и более широкой/быстрой архитектурой шины.

Некоторые из этих обновлений/замен оборудования могут стоить менее 100 долларов США. Они не относятся ни к Linux, ни к вашим конкретным программным реализациям, но используемое вами оборудование не соответствует вашим задачам.

2
27.01.2020, 19:39

Вывод htop показывает, что потребность в ОЗУ превышает ее емкость (общее количество ОЗУ+SWAP ). Таким образом, очевидно, что первое, что нужно сделать, это уменьшить использование ОЗУ или увеличить доступность ОЗУ.

Обратите внимание, что современные -версии firefox чрезвычайно ресурсоемкие -из-за того, что окнам/вкладкам отводится процесс и место в памяти. Идея заключалась в том, чтобы избежать сбоя вкладок, ставящего на колени весь браузер. Оно того стоит? Кто может сказать... Во всяком случае, у меня была аналогичная проблема из-за вышеизложенного, так как моя материнская плата Pentium 4 поддерживает только 2 ГБ ОЗУ. Чтобы избежать возможных сбоев из-за нехватки памяти, я добавил ~800 МБ пространства подкачки на запасной SSD, очевидно, с намерением использовать его как можно меньше. Я добился этого, изменив настройку, известную как swappiness, которая определяет, насколько активно ядро ​​будет выгружать страницы памяти. Ниже приведены некоторые полезные команды.

Проверить текущую подкачку:cat /proc/sys/vm/swappiness

Это вполне может дать вам результат около 60, что достаточно много для максимальной производительности на системах с меньшей нагрузкой. Для вас, очевидно, этот счетчик -работает продуктивно, поэтому вы можете изменить настройку с помощью такой команды, как sysctl vm.swappiness=1, чтобы изменить настройку во время работы системы.

Чтобы сохранить эти изменения, вам нужно найти файл /etc/sysctl.conf. В этом файле измените значение или добавьте строку vm.swappiness=1.

Учтите, что это не решение в вашем случае, но должно стать удобным обходным решением.

Кредиты https://askubuntu.com/questions/103915/how-do-i-configure-swappiness

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

4
27.01.2020, 19:39

Теги

Похожие вопросы