LINUX.ORG.RU

Linux Kernel 2.4 needs SWAP = 2xRAM


0

0

Если Вы используете Linux kernel 2.4 и у Вас кое-что попадает в своп - Вам полезно будет узнать, что в новом кернеле стратегия работы со свопом изменилась, что портребует переосмысления понятия "достаточный размер свопа"

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

★★★★★

Проверено:

Итак, господа. У меня 256 метров мозгов (на рабочей станции), итого на моей тачке новый линукс требует 512 метров свопа по минимуму.... Что-то в этом есть порочное, не нравится мне все это ....

anonymous
()

Особенно учитывая, что диск меньше 20Gb мне купить не удалось (вчера ходил), 512Mb -- ужасная цифра. :)

Dronov
()

А вот я не понял, размер SWAP должен ли быть кратен RAM или 2*RAM?

BlackRabit
()

I like it. Next station is Microsoft Linux.Net with unlimited swap !!!

anonymous
()

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

Lucifer
()

Дык - когда у тя памяти <64, *2 имеет сенс, а выше можно один к одному. больше не нада, так как это ни на что заметно не повлияет. а вот SDRAM подкупить всегда не помешает :)

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

А тут про новый софт пишут и сразу народ обсудит траблы с кривыми зависимостями, руcицикацией и проч. а потом, проанализировав все это, уже можно либо 0) забить, 1) подождать пока пропатчат, 2) смело говорить cvsup -g -L 2 ~/ports-supfile && cd /usr/ports/<category>/<cool_prog> && make all install clean

а про линукс это я пошутил. нормальная система. но фришка лучше :)

anonymous
()

Не совсем корректная новость. То есть Rik van Riel действительно так сказал,
но лучше читать до конца.

Там в этой ветке есть нормальное объяснение:

You're not supposed to do anything, that's just a general rule of thumb.
If your system hardly ever swaps, use a swapfile, because speed doesn't
matter a lot anyway.

> Would it be better to make part of RAM a ramdisk and swap to
> that?

No, don't do that. Physical memory is better than swap. Swap is a backup
for physical memory, so that you can run programs that use more memory
than you have. You don't really *need* swap, linux works fine without.

К тому же Rik сказал, что "I plan on doing some code to reclaim swap
space when we run out".

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





foreigner
()

Сочиняйте своп равный RAM, а если припрет, имхо лучше потратиться на расширение RAM, чем на винты.

Dodo
()

А чего вы кричите? ;) Windows 2000 вон своп тоже делает как раз где-то в 2 раза больший RAM.

Eugeny_Balakhonov ★★
()

2Eugeny Balahonov: у w2k свап все же динамический...:) минимальная граница по умолчанию 1.5хRAM, максимальная - 3xRAM...:)
Вообщем меня тоже удивляют эти крики - такую рекомендацию на объем свопа (2xRAM) я помнится встречал в книжке типа "Администрирования UNIX", которая была издана еще в 80х годах...:)
Да, рекомендованный объем кластера на диске в 4-8Kb никого не удивляет? :)

Irsi
()

вообще то, это имеет смысл в случае, если при случаях типа "kernel panic" происходит сброс всей памяти на своп раздел для последующего анализа. на "серьезных" unix'ах так и делается. а вот зачем w2k 3xRAM - этого не знает никто...

anonymous
()

Об этом уже давно пишут

Об этом уже давно пишут. Я во всех доках читал, что делайте свап в 2 раза больше, чем кол-во RAM ... и делаю и не жужжу, хотя тоже не понимаю, у менязагрузка физической памяти 97%, а свапа 1%. Добавлял еще 64Мб памяти, картина таже - физичекая память 9х%, свап менее 10%. Странно. Рекомендованый же объем кластера в 4к объясняется во многих книжках тем, что при этом экономится дисковое пространство. Нужна хорошая скорость работы ставь объем кластера в 64к :)(а еще лучше в 256к, ту все зависит от кэша на HDD), но при этом дисковое пространство будет засоряться быстрее и диск будет использоваться не экономно.

Oscar
()

Зачем w2k такой swap

2 anonymous (*) (2001-03-16 05:51:17.0) Дук w2k жрет память так, что сколько ни дай - мало гуй на сервере - рулез форева (Ц) производители памяти ;)

anonymous
()

2 Oscar Imho ничего странного - ядро забивает под кэш столько, сколько есть. Если нужно для других целей, освобождает. Потому и до какого-то предела будет забивать всю память, но это не значит, что ее не хватает посмотри /proc/meminfo сколько памяти используется по дисковый кэш rGlory

anonymous
()

