webForumDet fria alternativet

För lite RAM?

14 svar · 452 visningar · startad av Maja

MajaMedlem sedan mars 2000344 inlägg
#1

För snart ett år sen skaffade jag en virtuell server hos Tera-Byte (efter tips här på forumet). Jag har varit helnöjd och det har varit kul att själv kunna administrera lite hemifrån.

Men, de senaste månaderna har den börjat kännas lite seg. Kör jag "top" ser jag att den swappar ibland. Jag har pratat med T-B och de säger att allt verkar OK och att de 256MB RAM jag har borde räcka till min site. Det är väl egentligen det jag skulle vilja få en åsikt om från någon oberoende part.

OS är Linux och den har som sagt 256MB RAM. Sidan har ca 3000 unika besökare per dag och det enda aktiva script jag har är ett vykortsscript, men det har jag haft hela tiden och det skickas inte fler kort nu än för ett år sen. I övrigt är sidan "statisk", men det är många nerladdningar eftersom det är en grafiksida. När servern swappar är ofta 6-7 httpd-processer aktiva samtidigt, med flera minuters datortid på var och en. Är det nån mer info ni behöver så fråga gärna.

Tyvärr går det inte att installera mer minne. Om det är så att 256MB inte räcker vet jag inte vad jag ska ta mig till. Har ni några tips? Jag behöver _minst_ 50GB bandbredd, 2GB hårddisk (om loggfiler och sånt räknas in) och som sagt mer minne än 256MB och det får inte vara Windows. Jag kan inte betala mer än ca 1000:- i månaden (nu betalar jag $69). Kvalitet är dock viktigare än priset (inom vissa gränser förstås :-)).

Jag har lärt mig rätt mycket om Linux under året, men jag känner mig inte mogen för en "oövervakad" DS och en övervakad verkar hemskt dyrt.

GunnarDMedlem sedan juni 20014 290 inlägg
#2

256MByte borde räcka för din webserver med den beskrivningen du ger.

Normalt är det ett antal httpd processer igång.

I top kan du se vilka processer som tar CPU just nu, är det också httpd?

Hur lång upptid är det på maskinen, kan vara något program med minnesläcka, testa att starta om maskinen?

MajaMedlem sedan mars 2000344 inlägg
#3

Hej Gunnar,

Tack för svaret! Skönt att du tror att minnet ska räcka. Nu kommer jag ihåg att när jag kollade under "högtrafik" i vintras var bara hälften av minnet i bruk. Nu i juli är förstås besökarantalet mindre och det tyder ju starkt på att något är galet. Belastningen borde ju vara lägre - inte högre än då.

Normalt är det ett antal httpd processer igång.

Jo, ibland så många som 16st. Jag menade bara att 6-7 är aktiva exakt samtidigt, så att de ligger högst i listan då jag kör top.

Andra grejer som (ibland) ligger högt i listan är (minst ett par är ju jag själv):

top
init
syslogd
klogd
crond
sshd2
vknetmand
sendmail
safe_mysqld
mysqld
python

Verkar det normalt?

Upptiden är 36 dagar. Ska testa starta om den ikväll, men jag tycker det bore synas i top om det är nån process som löpt amok?

Tack än en gång!

GunnarDMedlem sedan juni 20014 290 inlägg
#4

safe_mysqld
mysqld
python

Ser att du förutom det du räknade up själv även har igång MySQL, och ett python program.

MySQL kan ta mycket minne beroende på hur du utnyttjar det och hur minnes-parametrarna är satta. Men det borde ändå räcka med 256MB om inte parametrarna är satta helt galet.

