Linux за българи: Форуми

Linux секция за напреднали => Начини за увеличаване на бързодействието => Темата е започната от: clovenhoof в Sep 21, 2010, 17:04



Титла: Ползвате ли swap.
Публикувано от: clovenhoof в Sep 21, 2010, 17:04
Имам намерение да махна swap-a (при мен е на партишън). Мисля че няма да има проблеми с 2Г РАМ.
За хибернейт не ме е грижа, но подозирам, че пак мога да го подкарам.

Въпроса ми е, ползвате ли swap, било то файл или партишън?


Титла: Re: Ползвате ли swap.
Публикувано от: ROKO__ в Sep 21, 2010, 17:11
Имам намерение да махна swap-a (при мен е на партишън). Мисля че няма да има проблеми с 2Г РАМ.
За хибернейт не ме е грижа, но подозирам, че пак мога да го подкарам.

Въпроса ми е, ползвате ли swap, било то файл или партишън?

Ползваме си, но има отделни начини ако искаш да имаш бърз swap просто ползвай паметта на видеокартата като swap дял


Титла: Re: Ползвате ли swap.
Публикувано от: clovenhoof в Sep 21, 2010, 17:15
Тя мойта видео карта е вградена, пък и незнам как става това упражнение.
Защо въобще да ползвам swap, макар и бърз? Виртуалната памет - на РАМ-а.


Титла: Re: Ползвате ли swap.
Публикувано от: clovenhoof в Sep 21, 2010, 17:23
Сега се замислих, как така от видео паметта? Тя не е ли недостатъчна?


Титла: Re: Ползвате ли swap.
Публикувано от: n00b в Sep 21, 2010, 18:03
Как го правиш този трик?


Титла: Re: Ползвате ли swap.
Публикувано от: Acho в Sep 21, 2010, 18:39
@clovenhoof

А каква е целта ти ? Не си казал защо искаш да го махаш SWAP-а ?


Титла: Re: Ползвате ли swap.
Публикувано от: ROKO__ в Sep 21, 2010, 18:43
Как го правиш този трик?

...изтрито...

http://wiki.archlinux.org/index.php/Swap_on_video_ram
http://en.gentoo-wiki.com/wiki/Using_Graphics_Card_Memory_as_Swap
http://hardware.slashdot.org/article.pl?sid=07/10/11/1424247

Има чалъми и за останалите карти но не са публикувани, там въпроса е до пробване

Редактирано, съгласно т. 6 от Правилата на форума
bop_bop_mara


Титла: Re: Ползвате ли swap.
Публикувано от: cybercop в Sep 21, 2010, 18:46
винаги оставям поне по 2 GB swap дял на твърдият диск. Едва ли ще има проблеми да си работя и без swap но не ми се свидят тези 2 гигабайта.


Титла: Re: Ползвате ли swap.
Публикувано от: clovenhoof в Sep 21, 2010, 19:08
Цитат
@clovenhoof

А каква е целта ти ? Не си казал защо искаш да го махаш SWAP-а ?

Да чете страници от РАМ-а, а не от хард-а.
Защото съм с лаптоп и харда е относително бавен.


Титла: Re: Ползвате ли swap.
Публикувано от: cybercop в Sep 21, 2010, 19:47
Че кой ти каза, че чете страниците от Swap дяла на твърдият диск ?


Титла: Re: Ползвате ли swap.
Публикувано от: clovenhoof в Sep 21, 2010, 20:14
Това което знам е, че адресното пространство на 32 битово приложение е 4Г.
При това положение, ако имаш РАМ 512Мб, при необходимост се резервира памет от swap файла.


Титла: Re: Ползвате ли swap.
Публикувано от: clovenhoof в Sep 21, 2010, 20:23
Строго погледнато, те наистина се четат от РАМ-а. Ама айде да не хващаме за думата.
Идеята ми е че когато се swap-ват страници се пише на харда и после се чете от него.
Може би не се изразявам достатъчно добре,


Титла: Re: Ползвате ли swap.
Публикувано от: gat3way в Sep 21, 2010, 20:54
clovenhoof, парадоксално, в общият случай системата върви по-бързо когато имаш swap. Въпреки че дисковото I/O е бавно. Да, в определени случаи е по-добре да няма swap, но в общият случай е по-добре да има. Освен производителността, печелиш и известна сигурност ако някой процес реши да ти изразходва цялата налична памет, не че накрая няма да свършат пак фатално нещата, но шансът това да се случи е по-малък, а и производителността бавно и славно ще започне да се осира и обикновено в такъв случай човек взема мерки, пуска top и трепе лошите процеси. Без swap, смъртта идва бързо и неочаквано :)


Титла: Re: Ползвате ли swap.
Публикувано от: clovenhoof в Sep 21, 2010, 21:33
gat3way, мерси за инфото. Точно такъв категоричен и обоснован отговор търсех преди да преди да започна да действам.  [_]3


