Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[resolu][MEMOIRE] Page Allocation Failure et Jumbo Frames
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
thejack
n00b
n00b


Joined: 15 Oct 2008
Posts: 37

PostPosted: Sat May 23, 2009 9:11 pm    Post subject: [resolu][MEMOIRE] Page Allocation Failure et Jumbo Frames Reply with quote

Bonjour,

Je me suis rendu compte d'un problème quelque peu fâcheux sur mon serveur, au début je pensais que cela venait de ma carte réseau, mais un changement de modèle n'a rien changé, les erreurs sont les mêmes, juste le nom du driver réseau qui change dans le dump ...

Des que j'utilise au niveau du réseau des trames étendues (type 7000Ko ... 9000 ...) je me retrouve avec des erreurs d'allocation mémoire de ce type :

Code:
May 17 11:34:47 SERVEUR swapper: page allocation failure. order:3, mode:0x20
May 17 11:34:47 SERVEUR Pid: 0, comm: swapper Not tainted 2.6.28-gentoo-r5 #1
May 17 11:34:47 SERVEUR Call Trace:
May 17 11:34:47 SERVEUR [<c014488b>] __alloc_pages_internal+0x372/0x38a
May 17 11:34:47 SERVEUR [<c015a83f>] cache_alloc_refill+0x278/0x477
May 17 11:34:47 SERVEUR [<c0428db7>] tcp_v4_do_rcv+0x22/0x153
May 17 11:34:47 SERVEUR [<c015aaa2>] __kmalloc+0x64/0x9e
May 17 11:34:47 SERVEUR [<c03eee00>] __alloc_skb+0x45/0xf2
May 17 11:34:47 SERVEUR [<c03ef661>] __netdev_alloc_skb+0x14/0x2f
May 17 11:34:47 SERVEUR [<c036105a>] e1000_alloc_rx_buffers+0x7a/0x27c
May 17 11:34:47 SERVEUR [<c0361627>] e1000_clean_rx_irq+0x3cb/0x3ef
May 17 11:34:47 SERVEUR [<c03631b6>] e1000_clean+0x2ac/0x439
May 17 11:34:47 SERVEUR [<c0427576>] tcp_delack_timer+0x14f/0x1a2
May 17 11:34:47 SERVEUR [<c03f1f6f>] net_rx_action+0x65/0x15b
May 17 11:34:47 SERVEUR [<c0123254>] __do_softirq+0x83/0x11e
May 17 11:34:47 SERVEUR [<c0123321>] do_softirq+0x32/0x36
May 17 11:34:47 SERVEUR [<c0104c4e>] do_IRQ+0x6e/0x80
May 17 11:34:47 SERVEUR [<c010373b>] common_interrupt+0x23/0x28
May 17 11:34:47 SERVEUR [<c01075a4>] mwait_idle+0x2f/0x32
May 17 11:34:47 SERVEUR [<c0101d9d>] cpu_idle+0x5e/0x75
May 17 11:34:47 SERVEUR Mem-Info:
May 17 11:34:47 SERVEUR DMA per-cpu:
May 17 11:34:47 SERVEUR CPU    0: hi:    0, btch:   1 usd:   0
May 17 11:34:47 SERVEUR CPU    1: hi:    0, btch:   1 usd:   0
May 17 11:34:47 SERVEUR Normal per-cpu:
May 17 11:34:47 SERVEUR CPU    0: hi:  186, btch:  31 usd: 169
May 17 11:34:47 SERVEUR CPU    1: hi:  186, btch:  31 usd:  49
May 17 11:34:47 SERVEUR HighMem per-cpu:
May 17 11:34:47 SERVEUR CPU    0: hi:   42, btch:   7 usd:  35
May 17 11:34:47 SERVEUR CPU    1: hi:   42, btch:   7 usd:  14
May 17 11:34:47 SERVEUR Active_anon:7911 active_file:7561 inactive_anon:15351
May 17 11:34:47 SERVEUR inactive_file:208795 unevictable:0 dirty:8260 writeback:1869 unstable:0
May 17 11:34:47 SERVEUR free:2752 slab:9766 mapped:2211 pagetables:341 bounce:0
May 17 11:34:47 SERVEUR DMA free:3488kB min:64kB low:80kB high:96kB active_anon:0kB inactive_anon:176kB active_file:3320kB inactive_file:2856kB unevictable:0kB present:15868kB pages_scanned:0 all_unreclaimable? no
May 17 11:34:47 SERVEUR lowmem_reserve[]: 0 861 992 992
May 17 11:34:47 SERVEUR Normal free:7252kB min:3720kB low:4648kB high:5580kB active_anon:7164kB inactive_anon:34116kB active_file:16316kB inactive_file:768920kB unevictable:0kB present:881880kB pages_scanned:0 all_unreclaimable? no
May 17 11:34:47 SERVEUR lowmem_reserve[]: 0 0 1047 1047
May 17 11:34:47 SERVEUR HighMem free:268kB min:128kB low:268kB high:408kB active_anon:24480kB inactive_anon:27112kB active_file:10608kB inactive_file:63404kB unevictable:0kB present:134056kB pages_scanned:0 all_unreclaimable? no
May 17 11:34:47 SERVEUR lowmem_reserve[]: 0 0 0 0
May 17 11:34:47 SERVEUR DMA: 0*4kB 22*8kB 15*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 1*1024kB 1*2048kB 0*4096kB = 3488kB
May 17 11:34:47 SERVEUR Normal: 1637*4kB 36*8kB 4*16kB 1*32kB 1*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 7252kB
May 17 11:34:47 SERVEUR HighMem: 1*4kB 1*8kB 0*16kB 6*32kB 1*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 268kB
May 17 11:34:47 SERVEUR 216685 total pagecache pages
May 17 11:34:47 SERVEUR 185 pages in swap cache
May 17 11:34:47 SERVEUR Swap cache stats: add 194, delete 9, find 853/853
May 17 11:34:47 SERVEUR Free swap  = 1003276kB
May 17 11:34:47 SERVEUR Total swap = 1004052kB
May 17 11:34:47 SERVEUR 260080 pages RAM
May 17 11:34:47 SERVEUR 33778 pages HighMem
May 17 11:34:47 SERVEUR 3752 pages reserved
May 17 11:34:47 SERVEUR 108061 pages shared
May 17 11:34:47 SERVEUR 159127 pages non-shared


