patch per migliorare velocità dashboard (testate su 2.7.2)
-
Ciao, ho notato sul mio PC Engines APU una lentezza estrema della dashboard di pfSense 2.7.2. Oltre 6 secondi, altresì diversi secondi per alcuni widget (in particolare quello dei log del firewall). Non avevo mai indagato il codice di pfSense, ho notato che viene fatto ampio uso di comandi esterni lanciati con exec(), mwexec(), shell_exec() o semplicemente con i backtick. Molti comandi sono in pipe con altri comandi (es. grep o awk) e queste catene di comandi vengono ripetute "enne" volte per ogni caricamento della dashboard o di un widget. Ho quidni apportato e rilasciato alcune semplici patch intervenendo sulle funzioni più lente, dopo aver fatto un review del codice con i design pattern (es. singleton). Sono sceso da 6 secondi a circa 1 secondo. Il widget dei log da 3 secondi a meno di 500ms. Penso si possa ulteriormente migliorare e mi chiedo a tal proposito come mai si continuino a lanciare comandi esterni anziché usare l'apposita estensione PHP (php-pfSense-module); mi domando anche perché tal estensione sembri qualcosa di inconcluso, a mio vedere si potrebbe ulteriormente migliorare (es. manca il rilevamento del media delle interfacce, manca tutta la parte wifi, bridge, manca una funzione per ottenere le regole di pf)...
https://github.com/wildstray/pfSense-speedup
Chiaramente rilascio queste patch "as is" e non mi assumo responsabilità!
Ogni suggerimento è benvenuto! Tra l'altro, mi piacerebbe sapere se tali patch siano applicabili anche alla 2.8.x. Non ho ancora fatto l'upgrade perché ho letto di problemi con la console seriale, quindi ho preferito restare alla 2.7.2 su un hardware che dispone soltanto di console seriale.