Portál AbcLinuxu, 13. května 2025 22:41
Nejdřív bych chtěl předeslat že vím že se pokouším o naprosto potrhlou věc kterou možná ještě nikdo neviděl v provozu, ale chci jen zkusit zda je toto řešení realizovatelný. A tak doufám že mě nebudete hned linčovat :D
O co vlastně jde :
Snažim se rozjet hodně Apachů v chrootech. Celý to mám podchycený perlovskejma skriptama který vytvoří jail pro Apache nalinkujou do něj vše potřebné, zapíšou do databáze že byl vytvořen jail a nakonec nakopnou samotnej server. Takže v samotnym jailu jsou jen 2 soubory, httpd.conf a httpd. Zbytek jsou hardlinky na soubory který spolu sdílej všechny servery.
(11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
A zdechnou
Zde je ulimit :
core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 20 file size (blocks, -f) unlimited pending signals (-i) 1023 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 1023 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
A zde ještě sysctl:
sysctl fs.file-nr fs.file-nr = 1232 0 11936
I když v ulimit dám vše na unlimited tak se nic nezmění. RAMka je sice skoro plná ale SWAP je zase skoro prázdnej. Snad ještě dodám že se jedná o Archlinux a Apache 2.2.4
Děkuji všem za pomoc při žešení tohoto zapeklitého problému :)Zkusil jsem tuto možnost prověřit trochu jinak, do všech nově spouštěných apachů loaduju mod_php. Najednou jich najede jenom 11...
Ano, je to MPM worker s defaultnim nastavenim. A v /proc/sys/vm/overcommit_memory je 0. Zkusil jsem si hrát s /proc/sys/vm/swappiness, ale i když jsem tam dal 100 tak se choval furt stejně. S mod_php jich najelo furt jen 11...
Jen ještě trochu upřesním technický parametry mého testovacího stroje : [root@server ~]# free -m total used free shared buffers cached Mem: 123 120 2 0 26 41 -/+ buffers/cache: 52 70 Swap: 2744 95 2648 hodnoty jsou se 14 pěžícími apachy a se 100 v /proc/sys/vm/swappiness
Dnes to určitě zkusim.
Ale napadla mě jiná věc. Skoro vůbec nerozumim správě paměti, ale neni nějaký omeznení jaký data můžou bejt ve SWAPu a jaký musí bejt v RAM ? A když dojde RAMka tak jádro nedovolí alokovat další paměť a apache se složí.
Nebo jsou SWAP a RAM naprosto rovnoprávný ? Jen s tim rozdílem že SWAP je šíleně pomalej.MemTotal: 126016 kB MemFree: 4252 kB Buffers: 42464 kB Cached: 45896 kB SwapCached: 940 kB Active: 49820 kB Inactive: 41784 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 126016 kB LowFree: 4252 kB SwapTotal: 2810264 kB SwapFree: 2707480 kB Dirty: 164 kB Writeback: 0 kB AnonPages: 2916 kB Mapped: 7392 kB Slab: 11360 kB SReclaimable: 6244 kB SUnreclaim: 5116 kB PageTables: 5548 kB NFS_Unstable: 0 kB Bounce: 0 kB CommitLimit: 2873272 kB Committed_AS: 8646004 kB VmallocTotal: 901112 kB VmallocUsed: 3984 kB VmallocChunk: 897004 kB
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.