Még jobb energia takarékosságot valósítok meg azzal, hogy ha már minden domain kikényszerítő módban van (ez maximum 2 hét után mindenképpen bekövetkezik a jelenlegi beállításokkal), akkor minden ciklusban az alvás időt tízszeresére emelem, így ezzel már tényleg kevés CPU-t pörget tomld (ezt visszabillenti pl. az átmeneti tanuló mód kérése). Habár le is állítható, ezzel mégis elfogadható az erőforrás felhasználása hosszú távon (a mostani átlag 1-3 % helyett ennek töredéke).
Ezen kívül belefutottam az egyik szerveremen egy problémába, amely procmail-nél bukott ki. Az egyik gyenge láncszem a megvalósításomban a véletlen szerű fájlnevek kicsillagozása. Mivel nem engedem a domain-eknek a kivételes mappák olvasását vagy írását automatikusan (pl:
allow_create /home/user/\*
helyett
allow_create /home/user/.myconfig
lesz), ezért fenn áll a veszélye, hogy véletlen nevet tartalmazó átmeneti (temp) fájlokból sok jön létre megállás nélkül. Persze ezt már megoldottam úgy, hogy megvizsgálom a fájl nevet, és ha tartalmaz random részt, akkor ezt lecserélem "\*" helyettesítő kifejezésre. Pl ezt:
allow_create /home/user/oTSRWgWs8U.org.chromium
erre:
allow_create /home/user/\*.org.chromium
és nyilván törekedve a minél kevésbé általános helyettesítésre biztonsági szempont miatt. Ez itt a kulcs. A képlet egyszerű: ha egy olyan egybefüggő karakter sort találok, amely tartalmaz kis és nagybetűt és számot is, de legalább 6 darabot, de csak ezt, és ráadásul nagy betű is elő fordul egyszer a 2. karaktertől kezdve, akkor lecserélem ezt a részt.
Mondhatnánk, hogy mi van akkor ha ez a temp fájl tényleg temp fájl, de mégsem teljesül rá a fenti meghatározásom. Nos, ez esetben sincs gond, mert létrehozza a domain még egyszer, és újra meg újra, mivel nem csillagoztam ki, ezért konkrét név alapján fogja tartalmaznia a szabálya. De mivel véletlen név, ezért valószínű nem fog illeszkedni rá, tehát új szabályként bekerül a szabályok közé. Ezt mindaddig, amíg rá nem fog illeszkedni a fentire, és ekkor kicsillagozom. És mivel a szabály "tisztító" rutinom (domain_cleanup) a hasonlókat összemossa, ezért az eddig begyűlött "szemét" bejegyzések eltűnnek.
Tehát idő kérdése és kitisztulnak a domain szabályai. Viszont 2 napja ilyen bejegyzések zömét láttam az egyik szerveremen:
allow_create /home/\*/_Wg.\*.valami.dyndns.org
allow_create /home/\*/_Xb.lwdOOB.valami.dyndns.org
allow_create /home/\*/_Vs.CwjOOB.valami.dyndns.org
Itt látható, hogy procmail 2 véletlen részt is használ az egyik fájl nevében, ezek ponttal elválasztva. Az első rész 3 karakter, míg a második 7. Ezek miatt a másodikra működik az algoritmusom, és az első sorban látható, hogy le is cseréli (a másik kettőnél nincs szám, ezért nem). De az első rész miatt soha nem fog illeszkedni, és nem lesz vége a tanuló módnak soha.
Ezt úgy oldottam meg, hogy az algoritmusomat bővítettem a következővel: a pont karaktert is hozzáveszem a véletlen részhez, ha a pont bal és jobb oldalán található ponttól pontig rész véletlen résznek tűnik, nem véve figyelembe a karakterek számát. Ha ez igaz, akkor már a teljes szövegrésznek nézem meg a hosszát, és ekkor már ennek kell minimum 6 karakternek lennie. Így a végeredmény ez lett:
allow_create /home/\*/\*.valami.dyndns.org
és ezzel kitörlődött a szemét is.
Nyilván lehet ezt a részt faragni, ami fontos viszont számomra, hogy a megtalálható hálózati alkalmazások közül ezek hogyan hoznak létre temp fájlokat, és hogy erre megfeleljen az algoritmusom. Nyilván fel lehet vázolni olyan esetet, ahol nem működne, de egyelőre az általam felvázolt szabályt a karakterek hosszától függetlenül követik.
Ha 2 hét után átállnak a szervereim domain-jei kikényszerítő módba, és továbbra sem lesz probléma a működéssel, akkor azt sikernek veszem és végre kiadhatom az első stabil verziómat.
- log69 blogja
- A hozzászóláshoz be kell jelentkezni
- 897 megtekintés
Hozzászólások
További infó: leteszteltem tomld-t az aktuális Ubuntu 11.10 alfa 3 verziójával és minden jónak tűnt (kernel 3.0.0 amd64, Tomoyo 2.3).
Egyébként VM-ben a Unity 2D-t tudtam megnézni és szerintem nagyon használható az egyszerűsége mellet és jól átgondoltnak tűnik, igaz hogy eleve minimalista dolgokat preferálok.
- A hozzászóláshoz be kell jelentkezni