Господа, чтобы Продвинутые могли покупать дешевую память и
быстро работать, Остальные должны покупать много прамяти
(иначе она не станет дешевой) чтобы хоть как-то работать (иначе
не будут покупать). За ночь проверил на ядре 2.4.1 -- нагрузочный
тест прошел в конфигурации RAM=128M SWAP= 44M. Специально переметил
размер свопа, хотя остаток и не затерал.
Вообщем, лучше|рекомендуеться != необходимо.
А основные постребители памяти не сервера, а win2000|Gnome|Kde
(в порядке уменьшения требований) desktop'ы -- IMHO это очевидно субъективно и прошу не обижаться.

Что касается размера кластера в FS нужно использовать подходящие
типы FS -- никто не сравнивал быстродействие JFS vs ReiserFS?
Руки не доходят. На компиляции ACETAO (много и мелких и больших
файлов) ReiserFS vs ext2 выигрываетгде-то на 15-25% по скорости.
А кластер последнее средство, лучше в самом деле купить RAM
до упора мамы или для _очень_ богатых флэшку.

BlackRabit
()

а какой своп нужно делать при ram=1Gb ?

anonymous
()

Кстати да - правило x2 можно соблюдать до определенного кол-ва памяти, выше которого это делать нет смысла имхо. Одно дело 128Mb, когда загнать в свап еще 128 метров нет проблем и другое дело 1Gb памяти, в этом случае делать своп 2Gb смысла мало....

anonymous
()

Я живу в дефиците диска. Это ядрышко не по мне в любом случае - e2compr нет. Я его и не ставлю. Умещаюсь в разделе на 400М. Свом держу в другом, ядро 2.2.14 - e2compr патчнутое.

FoodTechnologist
()

Во всех книгах (ну, почти во всех :) пишут о свопе=RAMx2. Другое дело, что почти никогда весь этот своп не будет использован...

McGray ★★
()

Сообщение для всех.

Кто слыхал про COMPAQ testdrive, так вот основные парм. одного сервера.
Alpha EV67 x 4 CPU
Home Dir содержит 13620 DIR
[spy@spe144 /]$ cat /proc/meminfo
total: used: free: shared: buffers: cached:
Mem: 4242513920 177512448 4065001472 0 51183616 41336832
Swap: 6442418176 0 6442418176
MemTotal: 4143080 kB
MemFree: 3969728 kB
MemShared: 0 kB
Buffers: 49984 kB
Cached: 40368 kB
BigTotal: 2097152 kB
BigFree: 2055696 kB
SwapTotal: 6291424 kB
SwapFree: 6291424 kB

Spy
()

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

chuchelo
()

Ну че флейм развели? Руским же языком написано - эта формула для тех у кого своп _используется_

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

2BlackRabit: неа... рекоры по потреблению нынче принадлежат мазиле и наутилусу...:))
Господи, вопрос про размер кластера на диске был задан в шутку...:)

Irsi
()

Дай Бог памяти... :))
А если серьёзно, то всё довольно тривиально. Производительность любой
вычислительной системы всегда зависела от множества факторов. Из них
наиболее узким местом является скорость обмена информации, а если
быть более точным, то стоимость такого обмена. По этому применяют
пиромидоподобное распредиление ресурсов. На вершине в малом количестве
находятся наиболее производительные из них, а к низу производительность
падает, но количество ростёт. Так, скорость обмена между регистрами
процесора огромна, однако количество самих регистров мизерно. Ниже регистров,
в соответствии со всё той же пирамидой, распологается cache memory различного
уровня - L1, L2, L3... и затем обычная память - RAM. Однако кто сказал, что тут
наша пирамида заканчиваетя? HDD и есть её продолжение, более того не последнее.
При таком раскладе возникает несколько проблем, наиболее важными из которых
являются оптимальность и надёжность. Например не оптимально одновременно
работать на более чем двух, а иногда и одном уровне с идентичной информацией;
необходима надёжная синхронизация между уровнями иначе информация теряется;
для различной информации оптимален свой уровень в пирамиде. Очевидно, что
нет смысла использовать swap так же, как и обычный RAM, он предназначен
НЕ ДЛЯ ЭТОГО. Если swap используется слишком интенсивно, значит он используется
не правильно, ведь основное его достоинство не в скорости, а в объёме.
Для различных задачь необходимо различное количество swap-а, а для некоторых
из них swap вобще не не приемлем. Кроме того надо понимать, что выше описанная
пирамида есть мера вынужденая, и что по возможности её глубину следует сокращать.
IMHO горздо лучше добавить ещё RAM, чем резервировать медленое дисковое пространство,
которое большую часть времени будет простаивать. Опять же IMHO, на desktops swap
лучше рассматривать как аварийную память и потому сделать его частично или
полностью динамическим.

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

