Válaszként felmerült, hogy ha Ingo a "más disztrók" alatt a RHEL-t érti, akkor OK, de az openSUSE, az Ubuntu és a Mandriva még mindig 8K-s stack méretet használ.
A témával kapcsolatban indult hosszas vitában megemlítésre került, hogy az nfs+xfs+raid kernelkonfigurációk és az ndiswrapper használata okozza legtöbbször a 4K méretű stack túlcsordulását.
A stack alapértelmezett mérete x86-on a mainline kernelben 8K. Mivel minden processzhez/thread-hez allokálódik kernel stack, a memóriacsökkentés egyik módja lehet a 8K stack megfelezése. Továbbá, a 8K stack-es működés két, fizikailag folyamatos page-t igényel, s ezt a követelményt egy működő rendszeren nehezebb lehet teljesíteni a fragmentáció miatt.
Andi Kleen megkérdőjelezte a 4K stack méret hasznosságát, mondván, hogy amennyire ő tudja, a 4K stacks-nek nincs sok értelme a 2.6-os kerneleken. Ismeretei szerint a 4k stacks-nek a 2.4-es kernelek "szar" virtuális memória alrendszereivel (VM) volt értelme, de azok az idők már elmúltak.
Arjan van de Ven megjegyezte, hogy a 2.6-os kernel VM implementációja jóvan fejlettebb, de a 8K stack-kel előálló fragmentációs probléma nincs megoldva.
A 4K stack méret mellett és ellen számos érv hangzott el. A KernelTrap cikke a témában itt olvasható.
- A hozzászóláshoz be kell jelentkezni
- 3051 megtekintés
Hozzászólások
"de az openSUSE, az Ubuntu és a Mandriva még mindig 8K stack méretet használ."
És tényleg, az Ubuntu még mindig 8K-t használ:
root@alderaan:/home/trey# grep 4K /boot/config-2.6.24-16-generic
# CONFIG_4KSTACKS is not set
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
Nem magának az ndiswrapper -nek van vele gondja, hanem azoknak a 2000/XP wifi drivereknek, amelyeket betölt (megpróbál betölteni). Lefordul és modprobe -olhatja is az ember 4k stack kernelen, csak figyelmeztetést ír ki, hogy a wines driverek nagy részének gondot fog okozni.
-- There is never time to do it right, but always time to do it over.
- A hozzászóláshoz be kell jelentkezni
Ez az ndiswrapper egy tákolmány. Arjan van de Ven szerint az ndiswrapper-nek 12K kellene. Szóval a 8 sem elég. Az csak csoda, ha nincsen vele gond.
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
iirc nemcsak ndiswrappernek hanem az egyeb tobbi binaris taknyolas nak is jottesz a 8K stack (nvidia es haverjai)
- A hozzászóláshoz be kell jelentkezni
nfs+xfs+raid
NFS XFS fölött? Öhöö, ezt hívják extrémsportnak. :)) Már a részletekre nem emlékszem, de nagyon megszívtam anno vele.
--
Sokan nincsenek tudatában annak, / hogy egyszer mindenki meghal. / Akik ráébrednek erre, / azonnal abbahagyják az ellenségeskedést.
- A hozzászóláshoz be kell jelentkezni
Miert ne lehetne NFS XFS felett? Mik az extra problemak pl egy NFS+Ext3-hez kepest? XFS meg elvileg jobban ki van hegyezve parhuzamos hasznalatra (nem clusterre gondoltam mielott vki beszolna:)).
- A hozzászóláshoz be kell jelentkezni
Az XFS - amit a Red Hat egyébként hivatalosan nem támogat a RHEL-ben - "jó sok" stack-et használhat bizonyos körülmények közt. Egyébként a hírek szerint folyamatban van olyan munka, ami az XFS kevesebb stack használatát célozza.
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
Jelentem RHEL 5.1 x86_64-en 10 perccel ezelott tamogatta (installkor is es boot soran mint szerviz is OK) az xfs-t ;o))
- A hozzászóláshoz be kell jelentkezni
x86_64. Ertelmezhetetlen rajta a 4k/8k stack kerdes. Vegig ia32-rol beszeltunk.
- A hozzászóláshoz be kell jelentkezni
Sok ilyen szerveretek van még?
- A hozzászóláshoz be kell jelentkezni
Jah. Nehany szaz ami RHEL4-ia32, es nem is fog erezhetoen csokkenni a kozeljovoben, sot. Tobb ezer regebbi ia32-es RHEL-t kellene migralni, de valahogy nem surgos a dolog, mert senki sem akar massziv uzemeltetesi problemaba belefutni. Inkabb legyen memoriafragmentacio, es rendszeres ujrainditas, mint veletlenszeru, de tomeges elszallas.
- A hozzászóláshoz be kell jelentkezni
Mennyire érint ez titeket? Azaz a mostani helyzetben előfordul (sűrűn?) olyan, hogy emiatt nem kap az alkalmazás memóriát?
- A hozzászóláshoz be kell jelentkezni
Nem hiszem, hogy a fragmentacio nagyon erintene minket. Ahol lehetett, ott mar 64 bitre valtott a ceg. A kernel stack az OpenAFS miatt gond foleg, es ha egy regebbi RHEL alatt elhullik a vas, akkor az uj hardver miatt jon a RHEL4+, es az esetleges instabilitas :(
- A hozzászóláshoz be kell jelentkezni
RedHat támogatja hivatalosan az OpenAFS-t? Ezt nem gondoltam volna... Igaz 5+ éve használtam élesben OpenAFS-t utoljára, de akkor katasztrófális minőségű volt.
- A hozzászóláshoz be kell jelentkezni
Nem, nem tamogatja, reszben az OpenAFS miatt megy veluk a kuzdelem, de van mas problema is.
- A hozzászóláshoz be kell jelentkezni
Nem lenne kedved/lehetőséged írni egyszer a menedzsment környezetekről? Érdekes olvasmány lenne.
- A hozzászóláshoz be kell jelentkezni
Az a baj, hogy errol mar nem beszelhetek. Pedig tenyleg erdekes rendszer, az aktualis adatok szerint majdnem 23k linux ill. Solaris szerver van a cegnel. Par honappal ezelott meg csak 16k volt.
- A hozzászóláshoz be kell jelentkezni
Sörözni nem lenne kedved valamikor? ;)
- A hozzászóláshoz be kell jelentkezni
énisénis :)
- A hozzászóláshoz be kell jelentkezni
Na akkor már csak a hely és az időpont a kérdés. =)
- A hozzászóláshoz be kell jelentkezni
Holnap pl. pont pesten leszek a webkonfon. :)
- A hozzászóláshoz be kell jelentkezni
"x86_64. Ertelmezhetetlen rajta a 4k/8k stack kerdes."
Miert is?
--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!
- A hozzászóláshoz be kell jelentkezni
Na sikerult lebeszelnetek az xfs-rol (pont swraid es nfs koze raktam volna), bar amugy se szeretem, sok benne az x, meg lassu rola sok kis filet torolni.
Marad a reiserfs, na az az igazi extremsport, de csak ha badsectoros alatta vinyo.
A'rpi
- A hozzászóláshoz be kell jelentkezni
anelkul is az :)
- A hozzászóláshoz be kell jelentkezni
S helyette mi lesz? Maga az XFS amugy jo, s most, hogy mondjatok a kis hazi szerver (swraid+xfs+nfs) neha misztikus korulmenyek miatt szetfagy:) sajnos headless, szoval nem szoktam kernel panic feliratokat lesni rajta, de lehet, h eztan megteszem.
Kis fileokra sajna tenyleg nem tul jo, de sztm hazi hasznalatra sem feltetlenul. Ha jol tudom inkabb sok parhuzamos diszkmuvelet eseten mutatja ki a foga feherjet (tehat inkabb szerverben hasznos).
szerk:ok, nem olvastam eleg okosan, reiser lesz helyette mar latom:)
- A hozzászóláshoz be kell jelentkezni
Elég brutálisan hangzik.
Szerintem ahova ilyan kombó kell oda már olyan vasat kell tenni, ami minimum a "raid" részét kiváltja.
Üdv,
Dw.
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."
- A hozzászóláshoz be kell jelentkezni
Ez egy abszolut altalanos felallas, egy kicsiket sem kulonbozoik a tobbi nfs szerver konfigjahoz.
Mi a turo lehet ebben brutalis?
tompos
- A hozzászóláshoz be kell jelentkezni
A cegnel kemenyen szivunk a 4K-s stack miatt, a RedHat meg mindig masokra mutogat. Szoval a "nincs bejelentes, hogy gond lenne a 4K stack miatt" enyhen szolva nem allja meg a helyet.
- A hozzászóláshoz be kell jelentkezni
Megkérdezhetem, hogy miért szívtok vele?
- A hozzászóláshoz be kell jelentkezni
Mert szalldosnak a kernelek stack overflow miatt. Bovebben nem fejthetem ki sajna. Bizalmas :(
- A hozzászóláshoz be kell jelentkezni
Ok. Köszi
- A hozzászóláshoz be kell jelentkezni
akkor megoldás, amit anno fedora alatt csináltam, hogy distro-kernel-src leszed és kernel újraforgat 8k-val
debian gnu/linux @ linux-2.6.22.22-op1-rc1 | patch
info
- A hozzászóláshoz be kell jelentkezni
Persze. Ezzel lottek is a tamogatasnak. Itt nem 1-2 desktop geprol van szo, hanem szerverek szazairol.
- A hozzászóláshoz be kell jelentkezni
RH-tól nem lehet kérni 8k-s kernelt?
debian gnu/linux @ linux-2.6.22.22-op1-rc1 | patch
info
- A hozzászóláshoz be kell jelentkezni
Nem. Hiaba kaptak egy rakas kernel oops-ot, stack analizissel, elzarkoztak tole.
- A hozzászóláshoz be kell jelentkezni
akkor megoldás, amit anno fedora alatt csináltam, hogy distro-kernel-src leszed és kernel újraforgat 8k-val
Persze. Ezzel lottek is a tamogatasnak.
Hiaba kaptak egy rakas kernel oops-ot, stack analizissel, elzarkoztak tole.
Hát :-) Még jó, hogy van támogatás.
Igaz, a hibától elzárkóznak, és rendszeresen borulnak a gépek...
Fene tudja. Szerintem ha nekem ilyen problémám lenne, és ilyen support, valamit változtatnék. Pl. vendort.
Nem lehet, hogy jobb lenne újrafordítani? Igaz, hogy ez a csodálatos támogatás megszűnne, viszont esetleg nem borulnának a gépek, és nem lenne miért igénybevenni a támogatást :-D
Egyébként milyen dolgok miatt szoktátok a támogatást igénybevenni? És milyen gyakran?
Mert gondolom, ha a kernelt újrafordítod, attól még a többi programra a támogatás nem szűnt meg.
G
- A hozzászóláshoz be kell jelentkezni
20k szerverrol beszelunk, irdatlan sokfele hardveren, amelyek mindegyikere kapunk tamogatast a RedHat-tol. Ha kell, elmennek ok a hw-gyartohoz (IBM, HP, Dell, Qlogic, Broadcom, ...). Ezt nem lehet felvallalni, csak irdatlan raforditassal mind emberi, mind anyagi oldalrol. A gepeken futo programok donto tobbsege vagy hazon belul keszul, vagy RHEL-en bevizsgalt a fejlesztoje altal.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Miért kell két fizikailag egymás mellett levő page?
Nem az lenne a VM feladata, hogy találok két lapot a fizikai memóriában itt és amott, és az a program (a processzor) számára úgy tűnik, mintha egymás után jönne?
A túlcsorduláshoz meg: nem lehetne kidolgozni egy mechanizmust, amivel ha egy program telinyomja a 4K-t, akkor kapjon még négyet? De max. 8-at?
Így ha futtatok 100 processzt, nem pazarlok el 400K memóriát (ami a teljes fizikai memóriám kevesebb, mint fél ezreléke), de ha valami nagyétvágyú processz jön (pl. NFS), akkor sem omlik össze a világ
G
- A hozzászóláshoz be kell jelentkezni
Szerintem nalad a pont, ott hogy kevesebb mint fel ezreleke. Manapsag mar 400Kn nem veszunk ossze szerintem. Nyilvan bizonyos helyeken jol jon a 4k, rakjuk at a kernel hackingbol a for small systems menupont ala, es kesz.
Szerk: elolvastam a kerneltrapos cikket is, de meg mindig nem gyoztek meg.
- A hozzászóláshoz be kell jelentkezni
Nem az a 400K a fo problema, hanem a fragmentacio, amit okoz(hat).
--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!
- A hozzászóláshoz be kell jelentkezni
Nade miért okoz fragmentációt? Mi fragmentálódik? És hogyan?
Miért speciális a heap? A proci az MMU-t kikerülve fér hozzá? Vagy mi?
Miért nem tudja a memória management külön lapokból összerakni itt-ott?
Ha letette valahová, miért nem tudja a lapot máshová átdobni?
Egyébként pedig mi az, hogy fragmentáció? Attól, hogy a fizikai memória közepén itt-ott van 1-2 foglalt lap, ami éppen heap, a többi lapot még a processzor simán egyben tudja látni, az MMU a fizikai memóriát elrejti előle.
Nem?
Bizonyára valami alapvető dologra már nem emlékszem, vagy visszafejlődtek a procik, vagy mittudomén.
- A hozzászóláshoz be kell jelentkezni
A linux kernelben ez ugy mukodik, hogy alapvetoen ketfelekeppen foglalhatsz memoriat. Az egyik a slab allocator, amit a kmalloc-al ersz el, aminek egyik jellemzoje, hogy fizikailag folytonos teruletet allokal, ami egyreszt azert jo, mert gyors, masreszt mert jobban cache-elheto (tehat megintcsak gyors :) ).
A masik lehetoseg a vmalloc, ami pontosan azt csinalja, amire te gondolsz, cserebe lassabb (altalaban csak a jo nagy dolgok tarolasara hasznaljak).
A processzek kernel-stackjenek az alloc_thread_info() foglalja a memoriat, ami pedig (i386-on) a kmalloc-ot hasznalja, igyhat ehhez a muvelethez kell az a 2, egymas melletti page.
--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!
- A hozzászóláshoz be kell jelentkezni
csak tipp
konkretan folyik a verseny, hogy egy processz kreacio mennyi ido. Es CPU tick darabban merik, nem masodpercben.a kernelthread kreacional szinten. "most akkor melyik nonblocking syscall teremt maganak ujabb kernelthreadet vagy melyik nem" jellegu szorozesen.
a 4k (1 lap) kernelstacknek a kovetkezo elonyei vannak:
- gyorsabb a kernelthreadkeszites (1 lapot gyorsabb foglalni, mint kettot. Ket egybefuggo lapot gyorsabb foglalni, mint ket fregmentaltat stb) igy gyorsabb lesz a processz kreacio is
- a tulsagosan bonyolult kernelen beluli hivasi lanc, vagy a rekurzio hamarabb kiderul, annak letisztitasaval hosszutavon a kernel gyorsabb (jobb) lesz
es a kovetkezo hatrannyal:
- a jelen pillanatban a meglevo nagy stackhasznalok miatt az instabilitasi faktor nagyobb
BOX!
:-)
- A hozzászóláshoz be kell jelentkezni
Annak idején volt már szó ezekről a KernelTrap-on. A magyarázatok szerint számos oka van annak, hogy fix mérete van a kernel stack-nek. Pl. az, hogy gyorsabb, mintha dinamikus lenne. A részletek itt.
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
En ugyan mezei desktopuser vagyok de kb a 2.6.20-as szeria eleje ota 4Kstacksem van es soha semmi gond nemvolt vele.
Mellesleg, mint mar emlitettek, akinek nemtetszik/nemjo forgasson kernelt.
- A hozzászóláshoz be kell jelentkezni
Ez a nagyvállalati megoldás.
- A hozzászóláshoz be kell jelentkezni
lecci magyarazd mar meg a fonokodnek h most eppen elbuktatok a supportot arra a 200 gepre amit uzemeltettek
felkene mar vegre fogni h otthoni ubuntu != vallalati kornyezet
itt nem fogsz forgatni semmit foleg nem kernelt, max a diliflepnid porgeted a mutatoujjadon :)
- A hozzászóláshoz be kell jelentkezni
És az nem lehet megoldás, hogy ha kell a support, visszarakja az ember a gyári kernelt? Gondolom nem, de mi az oka annak, hogy ez így nem működhet?
- A hozzászóláshoz be kell jelentkezni
Mit érsz vele? Ha netán azon is tudod reprodukálni a hibát, foglalkoznak is vele, ki is javítják a saját kernelüket, akkor neked hogyan tovább?
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
A forráskód a gpl-nek köszönhetően eljut hozzám, és én újraforgathatom a kernelt a saját beállításaimmal.
- A hozzászóláshoz be kell jelentkezni
fedora.
ubuntu még mindig 8k-s stackkel jön.
- A hozzászóláshoz be kell jelentkezni
Gondolkoztam, hogy leírjam-e neki, de arra is gondoltam, hogy felesleges, mert a cikkben is és az első hozzászólásban is leírtam. Talán nem volt elég.
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
Egyébként i386-os architekúrán miért 4K a PAGE_SIZE ?
Írtam drivert más archiektúrán futó linuxra, és ott 8K volt a lapméret, a memória méret pedig 32 MB.
Csodálkoztam, pont fordítva lenne értelme.
- A hozzászóláshoz be kell jelentkezni
ez a cpu-tol fugg (hardver hatarozza meg) nem a oprendszere. Konkretan az alpha cpu-ban 8k a szokvanyos, az i386 -ban a 4k. Mellesleg jopar megoldas van lapmeret atallitasra, valtoztathato lapmeretre meg ilyesmik, de mindez hardver altal meghatarozott tulajdonsag.
- A hozzászóláshoz be kell jelentkezni
Köszi, így már értem.
- A hozzászóláshoz be kell jelentkezni