'ola all,
belefutottam. rohadt systemd. na, összeszedem magam, a lényeg: úgy tűnik, hogy az apache, ill. néha a mysqld alól elfogynak a szabad filedescriptorok. legalábbis a jelenségek, amik az utóbbi időben történnek, erre utalnak (intenzív fájlkezeléssel járó háttérfolyamatok és intenzív sql-t használó háttérfolyamatok sajnos párhuzamosan futnak, és öklöznek egymással).
ugyebár mindenki első blikkre fut a sysctl.conf felé, hogy megnézze, hogy áll az fs.file-max. jól áll. (512000 descriptor hely. van memória, nem téma.)
aztán ha már az etc-ben jár, berúgja a megfelelő ajtót (nálam security/), és megnézi a limits.conf állapotát. némileg meglepett, mert pár installal ezelőtt hasonló okok miatt felemeltem a nofiles-t, hogy ehhez képest most factory állapot van, de biztos én felejtettem el, amikor kialvatlan szemekkel drukkoltam a gép mellett, hogy "bútolj, bútolj te rohadék". no, itt is rendbe raktam a dolgokat...
* - nofile 8192
de akárhogy léptem be, a nofiles még mindig csak 2048 volt. aztán olvastam, hogy hö, a * nem érvényes a rootra, arra külön kell, tessék, megcsináltam.
root - nofile 8192
rootként belépve az uname -a máris megfelelő, 8192-es nofiles értéket mutat. de ha mezei userként lépek be, akkor biza 2048 marad az. és ugyebár ez a PAMon kerül beállításra (ha eddig nem lett volna világos, fedora 15-ös linuxról van szó). node mi a helyzet a systemd által indított cuccokkal? mert az jó, hogy mezei userként akár forkbomb-pozitívra is beállíthatnám a rendszert, de nekem ugyebár még mindig az apache és a mysqld alá kéne betolnom több szabad descriptort.
nem tudom, hogy most akkor nekem újra kéne indítanom a szervert (nem lenne vicces, per pillanat több ezer user van bent), vagy elég csak a httpd.service-t és a mysqld.service-t újrabuggantanom, illetve hogy egyáltalán a service-eknek van-e valami közük a limits.conf-hoz. mert több helyen azt látom, hogy nem, azt máshol, a systemd-ben. csakhogy.
a systemd írói vicces emberek, de egy ilyen ilyen röhejesen egyszerű kérdésre nem tudtak még egyértelmű cikket írni. persze, a systemd a cgroups-ot használja resource limitingre, de ott meg van egy blkio, és puszipá. és akkor mégis hol a búbánatos repcefingban adjam meg a nofiles-t vagy azzal valami analógot?
szóval emberek, prittiplízvitcserriontáp, valaki árulja el már nekem, systemd-ben hogy tudnám rábírni az apache-ot és a mysqld-t, hogy több párhuzamosan nyitott filedescriptorral zúzhassák az adatokat.
- 3033 megtekintés
Hozzászólások
Egy apache meg egy mysql reboot sosem art, de mondjuk valami olyan idoszakban, amikor nincs nagy forgalom - egy LAMP szerveren ez ugyanis egyenerteku a reboottal user oldalrol.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
na igen, de attól vajon várható-e, hogy az új ulimittel indítja el a daemonokat? merthogy amit eddig olvastam a systemd-ről, az alapján az nagy ívben kakkantja le a limits.conf-ot, én pedig ugyebár csak azt változtattam eddig, mert csak azt tudom.
- A hozzászóláshoz be kell jelentkezni
Meg egy nagy büdös lóf...! Mi ez a hülyeség? (Jó, oké, MySQL-ről van szó, de na...)
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
A nofiles beallitas addig nem jut ervenyre, amig egy total uj processz nem szuletik, menet kozben mar nem lehet modositani, ha az alkalmazas erre nem ad lehetoseget (es egyik RDBMS sem ad, az Oracle-t is ugyanigy ujra kell inditani).
Viszont a kulonfele cachek urulese miatt ez feler egy reboottal - amit nem jo fomusoridoben csinalni, maintenance time kell hozza - meg ha csak egy otperces is. Tapasztalatbol tudom, hogy a "lassu oldal" az elegge visszadobja a latogatoszamot egy latogatott oldal eseteben - marpedig az elso par request ugyis lassu lesz.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Az addig rendben van, hogy vannak beállítások, amelyek újraindítást igényelnek, de mi az a hülyeség, hogy "restart sosem árt?" (mintha valami üzemszerűen elkövetett izé lenne?
---------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
átnéztem a /sys/fs/cgroup-ot, hát sehol nem látok benne olyasféle lehetőséget, ami akár csak hasonlítana is erre a nofile-ra.
- A hozzászóláshoz be kell jelentkezni
látom, senkinek sincs ötlete. úgyhogy megkérdeztem lennart-ot (a systemd egyik fő fejlesztőjét), ha jön válasz, kiposztolom ide.
- A hozzászóláshoz be kell jelentkezni
nakkérem, megjött lennarttól a válasz -- persze lecseszett némileg, hogy miért nem a listán kérdeztem meg.
adott service unitnál a .service fájlban meg lehet adni ezt:
LimitNOFILE=
és akkor az lesz érvényes a fő és gyerekprocesszekre is egyaránt.
frissebb systemd esetén pedig a
DefaultLimitNOFILE=
direktíva a system.conf-ban, ha defaultot akarunk állítani minden processzre.
fedora 15 alatt a mysqld és a httpd még nem natív service fájlból indul, ott az /etc/init.d/httpd scriptben írtam be direktbe egy ulimit -n 8192-t, nem elegáns, de működik.
limitek ellenőrzése pedig cat /proc/
/limits
minden nap tanul valami újat az ember...
- A hozzászóláshoz be kell jelentkezni