А шо ты хотел? One windoz way...

1) Размер файла подкачки равен удвоенному количеству памяти (Какой-то НТшный faq)

2) Для определения размера свапа загрузите все программы, необходимые Вам для работы и посмотрите размер свапа. Поставьте это значение в swappath (OS/2 faq)

Интересно, а отрастить свопик ужо можно?

OZ
()

Интересно, кто-нибудь реально работает при использовании свопа мег этак на 200? Я помню, когда у меня на одном сервере при памяти 64Мб система уходила в своп мег на 40, работать на нем страновилось невозможно. При нынешних ценах на DIMM проще поставить лишние 128Мб, чем мучаться со свопом. Из анализа разных систем могу сказать, что если это не какая-то супер 4-х камневая машина, то делать своп больше 150-200Мб смысла нет. Кто-нибудь меня переубедит? :о)

anonymous
()

2anonymous (*) (2001-03-16 18:29:21.0): запросто... на 4-х камневой супер машине делать такой своп смысла еще меньше (все 4 камня встанут)

hoopoe ★★
()

угу. я . ввиду бага в драйверах nVidia , последняя узает свап на всю катушку. при этом ничего не тормозит абсолютно. но если свап кончается , то линюх встает раком.

anonymous
()

PIII-450 / 128M RAM
Swap - 256M
Oracle8i + Java + Java IDE = 160M использования swap в некоторые моменты.
Смысл сообщения - в 2.4 данные в RAM и swap дублируются (могут дублироваться?), IMHO.
Это что-ж получается - disk cache будет уходить в swap??
Ну и какой в ЭТОМ смысл?
Поясните, если я не правильно понял.

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

> Интересно, кто-нибудь реально работает при использовании свопа мег этак на 200?
Прочитал я это, и посмотрел на qps
mem 128M avail 87M used
swap -- занято 256M из 512M !!! (сам поражен круглости цифр).
Ничего не тормозит, все работает.

Своп же жрет Нетскейп, из-под которого я в данный момент пишу.
Communicator 4.74, живет с 9 марта, виртуальный image 275132M
из коих на свопе сейчас 221838M. Сейчас допишу и придушу гада.

А был бы своп маленький -- Netscape давно сдох бы.

И X ы у меня 4.0, шибко память кушают. Пока не очень, всего 27.5M,
ну так они у меня только с 22 февраля живут (тогда как раз
меня на половину памяти раскрутили, перезагрузка была), а так я помню,
они поболее сотни M порой хотели.

Total своп у меня такой большой потому, что недавно половину памяти
у меня отняли, через пару месяцев отдадут -- че его менять-то при
диске в 41 Gb?.

Ядро 2.2.16...

anonymous
()

Sorry,
275132M:=275132K,
221838M:=221838K,
конечно. qps не дает, зараза, мышкой копировать.

Все, душу Нетскейп.

anonymous (*) (2001-03-16 19:44:32.0)

anonymous
()

Cache там никуда не уходит, и ничего там не дублируется. Просто, использование swap стало более агрессивным: если 2.2.x пыталось удержать все по максимуму в памяти, то 2.4.x пытается все по максимуму сбросить в swap. Как тут правильно заметили -- для сервера это, мнээээ, ну, не то, а вот для десктопной машинки -- самое оно. Столь любимое всеми чайниками "время старта" программ уменьшается -- почти всегда есть free memory.

Dronov
()

Вот бы ещё можно было при компиляции ядра выбрать режим работы со свапом - по типу 2.2.х или 2.4.х...

anonymous
()

Да не из-за того всё...Просто если бы Linux мог бы нормально (правильно) работать с РЕАЛЬНОЙ ПАМЯТЬЮ, то ни каких заморочек со свопом бы не было...Так как именно память должна использоваться по максимому, а не своп (так как - какого размера бы он не был, и какими бы возможностями не обладал тот на чём этот своп находиться (то есть чаще всего жесткий диск) - он всё равно ни как не обеспечет такую же скорость доступа как реальная память (да хоть Simm 1 Mb :-)). Вот с этого и надо начинать. Теперь конкретнее о Linux, у кого меньше 32 - 64 своп, 64 - 128, 128 - 128, 256 - 128 и т.д. Смысла нет делать своп более 128 мегабайт (так как реально будет забито максимум ~96 Mb), если конечно одновременно не грузить 10 Gimp'ов, 5 Netscape и ждать что должно быть 50% будет свободно...Все кто не согласен - пишите в форум (для RiDER'а), только прошу РЕАЛЬНО И ОСМЫСЛЕННО всё это обосновывать (то есть ответы - комментарии). P.S.: А если Linux только как сервер использовать (WWW, FTP и т.п. - с не большой нагрузкой на все это одновременно), то вообще 64 Mb памяти и 64 Mb своп - будет настолько достаточно... P.P.S.: Linux, Linux - FreeBSD (и жизни радуйся...) :-)))) (шутка, но есть доля правды...).