Титла: Re: Ползвате ли swap.
Публикувано от: Acho в Sep 21, 2010, 21:38
Никога не съм запускал система без SWAP, ама и аз така си мисля, като Gateway. Че няма да е по-добре или пък по-бързо.


Титла: Re: Ползвате ли swap.
Публикувано от: gat3way в Sep 21, 2010, 21:50
Обоснован не е, но все пак да се аргументирам. Както е добре известно, линукс има навика да тъпче в РАМ-та  съдържанието на дискови блокове, както и друга кеширана информация - съдържания на директории, рутинг и ARP таблици и още много неща. VM подсистемата е доста сложно животно и освен че търси баланс между това да изхвърля кешове от РАМ-та и да тъпче в swap-а страници, използвани от потребителски процеси, прави това по доста сложни алгоритми. Примерно за всяка страница памет, използвана от някой там процес се пази информация кога последно е достъпвана. Тези дето са ползвани най-отдавна имат най-голяма вероятност да влязат в swap-a. За кешираните блокове също се пази подобна информация. Разните големи глави дето разсъждават по тези въпроси са стигнали до извода че в доста случаи е по-оптимално страници памет да отиват в swap-а в сравнение с това кешове да се изхвърлят от паметта. Разбира се, това силно зависи от workload-а, но те си имат там статистически модели и тем подобни глупости. Ядрото няма как да е Ванга и да знае какво да прави, но следвайки тези модели се справя оптимално в по-голямата част от случаите. Това е и причината много често да се забелязват разни странни явления от сорта на системата има 8 гигабайта РАМ, които са предостатъчно, но все пак линукса е "влезнал" в swap-а с няколко мегабайта.

Махнеш ли swap-а отпада вероятността да се pageout-ват страници и вместо това кешове се изхвърлят от РАМ-та, за да се нагодят нуждите на процесите ти там. Ако често се налага да четеш разни малки файлове по няколко пъти (което е често срещано явление при десктоп системите), твърде вероятно няма да си много на далавера.

А иначе това е предмет на много спорове, но аз предпочитам да се доверявам на големите глави по тези въпроси.


Титла: Re: Ползвате ли swap.
Публикувано от: ivanatora в Sep 21, 2010, 22:20
http://kerneltrap.org/node/3000 - тук има интересни неща за четене
От личен опит мога да кажа че при стартиране на системата има заета 160MB памет (+/- кешовете естествено). Пускам Windows във VirtualBox, задал съм му да ползва 512MB памет. Системата има общо 2GB. След няколко минути са заети около 500+MB памет и 200+ swap. Единствено VirtualBox-а го прави това да започва да заема суап преди да е свършила паметта.
Друго наблюдение - няколко десктоп машини с дефаултни инсталации на Slackware (vm.swappiness не е пипан) - свърши ли паметта и започне ли да прехвърля страници от/към суап-а и производителността на машината рязко пада. "Рязко" - Х-а не може да смогне да си рендва прозорците, а харда не спира да дращи - ситуацията е такава за 5+ минути когато свършва търпението и следва ресет. Това не е точно очакваното поведение... ;)


Титла: Re: Ползвате ли swap.
Публикувано от: gat3way в Sep 21, 2010, 22:26
Чак пък ресет....трепеш процесите дето са се освинили, swapoff -a ; swapon -a и всичко си е както допреди малко :)

Но иначе ако системата започне редовно да влиза в суоп-а и с много, очевидно трябва да се купува още РАМ.


Титла: Re: Ползвате ли swap.
Публикувано от: morbid_viper в Sep 21, 2010, 23:32
напълно подкрепям gat3way за това… и аз съм си правил разни опити и мога да ти кажа, че махайки дяла за swap не печелиш нищо, освен някой мижав гигабайт от диска (така или иначе в момента дисковете са достатъчно големи за цената си)… разбира се губиш стабилност, но това зависи и от това за какво си ползваш машината. може да не ти е проблем да я рестартираш по всяко време, но за сървър, например,  това е не много желателно действие.

все пак направи си опит… спри използването на swap чрез swapoff -a за няколко дена и сам си направи наблюдението как ще се държи машината ти. може пък и да си по-щастлив така   :-)

Успех!


Титла: Re: Ползвате ли swap.
Публикувано от: gat3way в Sep 22, 2010, 00:06
За сървъри можеш да си оставиш memory overcommit-ването и да си сложиш подходящ oom score на важните процеси като init или sshd и в крайна сметка да си караш и без swap...ама това са чекиджийски изпълнения, от които няма особено много смисъл. Ако се стигне дотам или има някое много криво конфигурирано приложение като например java такова с издънен heap size, или наистина оперативната памет е недостатъчна.


