Autor Zpráva
Fisir
Profil
Nadpis je snad všeříkající. Jen uvedu, že běží na CentOS společně s Dovecotem a fronta emailů je prázdná. Nedá se to nějak omezit?
Davex
Profil
Fisir:
Je normální, že si Postfix vezme víc než 10 MB RAM?
Na nudícím se serveru, který výjimečně přijme či odešle e-mail, bych to považoval za normální.

Nedá se to nějak omezit?
V podstatě to nějak jde za cenu omezení funkčnosti, ale při dnešních cenách pamětí je docela kuriozita šetřit paměť v řádu megabajtů.
DJ Miky
Profil
„Je normální, že si Postfix vezme víc než 10 MB RAM?“

Ano, je. I když je fronta e-mailů prázdná, musí všechny procesy běžet a tím i držet vše v paměti. 10 MB není nijak přehnaný klidový stav s ohledem na to, co všechno musí běžet. Např. na mém VPS si Postfix s prázdnou frontou naalokoval necelých 11 MB (5 procesů, každý s ± 2 MB).


Davex:
při dnešních cenách pamětí je docela kuriozita šetřit paměť v řádu megabajtů.

Na malých (a tudíž obvykle levných) virtuálních serverech to smysl dává. I s méně než 512 MB RAM se dá slušně kouzlit. Pravda, u jednoho serveru se to nevyplatí kvůli množství času stráveného optimalizací, ale s roustoucími požadavky a počtem serverů se může taková optimalizace několikanásobně vrátit.

A pokud člověk potřebuje hostovat vlastní nenáročnou aplikaci, kterou nelze rozběhnout na sdíleném hostingu, nemusí utrácet tisíce korun ročně za dedikovaný (nebo velký virtuální) server, ale stačí mu miniaturní VPS s 64 MB RAM za stokorunu ročně.
Fisir
Profil
Vyřešil jsem to tím, že jsem omezil počet procesů na dva. Předpokládám, že by to nemělo nijak vadit, protože Postfix pouze odesílá (a to jednou za uherský rok).

Reaguji na Davexe:
při dnešních cenách pamětí je docela kuriozita šetřit paměť v řádu megabajtů
U mých 128 MB RAM se počítá opravdu každý megabajt. Zase tolik tam toho neběží, abych potřeboval víc.
Davex
Profil
DJ Miky:
Na malých (a tudíž obvykle levných) virtuálních serverech to smysl dává.
Ušetřením pár megabajtů na jednom programu se moc paměti neuvolní.

nemusí utrácet tisíce korun ročně za dedikovaný (nebo velký virtuální) server, ale stačí mu miniaturní VPS s 64 MB RAM za stokorunu ročně.
Tam se ale bude muset šetřit paměť daleko víc.

1) Místo 64 bitových programů použít 32 bitové (nebo rovnou nainstalovat 32 bitovou distribuci)
2) vypnout nepoužívané démony
3) openssh nahradit za dropbear
4) rsyslog nahradit za syslogd
5) postfix nahradit za exim4
6) apache nahradit za nginx
7) v php zapnout minimum modulů
8) nepoužívat MySQL nebo používat jen engine MyISAM a vypnout podporu InnoDB + zmenšit buffery a cache v konfiguraci

Fisir:
U mých 128 MB RAM se počítá opravdu každý megabajt. Zase tolik tam toho neběží, abych potřeboval víc.
No, je fakt, že kdysi jsme na Z80 museli vystačit s 64 kB paměti a taky to šlapalo. Jenom to tenkrát neumělo tolik věcí co dnes.
DJ Miky
Profil
Davex:
Ušetřením pár megabajtů na jednom programu se moc paměti neuvolní.
Tomu argumentu nerozumím. Uvolní se pár megabajtů, což je na malém serveru dost.

1) Místo 64 bitových programů použít 32 bitové (nebo rovnou nainstalovat 32 bitovou distribuci)
Rozdíl mezi 32- a 64bitovými systémy je minimální, většinou se to nevyplatí ani na malých serverech.

2) vypnout nepoužívané démony
To je základní věc, kterou by měl člověk dělat na každém serveru.

3) … 7)
A čemu to vadí? Když mi na méně náročných variantách nechybí žádná funkce, nevidím jediný důvod je nepoužívat. Konkrétně nasazením Nginx místo Apache (nebo předsazením před něj pro servírování statických souborů) můžu při stejném HW obsloužit více požadavků. To je špatně?
Zapnout v PHP jen využívané moduly souvisí s bodem 2 výše.

8) nepoužívat MySQL nebo používat jen engine MyISAM a vypnout podporu InnoDB + zmenšit buffery a cache v konfiguraci
Pokud ušetřím dost paměti optimalizací ostatních služeb, můžu třeba konfiguraci MySQL nechat tak, jak je. Ale opět, pokud zmenšení velikosti bufferů a cache není spojeno s degradací výkonu (např. při malém provozu a malé velikosti databází), proč by to měl být problém?

No, je fakt, že kdysi jsme na Z80 museli vystačit s 64 kB paměti a taky to šlapalo. Jenom to tenkrát neumělo tolik věcí co dnes.
To je zavádějící. Když mi pro naprosto stejnou funkčnost stačí server s 512 MB RAM, proč bych měl platit za 4 GB RAM? Optimalizace serveru/aplikací mě stojí méně, než rozdíl mezi provozem optimalizovaného a neoptimalizovaného serveru. A v případě potřeby více serverů se ušetřená částka dále násobí. Navíc v případě více serverů můžu optimalizaci obvykle jednoduše automatizovat, tudíž mám další servery optimalizované téměř zadarmo. Jednoduchá matematika.
Davex
Profil
DJ Miky:
Tomu argumentu nerozumím. Uvolní se pár megabajtů, což je na malém serveru dost.
Ano, na tom Postfixu se uvolní kolik? 4 nebo 5 MB, to jsou na 128 RAM úžasné 4 %. Když se tam dá Exim, tak se ušetří dvakrát tolik.

ad 1) „Rozdíl mezi 32- a 64bitovými systémy je minimální, většinou se to nevyplatí ani na malých serverech.
64 bitová binárka zabere v paměti o 50 % více místa, což může pár megabajtů ušetřit, i když se většina kódu sdílí mezi procesy. Na 128 MB RAM bych 64 bitový systém nedával.

ad 6) „Konkrétně nasazením Nginx místo Apache (nebo předsazením před něj pro servírování statických souborů) můžu při stejném HW obsloužit více požadavků. To je špatně?
To je samozřejmě dobře. Nginx má mnohem menší paměťové nároky než Apache.

ad 8) „Pokud ušetřím dost paměti optimalizací ostatních služeb, můžu třeba konfiguraci MySQL nechat tak, jak je.
Ano, záleží na konkrétních požadavcích. Ale nemá cenu šetřit 4 % paměti na Postfixu, když MySQL zabere třeba 80 % a nezbude žádná volná.

Když mi pro naprosto stejnou funkčnost stačí server s 512 MB RAM, proč bych měl platit za 4 GB RAM?
Server s 512 MB RAM jsem viděl naposledy asi před 10 lety. Nedávej prosím rovnítko mezi virtuální server a server.

Jestli opravdu dokážeš smrsknout použitou paměť 4 GB na 512 MB se zachováním totožné funkčnosti, tak to blahopřeji a jen tiše závidím. To bych neuměl.
DJ Miky
Profil
Když se tam dá Exim, tak se ušetří dvakrát tolik.
To nepopírám, s Eximem zkušenost nemám.

