[Ninux-Wireless] Debug of possible memory leak in the Kernel (OpenWrt Ninux Firmware)

Giuseppe De Marco peppelinux a yahoo.it
Mar 2 Lug 2013 01:48:24 CEST


>>> difficile, altri nodi uguali non vanno out-of-memory.

>>> qui l'unica cosa che cambia e' la STA che si sgangia e riaggancia di continuo.

ma poi alla fine scopriremo che l'informatica non è una scienza perfetta... :)

>>> root a NSM5GalliaNazza:~# sysctl -n vm.min_free_kbytes
>>> 721

replico anche il mio scooreggione:

root a Capizzanux:~# sysctl -n vm.min_free_kbytes
721

modificando questa variabile come si comporta ?...questo è il mio free:

root a Capizzanux:~# free
             total         used         free       shared      buffers
Mem:         29236        26080         3156            0         2772
-/+ buffers:              23308         5928
Swap:            0            0            0

Secondo me con un file di swap in /tmp si fà un bel tampone e si capisce qualcosa. Quando ti si sconnette quanta memoria primaria ti ritrovi ?

Ora non so se può aiutare svuotare a passo temporale (watch -n 3) costante tutte le caches del kernel, giusto per capire se è lui che gonfia ad cazzum:

echo 3 > /proc/sys/vm/drop_caches


Se è la frammentazione svuotando le caches dovremmo vedere il carico macchina salire.

Cmq se si esaurisce così facilmente controlla la frammentazione della memoria e la sua disponibilità in /proc/buddyinfo. Se l'antenna non fà niente, o quasi niente, la prima colonna dovrebbe essere circa così (ho solo olsr ed ssh attivo. non uso ipv6 e in rete non c'è n'anima):

root a Capizzanux:~# cat /proc/buddyinfo 
Node 0, zone   Normal     93     67     40     55     25      6      5      4      0      0      0 


Domanda: abbiamo solo memoria normale, niente dma o high ! Ragazzi ma anche su Sburratone e su AirOS è così ? Shcusate l'ignoranza.

Altro aspetto, frammentazione ? hai l'MTU a 1500 ?
Sull'antenna c''è tunnel VPN ? Usi ipv6 ? Insomma, è possibile che sia l' alloc_pages_nodemask del Kernel quando ha a che fare con frammentazione/uso_ram eccessiva.

Se non puoi monitorare con netcat avvia syslogd su un file a piacere e con logger buttagli quello che desideri. Ad ogni modo è un intero passato come buffer size alla kalloc che fà allarmare il kernel.

L'hai compilata ad-hoc questa versione oppure è il medesimo firmware (aa4) che sto usando io ?

rif:
https://www.kernel.org/doc/Documentation/sysctl/vm.txt
http://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-proc-buddyinfo.html
https://www.kernel.org/doc/Documentation/vm/slub.txt


ps = ragazzi ma su attitude adjustment chi ha installato "nohup" ? e mica lo trovo... !
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://ml.ninux.org/pipermail/wireless/attachments/20130702/6a75c204/attachment-0001.html>


Maggiori informazioni sulla lista Wireless