I filen /etc/my.cnf (som är configurations filen för MySQL) finns följande variabler, vad är dom satta till?
(ex. taget från en maskin med 1GB ram

set-variable    = key_buffer=256M
set-variable    = max_allowed_packet=1M
set-variable    = table_cache=256
set-variable    = sort_buffer=1M
set-variable    = record_buffer=1M
set-variable    = myisam_sort_buffer_size=64M
MajaMedlem sedan mars 2000344 inlägg
#5

MySQL vet jag inte varför den är igång. Funderade faktiskt över det eftersom jag inte använder det. Just nu är faktiskt 3 mysqld aktiva, men de använder bara 0.6% av minnet vardera. Har inga databaser och sånt. Samma med Python (flera som tar 3.3% vardera). Det vet jag inte ens vad det är? Trodde det var nåt som hör ihop med operativet?

Tänkte starta om servern nu, så får vi se om det blir nån skillnad.

Kanske ska nämna att det inte är några som helst problem med CPU (belastningen). Inte ens då den swappar ligger värdena på högre än 0.05 och för de mesta ligger de på 0.00 - 0.03.

MajaMedlem sedan mars 2000344 inlägg
#6

Nyss swappade den igen och jag kom på att ta ett "screenshot" som kan ses här:
http://www.graphicgarden.nu/top.gif

Som synes många aktiva httpd-processer och strax innan var det 10 eller 11! Undrar om det inte är de som är boven ändå?

GunnarDMedlem sedan juni 20014 290 inlägg
#7

Är lite tveksam till om det verkligen är httpd som gör att den swappar.

Du kan prova att slå på apache's status information, titta i httpd.conf och avkommentera dessa rader och sätt in adressen till din maskin som du "surfar" ifrån i "Allow from ....":

#<Location /server-status>
#    SetHandler server-status
#    Order deny,allow
#    Deny from all
#    Allow from .your_domain.com
#</Location>

Stara sedan om apache.

nu skall du kunna gå till http://din-domain.com/server-status då skall den visa vad apache håller på med just då.

MajaMedlem sedan mars 2000344 inlägg
#8

Jag startade om den igår och säger bara wow, vilken skillnad! Även då det var som flest besökare inne under kvällen var det ca 130MB RAM ledigt.

Känner mig minst sagt fånig som inte testat detta innan, men jag hade bara startat om (via) Ensim innan och det gjorde ingen skillnad, så jag trodde inte att det skulle hjälpa. Dessutom kändes det minst sagt nervöst att göra reboot via SSH, men det gick bra och otroligt snabbt. På 10 sekunder var allt igång igen och nu är den som sagt pigg och glad igen, och jag med. :-D

Tack för hjälpen!

R Ser att du skrev ett inlägg samtidigt som jag. :-) Ledsen att jag inte var snabbare och besparade dig besväret, men jag är iallafall väldigt tacksam!

RobbanMedlem sedan dec. 19992 555 inlägg
#9

Reagerade över att jag tyckte dina httpd-processer tog relativt mycket minne, så jag kollade vad som körs på Apache-servern.

Server: Apache/1.3.14 (Unix) mod_perl/1.24 PHP/4.0.6 FrontPage/4.0.4.3 mod_ssl/2.7.1 OpenSSL/0.9.6

(Du bör kontakta ditt webbhotell och be att de uppgraderar Apache till senaste version, eftersom det nyligen hittats allvarliga säkerhetshål - en liten parantes).

Ser att servern kör mod_perl. Är det något som används? För även om mod_perl är mycket kraftfullt så kan modulen ofta sluka rätt mycket minne (256 MB kan ätas upp fort när det gäller mod_perl, beroende på hur modulen används). Om du inte använder mod_perl eller FrontPage vore det bättre (ur minnessynpunkt) att Apache inte hade dessa moduler inkompilerade.

Även mod_ssl kräver en del minne, så om du aldrig kommer behöva köra SSL (krypterad webbtrafik) så behövs egentligen inte den modulen heller. Samma gäller PHP om det inte används (har f.ö. nyligen hittats ett säkerhetshål i PHP, igen).

Varför Python är igång vet jag inte. Python är ett skriptspråk på liknande sätt som Perl. Kan det månne vara så att ocwhttpd är en Python-applikation? Vad är ocwhttpd för process?

Kan naturligtvis vara så att_mod_perl, mod_ssl, mod_php, Python och ocwhttpd behöver vara igång om dessa komponenter t.ex. är del i ett administrationsgränssnitt. Vet jag ju ingenting om. Men om inte så är fallet så borde du kunna spara en hel del minne genom att optimera vad som körs på servern.

MajaMedlem sedan mars 2000344 inlägg
#10

Hej Robban,

Tack för det utförliga svaret! Nu funkar servern som sagt bara fint. Otroligt vilken skillnad det blev. De senaste dagarna har jag haft uppåt 3500 besökare per dag och ändå används bara hälften av minnet.

Så du kunde kolla mina serverspecifikationer? Hur gör man det på någon annans server?

(Du bör kontakta ditt webbhotell och be att de uppgraderar Apache till senaste version, eftersom det nyligen hittats allvarliga säkerhetshål - en liten parantes).

Aj då. Tack för tipset!

Ser att servern kör mod_perl. Är det något som används?

Jo, vykortskriptet är gjort i Perl. Men det skickas så få kort, så jag tror inte det är något att bry sig om.

Om du inte använder mod_perl eller FrontPage

Frontpage har jag stängt av och likadant med PHP, så de borde inte göra av med minne, eller gör de det ändå bara för att de överhuvudtaget finns installerade? Det var sånt som fanns då jag flyttade in.

Kan det månne vara så att ocwhttpd är en Python-applikation? Vad är ocwhttpd för process?

Ja, det funderade jag också på. Ska försöka ta reda på det.

spangoMedlem sedan juni 20008 205 inlägg
#11

Maja skrev:

Så du kunde kolla mina serverspecifikationer? Hur gör man det på någon annans server?

Servern skickar lite information om sig själv när man begär en sida, det är en del av HTTP-protokollet, och man kan kolla det på exempelvis http://www.svanstrom.nu/main.php?view=httpget

Schassens HTTP-get skrev:

