LINUX.ORG.RU
 
dotcoder

Авторегулирование подкачки подсистемы виртуальной памяти


0

0

Con Kolivas выпустил патч, который налету регулирует "подкачку" в подсистеме виртуальной памяти, в зависимости от используемого приложениями процента ОЗУ (при этом размер дискового кэша в счет не принимается). Патч работает по принципу "выделять побольше памяти часто-используемым/текущим приложениям, а приложения, которые используются редко, помещать в подкачку".

>>> Подробности


[#]  

Re: Авторегулирование подкачки подсистемы виртуальной памяти

Что-то я не понял, так это уже лет десять как есть в ядре ?

* ()
[#]  

Re: Fork проекта XMMS - Beep.

Глупости какие. Особенно в текущей трактовке.
А чем по вашему Линус занимался? И другие авторы ядер?

Подкачка вообще зачастую не нужна *совсем*. У меня вот уже с полгода система живет себе БЕЗ раздела подкачки. И не жалуется.

Еще бы оный патч на ASMе был написан, чтобы уж ни у кого сомнений не вызывал на тему видовой принадлежности автора...


ЗЫЖ Или я чего не понимаю?

* ()
[#] Ответ на: Re: Fork проекта XMMS - Beep. от philon 24.10.2003 12:40:52  

Re: Re: Fork проекта XMMS - Beep.


>Подкачка вообще зачастую не нужна *совсем*. У меня вот уже с полгода система живет себе БЕЗ раздела подкачки. И не жалуется.

Присоединяюсь. Уже более года, как отказался от подкачки, в т.ч. и на серверах. Опыт положительный. Объемы от 256 до 1000 МБ.
При достаточном ИЗЛИШКЕ ОЗУ существование раздела/файла подкачки весьма спорно.

** ()
[#]  
Sun-ch

Re: Авторегулирование подкачки подсистемы виртуальной памяти

Сдается мне, что эта фича называется "агрессивный свопинг",

известна уж лет сто.

# ()
dotcoder

Re: Re: Авторегулирование подкачки подсистемы виртуальной памяти

Con Kolivas [interview] strikes again, this time with a patch that regulates the VM subsystem's "swappiness" on-the-fly, depending on the percent of RAM being used by applications (it does not take disk cache into account). Con explained the effects of this patch:

"This has the effect of preventing applications from being swapped out if the ram is filling up with cached data. Conversely, if many applications are in ram the swappiness increases which means the application currently in use gets to stay in physical ram while other less used applications are swapped out.

"For desktop enthusiasts this means if you are copying large files around like ISO images or leave your machine unattended for a while it will not swap out your applications. Conversely if the machine has a lot of applications currently loaded it will give the currently running applications preference and swap out the less used ones."

Swappiness is a kernel "knob" (located in /proc/sys/vm/swappiness) used to tweak how much the kernel favors swap over RAM; high swappiness means the kernel will swap out a lot, and low swappiness means the kernel will try not to use swap space.

**** ()

Re: Re: Авторегулирование подкачки подсистемы виртуальной памяти

Меня несколько удивляет другое - неужели в том виде, в котором это описано в новости эта штука уже не включена в ядро. Причём уже давно! И вообще - не мог бы кто-нибудь пояснить разницу между существующим порядком swap и тем, что предлагается?

anonymous ()
[#] Ответ на: Re: Fork проекта XMMS - Beep. от philon 24.10.2003 12:40:52  
Sun-ch

Re: Re: Fork проекта XMMS - Beep.

Не понимаешь.

Представь ситуацию, когда нагрузка балансируется между 2 серверами,

при выходе одного из строя, нагрузка на второй сервер растет

очень быстро. И че делать без свопа?

# ()
[#] Ответ на: Re: Re: Fork проекта XMMS - Beep. от Sun-ch 24.10.2003 13:20:13  

Re: Re: Re: Fork проекта XMMS - Beep.

вешаться. или чинить первый сервер. потому как если оно начнет свопать то всё встанет раком.

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

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

* ()
[#] Ответ на: Re: Re: Re: Fork проекта XMMS - Beep. от sg 24.10.2003 13:37:05  
Sun-ch

Re: Re: Re: Re: Fork проекта XMMS - Beep.

Не разу не видал, чтобы ядро по собственной инициативе убивало

нормальные процессы. Прямо иск. интеллект какой-то, а если оно решит

что пора отдохнуть и остановит процессор :)

# ()
[#]  
yakuza

Re: Авторегулирование подкачки подсистемы виртуальной памяти

Почитали бы.

Всё это сделано зачем:

The vm_swappiness dial in 2.6 was never quite the right setting without me
constantly changing it depending on the workload. If I was copying large
files or encoding video it was best at 0. If I was using lots of applications
it was best much higher. Furthermore it depended on the amount of ram in the
machine I was using. This patch was done just for fun a while back but it
turned out to be quite effectual so I thought I'd make it available for the
wider community to play with. Do whatever you like with it.

То есть, товарищ просто хочет, чтобы склонность системы к "высвапливанью" менялась автоматически, способом, который он предложил.

This has the effect of preventing applications from being swapped out if the ram is filling up with cached data.

For desktop enthusiasts this means if you are copying large files around like ISO images or leave your machine unattended for a while it will not swap out your applications.

То есть, например, если увеличивается объём кэш-памяти при копировании здоровых файлов, это не должно приводить к высвапливанию процессов.

* ()
[#] Ответ на: Re: Re: Fork проекта XMMS - Beep. от Sun-ch 24.10.2003 13:20:13  

Re: Fork проекта XMMS - Beep.

> И че делать без свопа?

А чё делать со свопом? Все одно тормозить все будет.
В нормальных системах запас уж не менее двукратного. Безо всяких свопов.
Там где нужен кэш (сквиды какие) на диске - там он есть. А swap - наследие каменного века, когда память была дорогой.

Итак - данный патч предназначен для отстрела лишних процессов в своп, при резком повышении нагрузки?
Тогда я еще раз спрошу - разве ж этого не было еще сделано черте когда?
Именно к этому мое "не понимаю" и относилось.

* ()
[#]  
yakuza

Re: Авторегулирование подкачки подсистемы виртуальной памяти

Кстати, ещё: Con Calivas известен тем, что делает подборку патчей для "десктопного" линукса.

http://members.optusnet.com.au/ckolivas/kernel/

* ()
[#] Ответ на: Re: Fork проекта XMMS - Beep. от philon 24.10.2003 14:23:16  
Sun-ch

Re: Re: Fork проекта XMMS - Beep.

Ты не понимаешь принципа работы VM, очереди приоритетов, планировщика

и т.д.

У меня своп используется на 60% при 90М free memory и ничего не

тормозит.

Зачем низкопроритетным задачам висеть в памяти?

# ()

Re: Re: Авторегулирование подкачки подсистемы виртуальной памяти

Гм... Интересная мысль... Бывалые линуксоиды, не думая о том, как нормально реализован своп, решили, что он по определению тормозит...
Гм... И лучше его отключить, чем привести в порядок...
ЧУдно...
Я не нашёл ничего лучше "агрессивного" свопа + лимитов...

** ()
[#]  

Re: Авторегулирование подкачки подсистемы виртуальной памяти

Ну раз пошла такая пьянка...
Мож подскажете...
Размер процесса Х (по top колонка SIZE) в процессе работы разрастается с 40М до 200М. После закрытия всех приложений размер его все равно 200М
Подскажите хотя бы где мне рыть чтоб уменьшить этот самый SIZE.
(РХ9,256М)

* ()
[#] Ответ на: Re: Re: Fork проекта XMMS - Beep. от ANDI 24.10.2003 12:57:23  

Re: Re: Re: Fork проекта XMMS - Beep.

Если у Вас настолько много ОЗу, то может быть оно так и надо. Но по жизни не раз встречал, что вполне благополучные системы неожиданно начинали поедать ресурсы ведрами. Потом уже можно и ulimit-ов наставить, и каких-нибудь сторожей, но в момент кризиса мечатешь о том, что бы хватило ресурсов на обыкновенный kill. Кроме этого, например Солярка, быстро выдавливает в свап спящие процессы, а освободившуюся память тратит на кеширование. Тоже не плохо. Конечно возможны варианты совсем без свапа, но это исключение, а не правило.

* ()
Sun-ch

Re: Re: Авторегулирование подкачки подсистемы виртуальной памяти

А смысл? Если процессу нужно 200М то он их берет, другое

дело почему он их не возвращает.

Если поставить лимит, то процесс вывалится с ошибкой out of memory.

# ()

Re: Re: Re: Авторегулирование подкачки подсистемы виртуальной памяти

Дело в том что на разных машинах ситуация разная
на другой машине жрет меньше (РХ7.3,320М ручками проапдейчены пакеты с РХ9 ) раза в полтора-два
мож где-то есть какие конфиги или в ядре чего...

по такой проблеме трудно составить правильный запрос в гугль :(

* ()
[#] Ответ на: Re: Re: Fork проекта XMMS - Beep. от Sun-ch 24.10.2003 14:42:44  

Re: Fork проекта XMMS - Beep.

> Ты не понимаешь принципа работы VM, очереди приоритетов, планировщика

Понимаю. Но считаю, что дешевизна оперативной памяти вносит в это свои коррективы.
Превращая своп из обыденности в дополнительную фичу, нужную только тем, кто знает - зачем оно ему надо.

> У меня своп используется на 60% при 90М free memory и ничего не

У меня тоже ничего не тормозит. Оперативной памяти особо свободной я не видел. Все тут же занимает дисковый кэш.
Подкачки нет совсем.

> Зачем низкопроритетным задачам висеть в памяти?

А зачем им лежать на диске?
Если эти задачи мне понадобятся, я получу их в кратчайшие сроки. Меня не будет озадачивать шуршание винтов в три часа ночи, когда я, скажем, читаю книгу и ничего с диска/на диск не пишу.
Если будет тормозить из-за недостатка оперативки - докуплю еще. Собственно и собираюсь (на всякий случай), как только гигабайтные плашки DDRок будут у нас стоить так же, как две штуки 512шек.

* ()

Re: Fork проекта XMMS - Beep.

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

Гм. И думаем, что тормозит (а то нет?), и думали как нормально реализовать. Одно другому не мешает.

> Гм... И лучше его отключить, чем привести в порядок...

Порядок это типа идеал? Дак оно в изменяющейся обстановке практически недостижимо. Текущая реализация, конечно, не плоха.

Если есть возможность жить без свапа, то почему бы так и не жить?

> Я не нашёл ничего лучше "агрессивного" свопа + лимитов...

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

* ()
[#] Ответ на: Re: Fork проекта XMMS - Beep. от philon 24.10.2003 15:51:58  
Sun-ch

Re: Re: Fork проекта XMMS - Beep.

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

Просто надо приучатся все делать правильно.

Думаешь дяди понтуются просто, когда говорят

в сервер нельзя ставить дешевое железо

в сервер нельзя ставить ide диски

и тд.

своп на юниксе должон быть! Точка :)

# ()
[#] Ответ на: Re: Re: Fork проекта XMMS - Beep. от Sun-ch 24.10.2003 16:07:34  

Re: Re: Re: Fork проекта XMMS - Beep.

Своп в системе должен быть по любому.
Хотя у меня на desktop машине его нет :)).
Досталась машина от Oracle девелопера с
Гигом памяти ну я и забил на swap.
Swap позволяет оптимальнее использовать ОЗУ,
высвобождая её для кэша буферов или чего ещё.
MemTotal: 1033688 kB
MemFree: 33992 kB
Buffers: 31816 kB
Cached: 191020 kB
SwapCached: 0 kB
Active: 268804 kB
Inactive: 22704 kB
HighTotal: 131008 kB
HighFree: 1176 kB
LowTotal: 902680 kB
LowFree: 32816 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 16 kB
Writeback: 0 kB
Mapped: 120436 kB
Slab: 596332 kB
Committed_AS: 286440 kB
PageTables: 1228 kB
VmallocTotal: 106488 kB
VmallocUsed: 19980 kB
VmallocChunk: 84576 kB

Хотя может включу как только чужеродный NTFS раздел
в бакап снесу :))

anonymous ()
[#] Ответ на: Re: Fork проекта XMMS - Beep. от philon 24.10.2003 15:40:29  

Re: Re: Fork проекта XMMS - Beep.

>> Понимаю. Но считаю, что дешевизна оперативной памяти вносит в это свои коррективы. >> Превращая своп из обыденности в дополнительную фичу, нужную только тем, кто знает - зачем оно ему надо.

Вот тогда и не лезь со своими мыслями. Если мне приходится использовать своп - то это мои проблемы и я буду обсуждать их с теми, кто может чем то помочь, а не кричать "я богатый - у меня мозгов до самой толстой жопы!!"

anonymous ()
[#] Ответ на: Re: Re: Fork проекта XMMS - Beep. от Sun-ch 24.10.2003 16:07:34  

Re: Re: Re: Fork проекта XMMS - Beep.

>в сервер нельзя ставить ide диски
Понятно, что для больших серверов это неприемлимо, но объясни это обоснованно.
>своп на юниксе должон быть! Точка :)
Своп на юниксе никому и ничего не должен. Если негрузка прогнозируемая, то можно и без свопа. Неправильно рассчитанный своп тоже можно переполнить.

* ()
[#] Ответ на: Re: Re: Re: Fork проекта XMMS - Beep. от XCHG 24.10.2003 17:29:47  
Sun-ch

:)

Понятно, что для больших серверов это неприемлимо, но объясни это обоснованно.

На сервере, скорость дисковой подсистемы гораздо важней

скорости процессора.

IDE дает большую нагрузку на процессор;

Призводители таких дисков, вообще говоря не рассчитывают, что их

изделие будет работать при полной нагрузке годами.

Обычно диски на домашних компьютерах меняют на новые в течении 2-3

лет.

# ()
[#]  

Re: Авторегулирование подкачки подсистемы виртуальной памяти

Вот объясните мне - почему под линухом, когда память заканчивается, машина как бы зависает? Причем, процесс, который сожрал всю память, отваливается только спустя 10-15 минут? В это время комп ни на что не реагирует. У меня веб-сервер (red-hat 9) постоянно вис, пока своп не увеличил.

anonymous ()
[#]  
Rost

Re: Авторегулирование подкачки подсистемы виртуальной памяти

не понимаю, зачем держать целый раздел для свопа? имхо это безвозвратная трата дискогово пространства.
при необходимости можно ведь заюзать своп в отдельном файле.

dd if=/dev/zero of=/swapfile bs=1M count=512
mkswap /swapfile
chmod 600 /swapfile
swapon /swapfile

Все! :)

** ()

Re:

> Все! :)

Именно. Осталось сделать эту фичу автоматической (при резком недостатке памяти) и ваши волосы будут...

PS: Наверняка онанимы назовут это виндоподобием ;-) А по мне так очень неплохой способ подчеркнуть вторичность и в штатном режиме ненужность свопа...

* ()
[#] Ответ на: Re: от philon 24.10.2003 18:20:53  

Re: Re:

слушай, если ты гигами РАМ разбрасываешься, то чего тогда дисковое пространство жилишь. Своп нужен не пока РАМ дорогой, а пока он дороже чем диск. Сейчас он наверно раз в 100 дороже, нет??

***** ()
[#] Ответ на: Re: Re: от dilmah 24.10.2003 18:34:44  

Re:

Это не я про дисковое пространство говорил.
Оно, ессно, еще дешевле будет. И измеряется (на домашних машинках) сотнями гиг.

Я про вполне ограниченную дисковую *производительность*, коя не столь прекрасна, как хотелось бы.

* ()
[#]  

Re: Авторегулирование подкачки подсистемы виртуальной памяти

Чего вы так ругаетесь?
Да, мозги щас дешевые, но никто не мешает на всякий случай сделать 200-600М свапа.
При спрогнозированных нагрузках он использоваться просто не будет,
а в какой-нибудь критической(непредусмотренной) ситуации глядишь и спасет

* ()
[#] Ответ на: Re: Re: Re: Re: Fork проекта XMMS - Beep. от Sun-ch 24.10.2003 13:50:21  

Re: Re: Re: Re: Re: Fork проекта XMMS - Beep.

> Не разу не видал, чтобы ядро по собственной инициативе убивало
нормальные процессы.

Так ты много чего тогда не видел ни разу ;) OOM killer эта процедура
называется в ядре линукс. Работает как аварийная защита в случае
нехватки памяти. Позволяет машине продолжать работу даже если какой-то процесс внезапно стал проедать всю память и не был ограничен лимитами.
Своеобразный полицейский.

anonymous ()
[#] Ответ на: Re: Re: Fork проекта XMMS - Beep. от Sun-ch 24.10.2003 16:07:34  

Re: Re: Re: Fork проекта XMMS - Beep.

> в сервер нельзя ставить дешевое железо

Реклама дорого железа? ;) Дорогое == самое надежное? Отвечаешь?

> в сервер нельзя ставить ide диски

А эта чушь откуда взята? Raid на сервере ставится, если ты про
надежность. Только на большом количестве i/o операций выигрывает scsi,
если ты про это. На стандартном internet-сервере i/o не является
критическим местом.

anonymous ()
[#] Ответ на: :) от Sun-ch 24.10.2003 17:57:43  

Re: :)

> На сервере, скорость дисковой подсистемы гораздо важней
скорости процессора.

Чушь собачья. Что такое "сервер"? Средняя температура по больнице?
На интернет-сервере наиболее важную роль в производительности играет
память. Если есть sql-база данных, то еще и процессор. Диск на самом
последнем месте в списке факторов, определяющих скорость. Я говорю
исключительно из опыта, так много лет этим занимаюсь.

> IDE дает большую нагрузку на процессор;

Насколько она критична отзывается на общую производительность, ты мерял?
5% CPU? 10%? Что за сказки ты рассказываешь, и что у тебя за
процессор стоит на серверах? Наверное самый дорогой в ценах 1994 года ;)

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

RAID

> Обычно диски на домашних компьютерах меняют на новые в течении 2-3
лет.

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

anonymous ()
[#] Ответ на: :) от Sun-ch 24.10.2003 17:57:43  

Re: Re

Оно то все так, но кажется мне что самое главное это то, что SCSI диску во время
выполнения инструкций (например поиск) не блокируют SCSI шины. Для небольших серверков,
с одним или двумя дисками, без RAID или с RAID 0/1 это совершенно некритично.
С другой стороны старое говно, скажем типа SUN 20/110Mhz со старыми SCSI дисками, по 1/2ГБ отсасывает
по полной программе даже у P2-400, но с новыми IDEшниками. И по скорости ЦПУ кстати тоже.

* ()
[#] Ответ на: Re: от philon 24.10.2003 19:05:34  

Re: Re:

обычный веб-сервер на линуксе 256М свап 600М
свап обычно был заполнен максимум на ~20M
при аптайме где-то 150-200 дней(тот аптайм при котором я на это обращал внимание)

* ()
mumpster

swap

> фича называется "агрессивный свопинг"
точно
хорошо описана у Лукидиса и там он хвалит BSD системы (естественно в сравнении с текущим тогда SysV).
реально же что меня всегда здорово напрягало на фришке - отойдёшь чайку налить, вернёшься, оба-на! а твои баши уже в свопе.:(
хотя времена feature полезная - для каких-нибудь периодических процессов.
так что у каждой палки есть 2 конца.:)
между прочим, это хорошо - теперь и в линухе можно будет регулировать поведение 9во фришке раньше было через пересборку, щаз не знаю как).

***** ()
jackill

Re: Re: Re: Авторегулирование подкачки подсистемы виртуальной памяти

Вот-вот. Наверно, чтобы сильнее тормозило и чтобы под удар рутовую систему поставить.
Может, у него вообще все на одном разделе стоит, а работает под рутом only...

***** ()
Rost

Re: Re: Re: Авторегулирование подкачки подсистемы виртуальной памяти

да я для примера напиcал. и вобще какая пофиг разница на каком разделе делать? можешь хоть у себя в /home сделать или на рам диске...да хоть на nfs'e если тебе так больше нравится ;)

** ()
[#] Ответ на: Re: :) от anonymous 24.10.2003 19:13:57  

Re: Re: :)

Хотелось бы посмотреть oracle на ide дисках :)) Emc то иной раз посасывает на медленных дисках (7200rpm 180G>) а вы про ide :)). P.S A5200 rulez

anonymous ()

Re: Re: Re: Авторегулирование подкачки подсистемы виртуальной памяти

Так. Правильно ли я понял, что в линуксе можно включить этот самый "агрессивный" своп? Если да, то как? Поиск в Google linux+aggressive+swap ни к чему меня не привел.

anonymous ()
[#]  

Re: Авторегулирование подкачки подсистемы виртуальной памяти

2ALL:

Вы хотя бы серверы обсуждаете насчёт swap? А то мне как-то неприятно стало - у меня Workstation - 256 Mb, KDE3 - среда по умолчанию, swap отсутствует и всё достаточно неплохо работает - по крайней мере больше 128-ми редко занимается программами.Так что по-моему сейчас на рабочей станции совершенно не нужен раздел подкачки (сейчас стд. размер памяти - 512 метров). Есть ли аргументированные возражения? Очень было бы интересно узнать, если есть, то какие.

anonymous ()

Re: Критическая "дырка" в sendmail

А ты открой в гипме пару псдэшников которые весят 40-80М и я посмотрю как твоя система вывалится :)
Реально если отключить свап гипм пожирает все мозги и потом начинается какая-то затяжная дисковая операция

2Rost
Дык если "какая пофиг разница" то для этого существует специальный раздел, LinuxSwap называется :) Тебе что, жалко 200-600М? :)

* ()
[#] Ответ на: Re: Критическая "дырка" в sendmail от ttyS0 25.10.2003 1:02:51  

Re: Re: Критическая "дырка" в sendmail

В последних версиях ядра файловый своп работает почти так же быстро, как
своп на отдельном разделе. До этого _единственным_ преимуществом
своп-раздела перед своп-файлом была исключительно скорость работы.
В плане удобства своп-файл всегда был предпочтительнее, особенно на
домашем компе. Впрочем, и на сервере тоже! Своп-файлов можеть быть
несколько и на разных дисках. Их можно создавать/добавлять динамически
любого нужного размера и подключать в зависимости от расчетной нагрузки
тогда, когда они действительно нужны.

anonymous ()
[#]  

Re: Авторегулирование подкачки подсистемы виртуальной памяти

А куда делся в очередной раз обосравшийся ссаныч? Хотел ему реальными
тестами в евоную харю ткнуть с таблицами загрузки CPU для scsi/ide.

anonymous ()
[#]  

Re: Авторегулирование подкачки подсистемы виртуальной памяти

А вот вопрос на засыпку, если вставлено 4 гига мозгов, то нужен своп или нет?

# ()