LINUX.ORG.RU

Что происходит за пару секунд до вмешательства OOM-киллера?

 ,


3

2

Обычная ситуация, когда работаешь на десктопе в X-ах и неожиданно кончается память - всё начинает дико тупить. Как правило, даже мышка не шевелится. При этом, с некоторым успехом можно зайти на комп по ssh с соседней машины.

Через некоторое время (до минуты в среднем), вмешивается OOM-killer и отстреливает жрущий процесс.

При этом свопа на компьютере нету, поэтому интересно - с чем связаны тормоза? Когда был своп, всё было понятно по невыключающемуся индикатору жёсткого диска. Но без свопа причина тормозов не понятна абсолютно. Память либо есть, либо нету. Если нету, oom-killer должен сделать, что есть. Чего тормозит тогда всё?

★★★★★

Ответ на: комментарий от AngryElf

C oom_kill_allocating_task он будет убивать тупо случайный процесс.

anonymous
()
Ответ на: комментарий от RazrFalcon

Лучше разделом конечно, чтобы обойти взаимодействие с ФС, но вообще не принципиально

Проблем не имею

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

annulen ★★★★★
()
Ответ на: комментарий от anonymous

Чем? 10 виртуалок мне не нужно, а программа с настолько текущей памятью всё равно работать не будет, хоть 100 гигов оперативки и 1 Тб свопа поставь.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

vmalloc, в отличие от Солярки, медленный и поэтому и пользуются очень мало, большая часть памяти в ядре выделяется kmalloc, которому нужен последовательный блок физической памяти. Если ядру не удастся парямо здесь и сейчас получить эти страницы то аллокация зафейлится и нарушит работу драйвера, а в случае успеха, если занято много памяти, будет расти pressure что вызовет приход киллера.

annulen ★★★★★
()
Ответ на: комментарий от peregrine

А стоит сбросить несколько попавшихся невовремя под руку страниц в своп, и все успокоится на кокакое-то время

annulen ★★★★★
()
Ответ на: комментарий от annulen

Хорошо, раз пошла такая пьянка...

На сколько должен быть забит своп и где надо начинать волноваться?

VPS:

# free
              total        used        free      shared  buff/cache   available
Mem:        2049860     1545168      178952         528      325740      455548
Swap:       1048572      508248      540324

2gb ram, 500mb/1024mb занято в свопе.

Где начинать волноваться, что скоро всё умрёт?

AngryElf ★★★★★
() автор топика
Последнее исправление: AngryElf (всего исправлений: 1)
Ответ на: комментарий от AngryElf

На сколько должен быть забит своп и где надо начинать волноваться

Смотря чем этот vps занимается, как по мне в свопе многовато и это может ухудшать производительность, либо просто запущены ненужные процессы. Для не-серверной системы ситуация вполне хорошая, волноватсья стоит если своп занят процентов на 90%, но пока там есть хотя бы несколько метров никакая свистопляска не начнется

annulen ★★★★★
()
Ответ на: комментарий от annulen

Там CouchDB, 15gb данных на диске, 8% памяти (по htop).

Redis - 7%.

Apache + mod_wsgi, где-то 15% памяти суммарно по воркерам, на глаз. Сам апач - 0.5%.

NSQd - 0.5% памяти.

mod_wsgi с maximum-requests=100, что б не бояться утечек.

Примерно так вот.

AngryElf ★★★★★
() автор топика
Ответ на: комментарий от AngryElf

В top можно включить по-процессную колонку swap, не знаю, насколько оно врёт.

anonymous
()
Ответ на: комментарий от Deleted

oom кллер не хочет просыпаться пока не кончится своп, а это надолго

можно просто SysRq+F жмакнуть

RisuX3
()
Ответ на: комментарий от Deleted

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

anonymous
()
Ответ на: комментарий от dk-

В венках такого в хр без свопа

Если в Windows отключить все swap файлы, она тайком создаёт себе один сама. Кладёт в свою директорию, C:\WINDOWS.

i-rinat ★★★★★
()

При этом свопа на компьютере нету, поэтому интересно - с чем связаны тормоза?

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

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

Дети, не выключайте своп.

INFOMAN ★★★★★
()
Ответ на: комментарий от AngryElf

Соответственно, когда прийдёт OOM-killer, крайней окажется база

В вычислении badness ещё CPU time участвует, поэтому скорее всего база выживет, а завершены будут краткоживущие процессы.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Уверен? У меня есть xp загружающаяся с флэшки, хотя на флэшке свап включить никак не получается.

anonymous
()
Ответ на: комментарий от anonymous

Типа запись отключена? Ну куда-то пишет в памяти значит, у венды много файлов генерируется в рантайме в любом случае. Хотя дерьмо типа хр даже не венда. Так минимальный своп-файл что-то около 16мб.

anonymous
()
Ответ на: комментарий от anonymous

Уверен? У меня есть xp загружающаяся с флэшки, хотя на флэшке свап включить никак не получается.

Конечно нет. Я не знаю всех краевых особенностей Windows. В Windows XP на жёстком диске swap-файл создавался. Возможно, на флешке не будет, не проверял.

i-rinat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.