LINUX.ORG.RU

Если ты это спрашиваешь, то разработчикам ядра лучше знать. Так нафига ты туда лезешь?

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

Прости, куда? У меня еще 10 гектар свободной оперативы, а оно уже свопится. Нафиг мне такое счастье? К тому же если им и правда лучше знать какая у меня конфа и когда свопится, почему бы им не захардкорить swappiness в ядро?

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

почему бы им не захардкорить swappiness в ядро

Потому, что уже, дефолтное значние == 60. Трогать его не нужно.

еще 10 гектар свободной оперативы

В линукс вся ram занимается кэшем.

а оно уже свопится

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

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

Пару раз не хватило - очень большие изображения в GIMP обрабатывал. А царьswap не настоящий. Это zram.

Suntechnic ★★★★★
() автор топика

во-первых, не все что в свопе, реально записано в своп, оно может туда например только отображаться но при этом реально ничего не писалось. во-вторых, система могла посчитать горячий кеш более приоритетным чем то что уплыло в своп. в-третьих, сам кеш мог уйти в своп! вопрос тонкий, зависит от того что и как у тебя использовало память, как используется slabcache и какова фрагментация памяти, что заmmap()ленно, что с hugepages и directio и так далее. я бы не волновался по этому поводу, и тормозов из-за этого ты тоже не должен был быть ощущать. а на цифры забей.

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

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

val-amart ★★★★★
()

vm.swappiness установлен в 20

И разве не при 20%+ заполненной памяти начинается в свап писаться?

roman77 ★★★★★
()
Ответ на: комментарий от val-amart

Да поняша же которая штеуды роняла.

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

Не. Наоборот. Если меньше 20 остается, тогда свопится.

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от val-amart

Дык zram - он и так в оперативке же. А вообще спасибо, успокоил. Правда мне не совсем ясно что значит «оно может туда например только отображаться но при этом реально ничего не писалось»

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от val-amart

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

делить на ноль нельзя. Вот Ъ способ управления свопом:


$ free
             total       used       free     shared    buffers     cached
Mem:       1012696     998456      14240          0         40     639888
-/+ buffers/cache:     358528     654168
Swap:            0          0          0

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

Прости, куда? У меня еще 10 гектар свободной оперативы, а оно уже свопится.

У тебя мог быть пик потребления, не отображенный сейчас.

почему бы им не захардкорить swappiness в ядро?

Если что, то swappinness == 0 - это не отключение свопа.

tailgunner ★★★★★
()
Ответ на: комментарий от val-amart

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

Крайне странное поведение для swap системы. Другой вопрос что тут zram

TEX ★★★
()
Ответ на: комментарий от val-amart

создай маленький своп на десятов мегабайт прямо в оперативке, остальной отключи, своппинесс в 0.

Вообще то swap единственная более менее работающая защита от oom-killer-а

TEX ★★★
()

zram на 4 гига, всего 16..получается рамы без свопа 12..поэтому когда осталось ~20% свободной рамы, то лишнее сбросилось в свап...ИМХО

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

Вообще то swap единственная более менее работающая защита от oom-killer-а

вообще-то OOM приходит не тогда когда хочет, а когда у тебя уже аварийная ситуация.

emulek
()

Не надо swap в zram — учитывая что своп тебе нужен крайне редко, лучше запустить swapspace (dynamic swap space manager) или аналогичный демон, который создаст своп по-мере надобности и удалит его когда надобность исчезнет.

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

делить на ноль нельзя. Вот Ъ способ управления свопом:

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

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

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

я это прекрасно знаю. Но в случае флешки на 8Гб, на которой ВСЁ, места для свопа тупо нет. Даже для маленького, в половину памяти (1015Мб у меня памяти).

Ты лучше расскажи, нахрена нужен «своп в 10Мб в оперативке», и что он даёт?

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

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

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

Серьёзный админ не может аргументировать за отключение свопа, тк так себя зашкварит и перестанет получать на доширак. Всем серьёзным админам известно, что «своп нужен».

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

читни-ка лучше сорсов подсистемы vm

Для кода «читнуть» не достаточно.

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

Серьёзный админ не может аргументировать за отключение свопа

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

тк так себя зашкварит и перестанет получать на доширак. Всем серьёзным админам известно, что «своп нужен».

а он действительно нужен. Но без этих велосипедов с квадратными колёсами диаметром пять килограмм, как выдумывает тут ТС.

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

Как, серьёзный сваппинг == фэйл, производительность и задержки падают ниже плинтуса. А небольшой сваппинг == отключение свапа с добавленной планкой памяти.

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

А небольшой сваппинг == отключение свапа

это с какого перепугу так? Ты меня ни с кем не путаешь?

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

тебе тут же рассказывали, см. выше.

вот этот пост: Управление swap (комментарий) и через один за ним. val-amart в данной теме все правильно сказал, и мне нечего добавить. Разве чутка потроллить, вбросив «Ъ способ».

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

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

Я все правильно пересказал? Ничего странного не замечаешь?

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

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

это не я рекомендовал. Вот с этого места я и перестал соглашаться с val-amart (да и сам он высказался в том духе, что «если совсем уж не в моготу», т.ч. я даже не знаю, насколько серьёзна такая «рекомендация»).

emulek
()

root #: swapoff

нафиг тебе конфиг править? ты понимаешь что он проверяется только перед запуском или перезапуском?

Free-Boatman
()
Ответ на: комментарий от emulek

