Po delší době zazlobil jeden HP-UX server. Nedalo se na něj nijak připojit, ani z console:
server25 [HP Release B.11.00] (see /etc/issue) Console Login: root /usr/lib/dld.sl: Call to mmap() failed - ZEROES /usr/lib/libnsl.1 /usr/lib/dld.sl: Not enough space server25 [HP Release B.11.00] (see /etc/issue) Console Login:
Nakonec se po odpojení všech userů podařilo přes consoli nalogovat. Evidentně se nedostávalo paměti na nové procesy. Z ITRC serveru jsem se dozvěděl, že se tak stává většinou při zaplnění swapu, když má nějaký program memory leak. No, do programů dodavatelů se hrabat nebudem, že… Takže přidáme trochu swapu.
Po přidání swap disku do serveru se při bootu objevila hláška Unable to add all swap for device: /dev/vg05/swap2. Increase the tunable parameter maxswapchunks by 252 and re-configure your system.
Jasně, zvýším maxswapchunks a je to. Jenže… Spustil jsem sam, změnil parametry jádra, rekompiloval kernel a rebootnul. A pak to přišlo….
j2Dj10L FLT B800jCj1D Stored message buffer up to panic: gate64: sysvec_vaddr = 0xc0002000 for 1 pages Interrupt Type 9 (Break instruction trap): Instruction Address (pcsq.pcoq) = 0x0.0x81c6d8 Instruction (iir) = 0x00000000 (non-load/store) Savestate Ptr (ssp) = 0x0.0x00000000006bc480 Savestate Return Pointer (ss_rp) = 0x81c6d8 System Panic:
… atd.
No co, server je kilometry daleko, počkáme na automatický reboot (tak asi 5-10 minut) a nabootujeme z předchozího jádra. Během bootovací hlášky To discontinue, press any key within 10 seconds.
stiskneme cokoliv. Pak už je to sranda :-) :
Boot terminated. ---- Main Menu --------------------------------------------------------------- Command Description ------- ----------- BOot [PRI|ALT|] Boot from specified path PAth [PRI|ALT] [] Display or modify a path SEArch [DIsplay|IPL] [] Search for boot devices COnfiguration menu Displays or sets boot values INformation menu Displays hardware information SERvice menu Displays service commands DIsplay Redisplay the current menu HElp [<menu>|<command>] Display help for menu or command RESET Restart the system ---- Main Menu: Enter command or menu >bo pri Interact with IPL (Y, N, or Cancel)?> y Booting... Boot IO Dependent Code (IODC) revision 152 HARD Booted. ISL Revision A.00.38 OCT 26, 1994 ISL> hpux boot disk()/stand/vmunix.prev
Systém naběhne z předešlého jádra, poučíme se z chyb, na správný výpočet maxswapchunks použijeme vzoreček total_swap = swchunk * maxswapchunks * 1k
a pamatujeme na to, že limit je 16384.
Sam, změna maxswapchunks, rekompilace kernelu, reboot a jedem!!! Server naběhl jak po másle. Doufám, že o něm zase 2 roky nebudu ani vědět :-)