HTTP/1.1 200 OK
Date: Wed, 31 Jul 2002 22:06:37 GMT
Server: Apache/1.3.14 (Unix) mod_perl/1.24 PHP/4.0.6 FrontPage/4.0.4.3 mod_ssl/2.7.1 OpenSSL/0.9.6
Content-Type: text/html

Vad gäller Perl, om det skickas få kort kan det funka ändå om du stänger av mod_perl, genom att använda Perl som externt program. Egentligen är det en väldigt dålig idé, men skulle det vara så att mod_perl används väldigt lite och det käkar en hemsk massa minne kan det kanske vara värt att fimpa. Då behöver inte Perl vara igång hela tiden, så det kan du vinna på, men då måste det startas separat för varje Perlscript vilket kan sega ner ganska mycket om det är många som använder de dynamiska sidorna.

MajaMedlem sedan mars 2000344 inlägg
#12

Hej spango,

Av en slump upptäckte jag att du har skickat ett svar i den här tråden. (Jag fick inget mail om det.)

Tack för infon! Det var intressant. Nu när jag äntligen pluggat färdigt och pysslar med grafiken på heltid kanske jag ska ta mig tid att lära mig mer om servrar, Linux m.m.

Jag tror inte jag törs ändra det där med Perl, för det händer nån enstaka dag (typ Alla Hjärtans Dag, jul och sådär) att det skickas uppåt 400 kort. Om det behövs lägger jag nog hellre ner den avdelningen. Det är så grymt trist att göra kort. :-)

Dessutom funkar servern som sagt utmärkt nu, men i tisdags segade den ner sig lite igen och det hjälpte inte att starta om den. Lite roligare kändes det nästa dag då jag kollade statistiken och upptäckte att nästan 6500 personer hälsat på under gårdagen! Inte undra på att den var lite seg. (Jag fick senare reda på att sidan blivit "Website of the day" på nån välbesökt site. Kul!) Fortfarande har jag ca 4000 besökare per dag och det hanterar servern utan problem.

GunnarDMedlem sedan juni 20014 290 inlägg
#13

Lite föklaring til vad mod_perl gör:

Utan mod_perl så laddas perltolken varje gång man anropar sina perlskript, vilket kan slöa ner svarstiderna lite vid hög belastning, 400 anrop per dag är inte hög belastning. det man tjänar på är att apache tar mindre minne.

Med mod_perl så laddas perltolken när man starta apache, detta gör att httpd tar upp extra minne om man inte kör mycket perl program. Men man slipper det tiden det tar att ladda in perl tolken.

Jag är också osäker på om cgi-program direkt kan utnyttja mod_perl utan att skrivas om på något sätt, ex. hur vet apache att mitt cgi-script är ett perl-skript?

RobbanMedlem sedan dec. 19992 555 inlägg
#14

Med mod_perl så laddas perltolken när man starta apache, detta gör att httpd tar upp extra minne ...

Och inte bara en gång, utan en gång för varje httpd-process (operativet kan troligen dela lite på det minnet - osäker på det). Och dessutom alla skript man kör. Det är detta som gör mod_perl så oerhört snabbt och kraftfullt. Har använt det själv ett antal gånger med tunga applikationer som ändå, tack vare mod_perl, går oerhört snabbt. Men nackdelen är som sagt att mod_perl kräver minne. Mycket minne. :)

Jag är också osäker på om cgi-program direkt kan utnyttja mod_perl utan att skrivas om på något sätt, ex. hur vet apache att mitt cgi-script är ett perl-skript?

Det anger man i sin httpd.conf. Vanliga sätt är att ha en speciellt katalog som skripten måste ligga i. Eller så går man på filändelse. Även skripten i sig kan behöva skrivas om lite för att fungera med mod_perl.

Maja: Tror nog du skulle tjäna på att inte ha igång mod_perl. Perl-skript kan du köra ändå på vanligt sätt (CGI). Det går inte lika snabbt som med mod_perl, men du sparar som sagt en del minne. För att stänga av mod_perl så kan det räcka med att kommentera bort några rader i httpd.conf, eller så måste Apache komplieras om helt. Allt beroende på hur mod_perl är installerad (som dynamisk eller statisk modul till Apache).

MajaMedlem sedan mars 2000344 inlägg
#15

Tack för förklaringarna! Här finns mycket att lära, helt klart. Jag ska som sagt ta mig tid att sätta mig in i det bättre framöver - både för att det är intressant och nyttigt. Hittills har jag mest bara lärt mig det jag måste för att det ska fungera. :-)

Jag ska kolla upp det där med mod_perl. Det verkar som att jag skulle tjäna på att stänga av det. Om jag fattar din beskrivning rätt så används den inte ens i nuläget. Jag har en särskild katalog för CGI och scripten är gjorda för det. (Men nu kan jag vara helt i det blå. :-D). Hoppas det är så, för problemet är att jag inte bör ändra i konfig-filerna, för då gäller inte längre supporten och det vore ju inte så bra...

135 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)