WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Buffrar Linux minne som inte används? (https://www.wn.se/forum/showthread.php?t=1041056)

olsserik 2010-03-19 19:55

Buffrar Linux minne som inte används?
 
Hej,
Är det någon som har koll på om Linux (Ubuntu Hardy i detta fall) buffrar minne som inte används så att ledigt minne som visas via

cat /proc/meminfo

via SSH är i princip 0?

Jag kör inget på servern nu, inte ens en lokal MySQL, ändå finns inget ledigt utrymme enligt kommandot ovan.

Läste i någon forumtråd att så kunde vara fallet, man skulle köra "top" och kolla, men det funkar inte för då blir det fel:

top: error while loading shared libraries: libtermcap.so.2:

Någon som har kollen?

Perben 2010-03-19 20:41

Det stämmer bra det, är en uttalad praxis att allt minne ska användas. Om du vill tömma så kan man kan skrota cachade inodes och/eller page cache genom echo [1,2] > /proc/sys/drop_cache... kanske finns nåt lättare sätt nu för tiden.

olsserik 2010-03-19 20:49

Ok, vad bra!
Lite udda bara att mätningen är så att minnet "ska" slå i taket.
Inget bra kommando kolla minnesknas på alltså...

olsserik 2010-03-19 23:13

Hmm, inte så haj på detta...än...vi får se.
Men nu ligger den på 100% och swap går in + meddelande från kontrollpanelen om "Resource shortage - slmmemorylimit"

Är detta som det ska vara?
Isåfall lirar ju Viirtuozzo och Linux inte så bra ihop på denna punkt...?!

Jonas 2010-03-20 17:35

Vad kör du för processer?
Vilka processer är det som tar minne?

Kod:

ps aux|sort -nr +3|grep -v USER|head -5
Så visar du Top5 lista på minnesslukarna (Högst överst)

olsserik 2010-03-20 19:18

Tackar, så här ser det ut:

www-data 23669 0.0 888.2 230716 9096 ? S 16:35 0:00 /usr/sbin/apache2 -k
www-data 1932 0.0 421.8 162644 4320 ? S 21:59 0:00 /usr/sbin/apache2 -k
www-data 1739 0.0 888.2 230716 9096 ? S 18:33 0:00 /usr/sbin/apache2 -k
www-data 1698 0.0 888.2 230716 9096 ? S 18:33 0:00 /usr/sbin/apache2 -k
syslog 13626 0.0 72.2 12284 740 ? S Mar 19 0:00 /sbin/syslogd -u sysl

Har aldrig kört det kommandot förut och kan inte heller tyda ut vad som är vad eller om det är något skumt, vad tycker ni?

Jonas 2010-03-20 21:28

Ang. din "output"

Den läses så här:

Kod:

USER PID %CPU %MEM VSZ RSS TTY STAT START
TIME COMMAND

Alltså:
Kod:

www-data är "USER"
23669 är "PID"
"0.0" är % av CPU
888.2 är % av minne
VSZ är virtual memory size
RSS är "resident set size"
TTY är tty fönster (bara om man har en terminal igång)
STAT är process status.
START är starttid för processen
TIME processortid
COMMAND är kommandot

Mer står i "man-pages".

Apache slukar allt ditt minne verkar det som. (888.2 % AV MINNET?????)

Det du kan göra är att inaktivera moduler som du inte använder.

a2enmod & a2dismod för att aktivera samt inaktivera moduler.
Du måste ladda om / starta om apache mellan varje kommando

/etc/init.d/apache2 reload eller restart.

När det gäller modulerna så är det lite trial & error för att komma fram till vad som behöver och inte behövs.

crazzy 2010-03-21 03:37

Bra kommando för att kolla vad som används vs inte används och hur mycket som är cachat:
Kod:

[  0]root@tux:pts/0\~ free -m
                          total      used      free    shared    buffers    cached
Mem:                    2014      1762        252          0        195        928
-/+ buffers/cache:                637      1377
Swap:                    255          0        255

Ett annat tips kan vara att kolla på alternativa webbserver-programvaror.
Kanske nginx eller lighttpd. Dem är mycket snällare med resurser. :)