Ce problème arrive des lors que la mémoire virtuelle est "pleine", lorsque je dis pleine je parle du cache qui au fur et à mesure s'étale sur la mémoire vive disponible. Cela donne au final des paquets droppé ...

Des que je regle la MTU a 1500 le problème disparait. Bon ce n'est pas bien grave, je perds juste 20% de performance en transfert ...

Cependant si quelqu'un aurait un debut de solution ça m'aiderait :D


Last edited by thejack on Wed Jun 10, 2009 3:17 pm; edited 1 time in total
Back to top
View user's profile Send private message
thejack
n00b
n00b


Joined: 15 Oct 2008
Posts: 37

PostPosted: Mon May 25, 2009 7:46 pm    Post subject: Reply with quote

Bon bah je crois avoir trouvé le pourquoi du comment ...

Apres avoir regardé pour la *je ne sais combien de* fois le log ... j'ai tilté sur lowmem_reserve.

J'ai fait la liaison entre ça et mes "tweaks" tcp que sont :

Code:
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216


En fait c'est la mémoire minimale réservée par defaut par le noyau (environ 3Mo) qui est a priori trop faible pour certains essais d'allocation qu'entreprends le driver réseau.

J'ai donc integré la ligne suivante a sysctl.conf :

Code:
vm.min_free_kbytes = 20480


J'ai remis ma MTU a 9000Ko .... je suis en train de tester tout ça ... pour l'instant pas d'erreur en vue. Je vais laisser ça en suspend, si après une a deux semaines je n'ai aucune erreur je vous le signalerais.
Back to top
View user's profile Send private message
El_Goretto
Moderator
Moderator


Joined: 29 May 2004
Posts: 3174
Location: Paris

PostPosted: Mon May 25, 2009 8:03 pm    Post subject: Reply with quote

Bonjour,

Je suis preneur si tu as des liens documentant ces paramètres noyaux (leur application concrète en environnement 1Gb m'intéresse aussi).
_________________
-TrueNAS & jails: µ-serv Gen8 E3-1260L, 16Go ECC + µ-serv N40L, 10Go ECC
-Réseau: APU2C4 (OpenWRT) + GS726Tv3 + 2x GS108Tv2 + Archer C5v1 (OpenWRT)
Back to top
View user's profile Send private message
thejack
n00b
n00b


Joined: 15 Oct 2008
Posts: 37

PostPosted: Mon May 25, 2009 8:14 pm    Post subject: Reply with quote

http://www.acc.umu.se/~maswan/linux-netperf.txt

Voici un lien qui decrit le probleme .... plus l'effet secondaire que j'ai rencontré. Bien sur je le trouve seulement au moment ou je trouve le bon parametre a changer :D
Back to top
View user's profile Send private message
thejack
n00b
n00b


Joined: 15 Oct 2008
Posts: 37

PostPosted: Sat May 30, 2009 6:22 pm    Post subject: Reply with quote

Apres une semaine sans erreur je viens d'en avoir quelques unes avec un reglage de 20Mo ... je monte a 32Mo (pour 16Ko d'allocation par trames de 9000o, ceci etant une particularité du driver e1000, et 2 queue de 1000 pour le RX et TX).
Back to top
View user's profile Send private message
thejack
n00b
n00b


Joined: 15 Oct 2008
Posts: 37

PostPosted: Wed Jun 10, 2009 3:17 pm    Post subject: Reply with quote

J'ai fini a 64Mo ... pas de warning depuis une semaine ... je considere donc le probleme resolu :D
Back to top
View user's profile Send private message
El_Goretto
Moderator
Moderator


Joined: 29 May 2004
Posts: 3174
Location: Paris

PostPosted: Sun Jul 26, 2009 11:40 am    Post subject: Reply with quote

Franchement, ce thread mérite d'être en post-it... ou plutôt dans la section astuce de chez nous.
Il y a très, mais alors très peu de référence sur le net à ce problème, et il arrive très vite pourtant. Certains l'associent apparemment à tort à un problème avec leur driver réseau.

J'en ai encore souffert hier, la mémoire était full, et 50%du swap utilisée. Les problèmes d'allocation semblent venir du fait que l'allocation des tampons réseau doit être faite sans aucun délais, contrairement à une appli.
_________________
-TrueNAS & jails: µ-serv Gen8 E3-1260L, 16Go ECC + µ-serv N40L, 10Go ECC
-Réseau: APU2C4 (OpenWRT) + GS726Tv3 + 2x GS108Tv2 + Archer C5v1 (OpenWRT)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum