Uznavam, ze je to trosku zbastleny.
Myslim, ze by pomohlo v souboru fetch.php nahradit na 17. radku
$offset = round($routers_count / $fetch_processes);
za
$offset = ceil($routers_count / $fetch_processes);
To je jedina chyba, o ktere vim, v 1.30 je to tusim opraveny.
Jinak cely ten proces funguje nasledovne.
Cron spusti kazdych 5 minut soubor fetchexec.php. Tento skript dle nastaveni spusti s malou prodlevou procesy fetch.php s parametrem, ktery je z rozsahu <1,$fetch_processes>. Kazdy proces se podiva do databaze, vytahne si seznam hostu a u kazdeho n-teho udela FETCHING(cte data), u ostatnich napise SKIPPING(preskoci ho, necte data).
Pokud to tedy chcete trochu odladit, nejjednodussi je nastavit nejak $fetch_processes, napr. na 4 a spustit rucne fetch.php 1 a fetch.php 2 a fetch.php 3, fetch.php 4. Nahore zminena chyba ovlivnuje to, ze se muze stat, ze dojde k zaokrouhleni a nektery host by nebyl prochazen. Jinak chyby jsou zpusobene prevazne spatnymi pravy(napriklad spusteni skriptu rucne jako root:), spatnou verzi rrdtool, nepritomnosti podpory snmp v php. Pokud je teda nejaky router opravdu preskoceny v kazdem procesu, tak bych s tim zkusil trochu polaborovat.
V PilsFree mame v Rosinfu zhruba 150 routeru, bezi to v 10 procesech. Je to 150/10=15 routeru na proces, kazdy router zabere cca 5-20vterin. Takze cela ta silenost na dvouprocesorovej masine konci zhruba po 2-3 minutach.
V pristi verzi, ktera bude cela prepsana, bude ten fetchovaci proces patrne v perlu, vicevlaknove a urcite i rychlejsi. Nicmene vzhledem k me vytizenosti to bude jeste dlouho trvat a tohle se mi uz upravovat moc nechce. Kazdopadne chyby rad opravim.