Титла: Re: Ползвате ли swap.
Публикувано от: arda_kj в Sep 22, 2010, 02:05
Аз ползвам swap file (1GB) вместо отделен swap дял, така ако нещо се наложи лесно си преоразмерявам swap file, което е доста по-гъвкаво отколкото да отделям цял дял за swap, т.к. ако трябва нещо да се променя swap дяла е доста по-голяма хамалогия.
Също съм дал vm.swappiness=1, т.е. да ползва минимум swap, и за сега нямам проблеми. Имам две машини с Убунту, на които пускам едни симулации, и които даже нямат swap (мързеше ме да го правя) и за сега не са се прецаквали нещата.

Между другото да питам някой знае ли дали има команди, с които да разчистиш кешираната информация от RAM-та?


Титла: Re: Ползвате ли swap.
Публикувано от: gat3way в Sep 22, 2010, 02:33
Не съм убеден, че е добра идея да правиш swappiness-а на 1, ама ти си знаеш :)

Моментално изчистване на кешовете: echo 2> /proc/sys/vm/drop_caches

Евентуално може да останат известен брой dirty страници, които можеш да commit-неш върху диска като викнеш sync - така ще освободиш останалите до няколко мегабайта памет.

И все пак това е лоша идея - освен ако не е за разни тестове, не виждам смисъл от това упражнение.


Титла: Re: Ползвате ли swap.
Публикувано от: Naka в Sep 22, 2010, 12:05
Един път, много отдавна, поради моя грешка в конфигурирането си бях забравил да си включа swap-a. работих така близо половин година без да се усетя. Нямаше никави проблеми.


Титла: Re: Ползвате ли swap.
Публикувано от: arda_kj в Sep 22, 2010, 12:14
Не съм убеден, че е добра идея да правиш swappiness-а на 1, ама ти си знаеш :)

Моментално изчистване на кешовете: echo 2> /proc/sys/vm/drop_caches

Евентуално може да останат известен брой dirty страници, които можеш да commit-неш върху диска като викнеш sync - така ще освободиш останалите до няколко мегабайта памет.

И все пак това е лоша идея - освен ако не е за разни тестове, не виждам смисъл от това упражнение.

Благодаря за отговора за изчистването на кеша, това е по-скоро с тестови цели.

Иначе за vm.swappiness=1, ами то на машината, на която е това има 2GB RAM и едва ли може да стане някакъв проблем (това не е сървър), но ми стане интересно защо мяташ, че не е добре swappiness да е 1 :).


Титла: Re: Ползвате ли swap.
Публикувано от: clovenhoof в Sep 22, 2010, 12:54
Аз мисля, че РАМ-а е наличен за да използва според обема му.
Свободен РАМ = пропилян РАМ.


Титла: Re: Ползвате ли swap.
Публикувано от: b2l в Sep 22, 2010, 12:54
Аз мисля, че РАМ-а е наличен за да използва според обема му.
Свободен РАМ = пропилян РАМ.

 :D :D :D :D :D :D :D :D


Титла: Re: Ползвате ли swap.
Публикувано от: clovenhoof в Sep 22, 2010, 13:21
Вики-то ми го говори  8)

Цитат
Q) Why is Arch using all my RAM? 2G used while I'm just staring at my desktop?

A) Essentially, unused RAM is wasted RAM.
Many new users notice how the Linux kernel handles memory differently than they are used to. Since accessing data in RAM is much faster than from disk, the kernel caches recently accessed data in memory. The cached data is only cleared when the system begins to run out of unused memory and new data still needs to be loaded.
Perhaps the most common culprit of this confusion is the free command:
Command: free -m
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1009        741        267          0        104        359
-/+ buffers/cache:        278        731     <-- NOTE THIS!
Swap:         1537          0       1537
It is important to note the -/+ buffers/cache: line -- a representation of the amount of memory that is actually in "active use" and the amount of "available" memory, rather than "unused".
In the above example, a laptop with 1G of total RAM appears to be using 741M of it, with naught but a few idling terminals and web browser open! However, upon examining the emphasized line, see that only 278M of it is in "active use", and in fact 731M is "available" for new data. Apparently, 104M of that "used" memory contains buffered data and 359M contains cached data, both of which can be cleared away if needed. Only 267M of the total is truly "free" of the burden of data storage.
The result of all this? Performance!
See this wonderful article if your curiosity has been piqued!


Титла: Re: Ползвате ли swap.
Публикувано от: arda_kj в Sep 23, 2010, 01:08
Прочетох малко инфо за swap в документацията на Убунту, оказва се, че има малка разлика ако използваш swap file вместо swap дял. Разликата е, че Убунтуту не поддържа хибернация ако се ползва swap file, което може да е неудобно. Чак сега разбирам защо скапаната хибернация на Убунтуту не ми работи.
Значи все пак има някакви разлики, ама на който не му трябва хибернация спокойно може да мине с swap file.