olsserik 2010-03-21 09:00

Tack Crazzy, ska kolla detta.
Nginx är jag lite sugen på. Problemet är att man är inkörd på Apache, lite svårt att behålla lönsamheten om man ska sätta sig in i en ny webserver tyvärr.

Men just denna server beter sig konstigt, något är allvarligt galet. Virtuozzo panel ger 500 internal hela tiden.

olsserik 2010-03-21 09:01

Tack Jonas,
Det verkar ju vara helt galet detta.
Vad ligger ni på själva i procent på de största slukarna?

emilv 2010-03-22 10:43

Om du kör Apache med mod_php så lämnas minnet inte tillbaka när skriptet körs färdigt. Det innebär att du kan ha flera processer som ätit mycket minne vid en enstaka körning och sedan sitter och håller på detta minne trots att det inte behövs. Försök ta reda på vilka skript du ahr som äter mycket minne och se om du kan förbättra dessa (vanligt är till exempel om man gör bildbehandling med GD eller läser in stora filer med file_get_contents).

Börja med att köra PHP genom FastCGI, eller döda processer som äter för mycket minne (Apache startar nya efterhand som de behövs).

I Crazzys kommando är det den tredje radens om är intressant, "-/+ buffers/cache". Den säger hur mycket minne som faktiskt används av program och är ledigt att användas. Linux cachar filer från hårddisken i minnet för att minska belastningen på disken och snabba upp responstiden för filer som du läser ofta. Utrymmet som används av diskcachen kan användas omedelbart av program så fort det behövs (med resultat att antalet filer i cachen minskar).

olsserik 2010-03-22 12:24

Hej och tack för alla svar.
Hela servern är nu ominstallerad och nu pendlar minnesanvändningen mellan 150 - 200MB. Inga fel heller än så länge.
Det kanske var den lätta vägen att gå, men den bästa för stunden för mig.

Jonas 2010-03-22 14:25

Citat:

Ursprungligen postat av olsserik (Inlägg 20347538)
Hej och tack för alla svar.
Hela servern är nu ominstallerad och nu pendlar minnesanvändningen mellan 150 - 200MB. Inga fel heller än så länge.
Det kanske var den lätta vägen att gå, men den bästa för stunden för mig.

Satsa på att köra FastCGI med Nginx.
http://wiki.nginx.org/NginxConfigura...HP_via_FastCGI

Jag har inte behövt så mycket support via forum för Nginx eftersom jag tycker det mesta jag behövt funnits i deras Wiki, så jag kan inte svara på hur den är.

Men Nginx har som _MAX_ käkat 2.5MB i ram, och maskinen har _INTE_ swappat en enda gång!

akelagercrantz 2010-03-22 19:57

Citat:

Ursprungligen postat av Jonas (Inlägg 20347554)
Satsa på att köra FastCGI med Nginx.
http://wiki.nginx.org/NginxConfigura...HP_via_FastCGI

Jag har inte behövt så mycket support via forum för Nginx eftersom jag tycker det mesta jag behövt funnits i deras Wiki, så jag kan inte svara på hur den är.

Men Nginx har som _MAX_ käkat 2.5MB i ram, och maskinen har _INTE_ swappat en enda gång!

nginx med php-fpm, så slipper du spawn-fcgi och får tillgång till process management och annat smått och gott.

http://www.google.com/search?q=nginx+php-fpm

Jonas 2010-03-22 22:03

Citat:

Ursprungligen postat av alager (Inlägg 20347613)
nginx med php-fpm, så slipper du spawn-fcgi och får tillgång till process management och annat smått och gott.

http://www.google.com/search?q=nginx+php-fpm

Så länge PHP-FPM ligger i alpha/beta versioner så är spawn-fcgi `the way to go`.


Alla tider är GMT +2. Klockan är nu 07:24.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson