Allokáció linux, rendszergazda blog

Egyszer régen egy messzi faluban éltünk tengerentúli szerverekre linuksyachih a CentOS ÁLLAMI pár tucat. Kernel - tiszta Emerald (2.6.18-194.17.1.el5). Egyszer régen nem bánt, csavarok zörgött annyira szórakoztató fények kacsintott. És velük együtt élni, hogy a falu fejlesztő erőszakos és a többi admin jó ember. A fejlesztő az összes trükkös dolog java feltalált és admin mézes sör ivás, bajuszát csöpög, csöpögő a billentyűzeten.

És ha egyszer a fejlesztő az az ötlete támadt kis szőke fejét - az adott kiszolgálók mindenféle csodálatos dokumentumok külföldi formátumok tiszta html, hogy átalakítsa, és nem csak be és ezen keresztül az OpenOffice. Tervezett - történik. És hirtelen egy éjszakán csodák történnek - bejutott a szokás kiszolgáló egyenként, bánt, hogy úgy működik, ahogy a kapott megállt a konzol írta panaszosan, hogy azt mondják, nem kell őket többé Silushka heroikus, mert a memória operativnyya minden szabad ki, és még a szobával gyilkos esetében nem segít (mert bár és megpróbálja végrehajtani a folyamatok memória mohó, de ritkán kap, amire szüksége van). És ez nem most jött ki, valamint a „swap mentes: 0KB”. És akkor csak mágikus újraindítás segített. Szomorú, ha az admin, mert a méz-sör ital több már nem volt idő, az összes szerver esett csak emelkedik. Igen, nincs semmi - nem lesz ugyanaz pisAlom a nyírfakéreg írásban html, openoffic-edik egyszer mind praktikusabb volt.

Amint az adminisztrátor volt egy álmom. Úgy tűnt neki, szent Patreg arany fényben és beszél emberi hangon: „Már memória kiosztás politika, ősidők óta a Linux kernel alapértelmezés szerint elfogadott, hanem arról, hogy Tedd vm.overcommit_memory = 2 helyett az alapértelmezett 0, talán megáll a memória végén.” Figyelj admin Board, vette a reggel bash csoda, és úgy tett, ahogy mondták neki egy álom Patreg:

echo 2> / proc / sys / vm / overcommit_memory

És akkor csoda történt - a szerver leállt bánatában ősz ismét szerzett többet, mint korábban. Admin örvendeztek, és úgy döntött, bölcsesség bányászott tabletta faragni, hogy a fiai és unokái könnyebb megbirkózni a nyugtalan Linux és még őrzik a /etc/sysctl.conf állomány készült:

Mintegy vm.overcommit_ratio = 100 rendszergazda maga felismerték, mert az alapértelmezett 50 túl gyakran java „A memória nem” kapott. És azóta elérte mellett a bölcsesség korunk:

Van egy atommag két fő paraméter felelős a memória overcommit:

  • vm.overcommit_memory - felelős a stratégia overcommit.
  • vm.overcommit_ratio - töltöttségi szintje (százalék) overcommit-a

Stratégiák ilyen (lásd kernel forrás fájl mm / mmap.c.):

  • 0 - OVERCOMMIT_GUESS - heurisztikus megközelítés memóriafoglalási. Ez tűnik ki annyi memóriát, amennyit akar a folyamatot. De csere / res kap csak azokat az oldalakat, amelyek e folyamat által használt.
  • 1 - OVERCOMMIT_ALWAYS - overcommit memória mindig ott van. Használja a jobb nagyon ívelt alkalmazások és kész ezzel semmit.
  • 2 - OVERCOMMIT_NEVER - nem overcommit. Ebben az esetben a megengedett mennyiségű memória válik cserélni + ram * overcommit_ratio / 100.

Az alapértelmezett OVERCOMMIT_GUESS stratégia és vm.overcommit_ratio van értéke 50%, csak abban az esetben OVERCOMMIT_NEVER. A rendszer fenntartja mintegy 3% -a memória root felhasználó folyamatokat.

Kapcsolódó megjegyzések:

Kapcsolódó cikkek