anonymous
()

Насколько я знаю FreeBSD уже давно умеет пересаживать неактивные процесы в swap, оставляя RAM лишь для активных. А как поступает Linux? Неужели по принципу: "есть RAM - пользуем RAM; стало нехватать RAM - пользуем swap"?

anonymous
()

Извините, а кто-нибудь пробовал сжимать RAM перед/вместо свопирования? Этакий дублМем...

Anonymous ★★★★★
()

2Anonymous (*) (2001-03-17 03:55:21.0): во как... даже с заглавной буквы...:)
Я не знаю, но почему-то эта идея на пару с виртуалкой нигде не прижилась... Впервые насколько мне известно это фичу реализовали на маках, но там при включении виртуалки, эту фичу надо было выключать... На писюках ее делали на win3.x, потом некоторе время пытались делать на 9х... но идея померла... Есть подозрение что сжатие пожирает столько ресурсов, что онисжирают практически всю потенциальную экономию оных...
Я в свое время пытался использовать ее... может тачка была слабая, может памяти много (эта фича эффективна только при очень малом объеме ОЗУ), но никакой пользы я от нее не заметил, на писюках по крайней мере. На маках, с отключенной виртуалкой прошу заметить, да ускоряла...

Irsi
()

Кстати, вопрос по теме. Как посмотреть есть у проги memory leaks или нет ?

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

Откуда я найду такие деньги? С аспирантской-то стипендии 1080 р? С другой стороны, у меня плата староватая, такой диск может не потянуть (SP97 c SIS5598). 2,6Gb тянет, 2 CD. Для нормальной системы хватает. Скорость тоже не низкая (P225MMX c (64-2)RAM)

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

2 anonymous (*) (2001-03-17 08:37:18.0):
>Если неошибаюсь Oracle8 под Linux вообще просит SWAP=4xRAM
Oracle просит столько памяти (RAM), минимум - сколько нужно SGA!
Т.е. если SGA ~ 64M свободно должно быть 64М
Если у тебя SGA уходит в swap - беги за памятью, и побыстрей
SWAP в этом случае нужен под юзеровские процессы/сессии
SGA зависит от многих факторов, размеры юзеровских процессов можно
в принципе рассчитать/оптимизировать

Так что Oracle8 под любой OS просит не SWAP=4xRAM, а RAMnew=4xRAMold :-))
Это относится не только к Oracle :)

Хотя если есть много юзеров (слабо активных например) то swap полезен -
их процессы будут попадать туда и не мешать другим -> опять же характерно
не только для Oracle

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

Не оффтопика ради, а правды для:

> 1) Размер файла подкачки равен удвоенному количеству памяти (Какой-
> то НТшный faq)

Гон. Рекомендуемый стартовый объем свопа на NT рекомендовано микрософтом как RAM+11мегабайт.
От себя. Нормально настроенная система не должна вылезать за минималку.

Dimentiy ★★
()

Слушайте, скажите пожалуйста, _нужен_ ли своп 2xRAM в 2.4, или нет.
По ссылке лишь ответ на вопрос, из которого не понятно, из-за
несоблюдения описанного требования резко падает производительность,
или вообще что-то страшное происходит? Что?

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

А то вот собрался апгрейдится, дык что теперь? :)

allter
()

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

bormotov ★★★☆
()

Ну вот... Прометают, пургу, прометают.... А у меня на FreeBSD, где swap 256 Мб у меня выставлен, никогда netscape не вылетает! :((((( А когда 128 было - было как у всех.

Shadow ★★★★★
()

2sandman "Так что Oracle8 под любой OS просит не SWAP=4xRAM, а RAMnew=4xRAMold :-))" Не надо обобщать пожалуйста. У меня Oracle8 на машине с 512Мб работает просто шустро и не грузит SWAP, а оперативки он съедает столько сколько позволишь, в моем случае 10-20% при старте (при отсутствии нагрузки) и до 50-60% при максимальных нагрузках. На другой стоит 8i он работает в тех же пределах +8-10% сверху. В отличие от MS SQL & IBM DB2 Oracle можно очень тонко настроить под систему (MEMORY, CPU, SWAP, HDD). Даже под скорость работы винчестера (время последовательного чтения и время поиска). Так что гнать не надо.

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