вообще-то OOM приходит не тогда когда хочет, а когда у тебя уже аварийная ситуация.

Не аварийная, а штатная. Ты еще скажи что выделение памяти - это аварийная ситуация. LOL

Так вот выделение свопа побольше, единственный вменяемый способ отсрочить нехватку памяти и бесчинства OOM. Будешь спорить ?

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

вообще-то OOM приходит не тогда когда хочет, а когда у тебя уже аварийная ситуация.

Не аварийная, а штатная.

нехватка физической памяти == авария. Ибо код часто пишут из расчёта того, что памяти всегда хватит (на эту задачу).

Так вот выделение свопа побольше, единственный вменяемый способ отсрочить нехватку памяти и бесчинства OOM. Будешь спорить ?

попытаюсь объяснить: ООМ не просто так наступает. Это результат одного или другого:

  1. ты запустил глючное приложение с утечками, которое жрёт память гигами, и забывает её отдавать.
  2. ты запустил нормальное приложение, но подсунул ему слишком большой объём данных. Например попытался открыть gimp'ом картинку 100500х100500.

Это разные ситуации, их не нужно мешать. Это два типа аварии. В первом случае надо править кривой говнокод (у меня это самый частый вариант, и говнокод — мой), а во втором случае ты просто не можешь обрабатывать данную информацию данной железкой.

Наличие свопа безусловно помогает в обоих ситуациях. Актуальное ядро в первом случае практически со 100% гарантией прибивает глючный говнокод, а не что-то другое. Во втором случае gimp хоть и с тормозами, но таки открывает проблемную картинку, а если она даже в своп не лезет, то прибивает именно gimp, а не что-то ещё.

Однако. Лечить надо болезнь, а не симптомы. Своп это конечно хорошо, но например на нетбуке я не могу позволить себе использовать данную фичу(IRL OOM часто ошибается, и убивает FireFox, а не глючный говнокод. Ну что поделать?). На десктопах своп есть, что конечно очень хорошо, ибо позволяет одновременно работать за этим десктопом жене, и мне тестить говнокод. На серверах конечно своп тоже есть, это очевидно.

Таким образом, своп нужен. Но нужен в виде специального раздела на SSD/HDD. И он не должен использоваться в штатном режиме. На SSD он полезен как область, в которую пользователь не может ничего записать, а значит она всегда свободна. Полезно для разгрузки SSD.

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

нахрена нужен «своп в 10Мб в оперативке», и что он даёт?

MM использует своп в том числе при дефрагментации памяти. это происходит естественно и неявно, но если нет свопдевайса — не происходит вообще, что может привести к отказам в page_alloc() хотя вроде бы память должна быть. особенно это можно наблюдать при использовании hugepages и high memory pressure. еще когда-то кто-то из mm-девелоперов проводил тесты с выключенным свопом че-то там было медленнее, подробностей не помню, давно это было. не уверен на 100%, но вероятно что своп (а точнее swap-backed page-cache) до сих пор много где неявно используется в mm, ни про какие попытки избавиться от такого поведения я не слышал. более того, слышал про план смержить эти подсистемы, чтобы mm могла явно руководитть свопом, в частности было бы очень полезно для zcache.

val-amart ★★★★★
()
Ответ на: комментарий от TEX

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

нет, да и да.

Крайне странное поведение для swap системы.

на самом деле нет, если разобраться.

Другой вопрос что тут zram

ну и что? zram — это не zcache и даже не zswap, он _после_ подситемы свопа, просто как блочное устройство в памяти.

val-amart ★★★★★
()
Ответ на: комментарий от Suntechnic

см. выше. кстати, твой zram вполне подходит как «своп в памяти» про который я говорил. можешь его сделать меньше, если тебе достаточно ОЗУ.

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

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

нет, да и да.

Крайне странное поведение для swap системы.

на самом деле нет, если разобраться.

тут ППКС.

emulek
()
Ответ на: комментарий от val-amart

Сделал еще позавчера. Перегружаться лень, а как без перезагрузки поменять - лень узнавать. Буду ждать пока накопится новое ядро, новые дрова для невидии...

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

а, да.

тогда так:

[code]
swapoff /dev/zram0
echo 1 > /sys/block/zram0/reset
echo 32M > /sys/block/zram0/disksize
swapon /dev/zram0
[/code]

только это самое — это имеет смысл только если ты на 100% уверен что тебе хватает RAM и в своп ты не уйдешь. иначе — привет OOMKiller.

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

Я до 2Гб уменьшил ;) Обычно мне хватает 4-6Гб. под всё. Чуть сложнее на ноуте. Там всего 4Гб и zram там 2Гб соответственно. Но там я от силы сайтики верстаю, так что самая страшная нагрузка это 3 браузера и редактор. Редко виртуалка.

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

Не особенно пугает, хотя он создает некоторую нагрузку на проц. Вопрос был в том почему оно начало вообще свопится учитывая что половина рамы еще свободна. В общих чертах понял.

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от val-amart

на самом деле нет, если разобраться.

Может быть тогда просветите о тайном смысле вытеснения кеша в swap ? :)

ну и что? zram — это не zcache и даже не zswap, он _после_ подситемы свопа, просто как блочное устройство в памяти.

Насколько я понимаю, он должен как то лочить себя, дабы избежать рекурсивной выгрузки zram в zram. И соответственно в каком именно строки free -m его видно - неясно.

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