64 bitová binárka zabere v paměti o 50 % více místa, což může pár megabajtů ušetřit, i když se většina kódu sdílí mezi procesy. Na 128 MB RAM bych 64 bitový systém nedával.
O 50 % více místa zaberou ukazatele, ale kód nejsou jen ukazatele. Před časem jsem měřil rozdíl mezi 32bit a 64bit na OpenVZ s Debianem 6 a paměťové nároky pro základní binárky (sshd, bash, xinetd, apache2, sendmail, saslauthd apod.) byly na 64bitové verzi o necelých 20 % vyšší. To je relativně hodně, ale v absolutních číslech třeba 2–3 MB. Při zátěži, kdy se do paměti natahá spousta dat, se rozdíl výrazně zmenší.

Ale nemá cenu šetřit 4 % paměti na Postfixu, když MySQL zabere třeba 80 % a nezbude žádná volná.
Když ušetřím na Postfixu a nepocítím vůbec žádný rozdíl (díky minimálnímu provozu) a MySQL i o trochu více paměti pomůže k rychlejšímu odbavení dotazů, tak to podle mě cenu má.

Server s 512 MB RAM jsem viděl naposledy asi před 10 lety. Nedávej prosím rovnítko mezi virtuální server a server.
Rovnítko jsem nikde nedával. Zda se jedná o virtuální nebo fyzický server, je v tomto případě úplně jedno. I na fyzickém serveru s 384 GB paměti dává smysl optimalizovat paměťovou náročnost aplikací. Zvláště když pak pro odbavení provozu stačí jen tři servery místo čtyř. A ani v dnešní době není problém narazit na fyzický server s 512 MB paměti, stejně jako lze pořídit virtuální server s desítkami GB paměti. Virtuální server neznamená malý server.

Jestli opravdu dokážeš smrsknout použitou paměť 4 GB na 512 MB se zachováním totožné funkčnosti, tak to blahopřeji a jen tiše závidím. To bych neuměl.
To byla nadsázka. Smysl nebyl v konkrétních číslech. Místo toho jsem narážel na pochybnosti o smyslu optimalizací na malém virtuálním serveru. Desítky procent se v menších případech ušetřit dají. Na druhou stranu i ušetření byť jen několika procent ve větším měřítku dává slušnou sumu peněz za provoz.
Fisir
Profil
Reaguji na Davexe:
Ale nemá cenu šetřit 4 % paměti na Postfixu, když MySQL zabere třeba 80 % a nezbude žádná volná.
Jak u koho. Když já pošlu tak pět emailů za týden, zatímco MySQL obslouží denně desítky požadavků, je lepší šetřit na Postfixu. Ale to opravdu záleží na tom, co se víc využívá.
Davex
Profil
DJ Miky:
Před časem jsem měřil rozdíl mezi 32bit a 64bit na OpenVZ s Debianem 6 a paměťové nároky pro základní binárky (sshd, bash, xinetd, apache2, sendmail, saslauthd apod.) byly na 64bitové verzi o necelých 20 % vyšší.
Zrovna OpenVZ se moc nedá použít pro srovnání, protože to nejsou plnohodnotné virtuální stroje, ale jen kontejnery v rámci jednoho běžícího operačního systému, takže se hodně společného kódu sdílí mezi kontejnery. Ale to je vlastně jedno. Když někdo vystačí s 64 nebo 128 MB a stačí mu uvolnit jen pár megabajtů, tak ať si šetří kde chce.

I na fyzickém serveru s 384 GB paměti dává smysl optimalizovat paměťovou náročnost aplikací.
Asi ano, ale tam se bude pamětí šetřit nejspíš úplně jinak než na 64 MB RAM.
Fisir
Profil
Nasměruje mě někdo na návod, jak nahradit rsyslog syslogd, jak tu zmínil Davex? Nemůžu to nikde najít.
Davex
Profil
V CentOSu 6 není syslogd v repozitářích, ale v Debianu by bývalo stačilo jen:
# apt-get remove --purge rsyslog
# apt-get install inetutils-syslogd

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: