Portál AbcLinuxu, 13. května 2025 03:47

Dotaz: Správa swap

Jerryh avatar 17.5.2015 15:25 Jerryh
Správa swap
Přečteno: 788×
Odpovědět | Admin

Ahoj,

Možná se s tímto problémem nedá nic dělat, ale nějak mi nedochází, proč swap takto funguje. Když jsou moje RAM (4GB) moc zatížené, PC využije swap. Problém je, že po uvolnění RAM tyhle data zůstanou na swapu, aplikace jsou potom pomalejší, protože nejsou všechna data na RAM. Po zapnutí a vypnutí swap je vše zase ok a PC se přestane sekat...Potřebuji nějak vyřešit, aby se při uvolnění RAM přestal používat swap...Můžu si leda vypnout swap natrvalo, ale chtěl bych radši najít jiné řešení. Díky

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.5.2015 15:48 manasekp | skóre: 29 | blog: manasekp | Brno
Rozbalit Rozbalit vše Re: Správa swap
Odpovědět | | Sbalit | Link | Blokovat | Admin
http://www.abclinuxu.cz/poradna/linux/show/396306
BIOKOMP | Cas od casu se pokousim nekoho srazit k zemi abych se tam nevalel sam.
Jendа avatar 17.5.2015 16:20 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Správa swap
Odpovědět | | Sbalit | Link | Blokovat | Admin
Myslím že nejde. Napsal bych si skript který by třeba každých pár sekund zkontroloval volnou RAM a swap a pokud je RAM volná a swap plný, tak udělá swapoff (případně jen na chvíli, tím dostaneš pár stránek do RAM), swapon.
17.5.2015 17:20 pavele
Rozbalit Rozbalit vše Re: Správa swap
Jestli chceš skript, tady je:
#!/bin/bash

# How remove swap and caches from RAM

# To free swap:
#swapoff -a
#swapon -a

# To free pagecache:
# echo 1 > /proc/sys/vm/drop_caches
# To free dentries and inodes:
# echo 2 > /proc/sys/vm/drop_caches
# To free pagecache, dentries and inodes:
# echo 3 > /proc/sys/vm/drop_caches

err="not enough RAM to write swap back, nothing done"
mem=`free|grep Mem:|awk '{print $4}'`
swap=`free|grep Swap:|awk '{print $3}'`
test $mem -lt $swap && echo -e $err && exit 1
swapoff -a
swapon -a
sync
echo 3 >/proc/sys/vm/drop_caches
echo 0 >/proc/sys/vm/drop_caches
exit 0
17.5.2015 19:19 trubicoid
Rozbalit Rozbalit vše Re: Správa swap
to zahozeni cache zpusobi imho vetsi propad vykonu, nez cteni ze swapu

asi je jedno, jestli tam bude drop_caches, swapoff asi taky zahodi cache
Jendа avatar 17.5.2015 23:27 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Správa swap
swapoff zahodí tolik cache aby se tam vešla data ze swapu.
17.5.2015 23:30 Trubicoid2
Rozbalit Rozbalit vše Re: Správa swap
Ano, což může být celá cache. Ale kdyby něco zbylo, tak to dorazí to nesmyslný drop_cache
pepe_ avatar 18.5.2015 12:51 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: Správa swap
echo 0 >/proc/sys/vm/drop_caches

bash: echo: chyba zápisu: Nepřípustný argument

pokud je 1 nebo větší chybu nehlásí
18.5.2015 21:20 trubicoid
Rozbalit Rozbalit vše Re: Správa swap
tam muze byt jen 1, 2, nebo 3, ale to se pouziva pri benchmarku, aby nebyly data v cache, pri normalnim provozu to temer vzdy vykon zhorsi
18.5.2015 22:15 pavele
Rozbalit Rozbalit vše Re: Správa swap

root@HPPC:~# cat /proc/sys/vm/drop_caches
0

18.5.2015 22:42 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Správa swap
Pokud jste tam ještě nic nezapsal, tak vám čtení ukáže nulu, jinak to bude poslední zapsaná hodnota. Pro zápis jsou ale přípustné jen hodnoty 1-4 (od jádra 3.15, předtím 1-3).
19.5.2015 06:27 trubicoid
Rozbalit Rozbalit vše Re: Správa swap
a ta nova 4 dela co?
19.5.2015 06:55 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Správa swap
Nebylo by jednodušší se místo ptaní podívat do dokumentace?
19.5.2015 13:29 Trubicoid2
Rozbalit Rozbalit vše Re: Správa swap
Tak určitěé :) takže to nedělá nic, jen vypne hlášky do dmesg
18.5.2015 22:34 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Správa swap
Pochopitelně - pokud stránka není dirty, není co získat tím, že v page cache nebude, totéž se dá říct o dentry nebo inode cache. Teoreticky by se samozřejmě dal zkonstruovat test, kde by prázdná page (dentry, inode) cache byla výhodou, ale z praktického hlediska to smysl nemá.
18.5.2015 22:45 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Správa swap
Když už chcete odhadovat, jestli máte dost místa (místo abyste to nechal na swapoff), tak byste měl množství volné paměti brát z druhého řádku výstupu free, ne z prvního.
17.5.2015 19:20 Delaunay | skóre: 17 | blog:
Rozbalit Rozbalit vše Re: Správa swap
Odpovědět | | Sbalit | Link | Blokovat | Admin
Lze přeskupit procesy pomocí cgroups a nastavit tendenci ke swapování pomocí volby memory.swappiness. Buď pro vybrané a důležité procesy nastavit nízké hodnoty této volby, anebo pro procesy přechodně využívající více virtuální paměti nastavit vyšší hodnoty.
18.5.2015 18:14 ZAH | skóre: 43 | blog: ZAH
Rozbalit Rozbalit vše Re: Správa swap
Připojuji se k tomuto řešení . Před lety jsem zápolil se stejným problémem a jediné se ukázalo jako rozumné řešení. I když je to trchu test jaký máš přehled o aplikacích, které provozuješ.
17.5.2015 19:50 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Správa swap
Odpovědět | | Sbalit | Link | Blokovat | Admin
Aplikácie čo sa prebúdzajú zo swapu sú síce pomalšie, ale jednorázovo. Len počas doby kým nezmiznú zo swapu aby sa objavili v ram. Tak to funguje v Linuxe.

Pokiaľ máš iný operačný systém, tak na ňom môže fungovať správa pamäte inak, a systém môže byť spomalovaný zrkadlením obsahu ram do swapu pre potreby nsa.
18.5.2015 12:46 Sten
Rozbalit Rozbalit vše Re: Správa swap
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud si pamatuju, tak se to v Linuxu řešilo někdy kolem roku 2007. Jmenuje se to swap prefetch, ale nikdy se to nedostalo do hlavní větve jádra. Problém je, že jakékoliv větší zásahy do toho, jak funguje správa paměti, mají tendence způsobit velké výkonnostní problémy při následující aktualizaci v nějaké obří firmě, která vývoj Linuxu platí. Proto se vývojáři do nich moc nehrnou. Výkonnostní přínos je přitom mizivý, aplikace stejně ta data načtou ve chvíli, kdy je budou potřebovat (navíc kód aplikací se nenačte, protože ten je na disku, ne ve swapu), a pak už to poběží zase rychle.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.