# Problemi di memoria - Importante!! [SOLVED]

## pigreco

Salve,

ieri ho avuto un pò di problemi su di un mio server, mi si chiudevano i servizi improvvisamente, con errori di out of memory o impossibilità allocare la memoria.

Considerando che il sistema è in servizio da un bel pò senza grossi problemi non riesco a capire cosa può essere accaduto   :Shocked: 

Controllando con 'top' ho notato che la memoria swap è a zero:

```
top - 10:13:27 up  7:58,  2 users,  load average: 0.00, 0.00, 0.00

Tasks: 189 total,   1 running, 185 sleeping,   3 stopped,   0 zombie

Cpu(s):  0.1%us,  1.3%sy,  0.0%ni, 98.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   2055060k total,  2014496k used,    40564k free,   265072k buffers

[b]Swap:        0k total,        0k used,        0k free,   779436k cached[/b]

```

non ricordo bene come era in precedenza ma ho altri server linux gentoo praticamente gemelli come configurazione ed utilizzano la memoria swap correttamente.

La partizione di swap è presente nel sistema:

 *Quote:*   

> 
> 
> cat /etc/fstab 
> 
> # /etc/fstab: static file system information.
> ...

 

però sembra non essere utilizzata

```
swapon -s

Filename            Type      Size   Used   Priority

```

Ho tentato un riavvio senza ottenere nessun miglioramento.

La cosa mi preoccupa molto   :Crying or Very sad:   e se qualcuno ha dei sugerimenti per aiutarmi a risolverela cosa, come identifcare un eventuale causa o come riattivare la swap gli sarei molto grato se mi potesse aiutare.

Grazie in anticipo,

MaurizioLast edited by pigreco on Mon Apr 19, 2010 9:20 am; edited 1 time in total

----------

## desultory

Moved from Networking & Security to Forum italiano (Italian).

----------

## Peach

 *pigreco wrote:*   

> Ho tentato un riavvio senza ottenere nessun miglioramento.

 

ciao Maurizio

immagino che il problema possa essere preoccupante, ma ho dei dubbi

Innanzi tutto quello che dici significa che al riavvio ti ritrovi tutto lo swap occupato?

se no, quanto ci mette?

l'output del kernel riporta qualcosa? (apparte l'OOM)

se posso ti consiglierei di usare htop per tenere d'occhio la memoria e quanto tempo ci mette a finire e grazie a chi.

facci sapere.

----------

## pigreco

Ciao Peach, grazie per la risposta,

quando ho scritto del riavvio intendevo che la swap era a zero k prima e lo è anche dopo aver riavviato, non ci sono + stati episodi di chiusura di servizi o errori di out of memory per il momento.

Scusate l'ignoranza ma non avevi mai usato htop, anche lui conferma che non c'è utilizzo della memoria swap:

```
  1  [                                                                                   0.0%]     Tasks: 143 total, 1 running

  2  [                                                                                   0.0%]     Load average: 0.11 0.13 0.06 

  3  [|                                                                                  0.7%]     Uptime: 08:52:36

  4  [                                                                                   0.0%]

  Mem[|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||826/2006MB]

  Swp[                                                                                  0/0MB]

.........

```

per quanto riguarda l'output del kernel, non ho + niente dal riavvio, posso allegare un output precedente visualizzato al crash di mysql:

```
Apr 18 16:12:37 etaromtre kernel: mysqld invoked oom-killer: gfp_mask=0x4d0, order=2, oomkilladj=0

Apr 18 16:12:37 etaromtre kernel: mysqld invoked oom-killer: gfp_mask=0x4d0, order=2, oomkilladj=0

Apr 18 16:12:37 etaromtre kernel: Pid: 12178, comm: mysqld Not tainted 2.6.31-gentoo-r6 #5

Apr 18 16:12:37 etaromtre kernel: Pid: 12178, comm: mysqld Not tainted 2.6.31-gentoo-r6 #5

Apr 18 16:12:37 etaromtre kernel: Call Trace:

Apr 18 16:12:37 etaromtre kernel: Call Trace:

Apr 18 16:12:37 etaromtre kernel: [<ffffffff8107fc9f>] ? oom_kill_process+0x7b/0x215

Apr 18 16:12:37 etaromtre kernel: [<ffffffff8107fc9f>] ? oom_kill_process+0x7b/0x215

Apr 18 16:12:37 etaromtre kernel: [<ffffffff81080038>] ? __out_of_memory+0x3c/0x14b

Apr 18 16:12:37 etaromtre kernel: [<ffffffff81080038>] ? __out_of_memory+0x3c/0x14b

Apr 18 16:12:37 etaromtre kernel: [<ffffffff8108020f>] ? out_of_memory+0xc8/0x125

Apr 18 16:12:37 etaromtre kernel: [<ffffffff8108020f>] ? out_of_memory+0xc8/0x125

Apr 18 16:12:37 etaromtre kernel: [<ffffffff81082f19>] ? __alloc_pages_nodemask+0x446/0x4f0

Apr 18 16:12:37 etaromtre kernel: [<ffffffff81082f19>] ? __alloc_pages_nodemask+0x446/0x4f0

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810a6135>] ? kmem_getpages+0x52/0x11a

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810a6135>] ? kmem_getpages+0x52/0x11a

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810a678e>] ? fallback_alloc+0x10f/0x1a9

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810a678e>] ? fallback_alloc+0x10f/0x1a9

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810a6344>] ? kmem_cache_alloc_node+0xae/0x125

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810a6344>] ? kmem_cache_alloc_node+0xae/0x125

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810a63f1>] ? __kmalloc_node+0x36/0x82

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810a63f1>] ? __kmalloc_node+0x36/0x82

Apr 18 16:12:37 etaromtre kernel: [<ffffffff814f8c61>] ? __alloc_skb+0x64/0x153

Apr 18 16:12:37 etaromtre kernel: [<ffffffff814f8c61>] ? __alloc_skb+0x64/0x153

Apr 18 16:12:37 etaromtre kernel: [<ffffffff814f48d5>] ? sock_alloc_send_pskb+0x81/0x2ab

Apr 18 16:12:37 etaromtre kernel: [<ffffffff814f48d5>] ? sock_alloc_send_pskb+0x81/0x2ab

Apr 18 16:12:37 etaromtre kernel: [<ffffffff81622654>] ? thread_return+0x3f/0xaa

Apr 18 16:12:37 etaromtre kernel: [<ffffffff81622654>] ? thread_return+0x3f/0xaa

Apr 18 16:12:37 etaromtre kernel: [<ffffffff81594464>] ? unix_stream_sendmsg+0x16c/0x30e

Apr 18 16:12:37 etaromtre kernel: [<ffffffff81594464>] ? unix_stream_sendmsg+0x16c/0x30e

Apr 18 16:12:37 etaromtre kernel: [<ffffffff814f1aae>] ? sock_aio_write+0xd1/0xe0

Apr 18 16:12:37 etaromtre kernel: [<ffffffff814f1aae>] ? sock_aio_write+0xd1/0xe0

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810ac0ea>] ? do_sync_write+0xc9/0x10c

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810ac0ea>] ? do_sync_write+0xc9/0x10c

Apr 18 16:12:37 etaromtre kernel: [<ffffffff8105127d>] ? autoremove_wake_function+0x0/0x2e

Apr 18 16:12:37 etaromtre kernel: [<ffffffff8105127d>] ? autoremove_wake_function+0x0/0x2e

Apr 18 16:12:37 etaromtre kernel: [<ffffffff81092614>] ? handle_mm_fault+0x323/0x6a4

Apr 18 16:12:37 etaromtre kernel: [<ffffffff81092614>] ? handle_mm_fault+0x323/0x6a4

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810ac7d5>] ? vfs_write+0xc0/0x149

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810ac7d5>] ? vfs_write+0xc0/0x149

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810acd0a>] ? sys_write+0x45/0x6e

Apr 18 16:12:37 etaromtre kernel: [<ffffffff810acd0a>] ? sys_write+0x45/0x6e

Apr 18 16:12:37 etaromtre kernel: [<ffffffff8100adab>] ? system_call_fastpath+0x16/0x1b

Apr 18 16:12:37 etaromtre kernel: [<ffffffff8100adab>] ? system_call_fastpath+0x16/0x1b

Apr 18 16:12:37 etaromtre kernel: Mem-Info:

Apr 18 16:12:37 etaromtre kernel: Mem-Info:

Apr 18 16:12:37 etaromtre kernel: Node 0 DMA per-cpu:

Apr 18 16:12:37 etaromtre kernel: Node 0 DMA per-cpu:

Apr 18 16:12:37 etaromtre kernel: CPU    0: hi:    0, btch:   1 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    0: hi:    0, btch:   1 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    1: hi:    0, btch:   1 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    1: hi:    0, btch:   1 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    2: hi:    0, btch:   1 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    2: hi:    0, btch:   1 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    3: hi:    0, btch:   1 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    3: hi:    0, btch:   1 usd:   0

Apr 18 16:12:37 etaromtre kernel: Node 0 DMA32 per-cpu:

Apr 18 16:12:37 etaromtre kernel: Node 0 DMA32 per-cpu:

Apr 18 16:12:37 etaromtre kernel: CPU    0: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    0: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    1: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    1: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    2: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    2: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    3: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    3: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: Node 1 DMA32 per-cpu:

Apr 18 16:12:37 etaromtre kernel: Node 1 DMA32 per-cpu:

Apr 18 16:12:37 etaromtre kernel: CPU    0: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    0: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    1: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    1: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    2: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    2: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    3: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: CPU    3: hi:  186, btch:  31 usd:   0

Apr 18 16:12:37 etaromtre kernel: Active_anon:221331 active_file:34 inactive_anon:225722

Apr 18 16:12:37 etaromtre kernel: Active_anon:221331 active_file:34 inactive_anon:225722

Apr 18 16:12:37 etaromtre kernel: inactive_file:33 unevictable:0 dirty:0 writeback:0 unstable:0

Apr 18 16:12:37 etaromtre kernel: inactive_file:33 unevictable:0 dirty:0 writeback:0 unstable:0

Apr 18 16:12:37 etaromtre kernel: free:16773 slab:12910 mapped:6606 pagetables:30626 bounce:0

Apr 18 16:12:37 etaromtre kernel: free:16773 slab:12910 mapped:6606 pagetables:30626 bounce:0

Apr 18 16:12:37 etaromtre kernel: Node 0 DMA free:4008kB min:40kB low:48kB high:60kB active_anon:5540kB inactive_anon:5720kB active_file:4kB inactive_file:16kB unevictable:0kB present:15364kB pages_scanned:0 all_unreclaimable? no

Apr 18 16:12:37 etaromtre kernel: Node 0 DMA free:4008kB min:40kB low:48kB high:60kB active_anon:5540kB inactive_anon:5720kB active_file:4kB inactive_file:16kB unevictable:0kB present:15364kB pages_scanned:0 all_unreclaimable? no

Apr 18 16:12:37 etaromtre kernel: lowmem_reserve[]: 0 994 994 994

Apr 18 16:12:37 etaromtre kernel: lowmem_reserve[]: 0 994 994 994

Apr 18 16:12:37 etaromtre kernel: Node 0 DMA32 free:43576kB min:2828kB low:3532kB high:4240kB active_anon:413624kB inactive_anon:423008kB active_file:68kB inactive_file:0kB unevictable:0kB present:1018080kB pages_scanned:22 all_unreclaimable? no

Apr 18 16:12:37 etaromtre kernel: Node 0 DMA32 free:43576kB min:2828kB low:3532kB high:4240kB active_anon:413624kB inactive_anon:423008kB active_file:68kB inactive_file:0kB unevictable:0kB present:1018080kB pages_scanned:22 all_unreclaimable? no

Apr 18 16:12:37 etaromtre kernel: lowmem_reserve[]: 0 0 0 0

Apr 18 16:12:37 etaromtre kernel: lowmem_reserve[]: 0 0 0 0

Apr 18 16:12:37 etaromtre kernel: Node 1 DMA32 free:19508kB min:2872kB low:3588kB high:4308kB active_anon:466160kB inactive_anon:474160kB active_file:64kB inactive_file:184kB unevictable:0kB present:1033196kB pages_scanned:0 all_unreclaimable? no

Apr 18 16:12:37 etaromtre kernel: Node 1 DMA32 free:19508kB min:2872kB low:3588kB high:4308kB active_anon:466160kB inactive_anon:474160kB active_file:64kB inactive_file:184kB unevictable:0kB present:1033196kB pages_scanned:0 all_unreclaimable? no

Apr 18 16:12:37 etaromtre kernel: lowmem_reserve[]: 0 0 0 0

Apr 18 16:12:37 etaromtre kernel: lowmem_reserve[]: 0 0 0 0

Apr 18 16:12:37 etaromtre kernel: Node 0 DMA: 72*4kB 55*8kB 21*16kB 26*32kB 1*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 1*2048kB 0*4096kB = 4008kB

Apr 18 16:12:37 etaromtre kernel: Node 0 DMA: 72*4kB 55*8kB 21*16kB 26*32kB 1*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 1*2048kB 0*4096kB = 4008kB

Apr 18 16:12:37 etaromtre kernel: Node 0 DMA32: 10278*4kB 301*8kB 4*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 43584kB

Apr 18 16:12:37 etaromtre kernel: Node 0 DMA32: 10278*4kB 301*8kB 4*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 43584kB

Apr 18 16:12:37 etaromtre kernel: Node 1 DMA32: 3687*4kB 604*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 19580kB

Apr 18 16:12:37 etaromtre kernel: Node 1 DMA32: 3687*4kB 604*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 19580kB

Apr 18 16:12:37 etaromtre kernel: 8271 total pagecache pages

Apr 18 16:12:37 etaromtre kernel: 8271 total pagecache pages

Apr 18 16:12:37 etaromtre kernel: 0 pages in swap cache

Apr 18 16:12:37 etaromtre kernel: 0 pages in swap cache

Apr 18 16:12:37 etaromtre kernel: Swap cache stats: add 0, delete 0, find 0/0

Apr 18 16:12:37 etaromtre kernel: Swap cache stats: add 0, delete 0, find 0/0

Apr 18 16:12:37 etaromtre kernel: Free swap  = 0kB

Apr 18 16:12:37 etaromtre kernel: Free swap  = 0kB

Apr 18 16:12:37 etaromtre kernel: Total swap = 0kB

Apr 18 16:12:37 etaromtre kernel: Total swap = 0kB

Apr 18 16:12:37 etaromtre kernel: 524024 pages RAM

Apr 18 16:12:37 etaromtre kernel: 524024 pages RAM

Apr 18 16:12:37 etaromtre kernel: 10259 pages reserved

Apr 18 16:12:37 etaromtre kernel: 10259 pages reserved

Apr 18 16:12:37 etaromtre kernel: 756736 pages shared

Apr 18 16:12:37 etaromtre kernel: 756736 pages shared

Apr 18 16:12:37 etaromtre kernel: 450345 pages non-shared

Apr 18 16:12:37 etaromtre kernel: 450345 pages non-shared

Apr 18 16:12:37 etaromtre kernel: Out of memory: kill process 7918 (mysqld) score 108091 or a child

Apr 18 16:12:37 etaromtre kernel: Killed process 7918 (mysqld)
```

io purtroppo di kernel ci capisco poco e ho notato solo il legame con la memoria, ma ripeto dal riavvio se non fosse per il persistere della swap a 0k sembra tutto ok.

Aggiungo che ho tentato l'attivazione della swap con:

```
swapon -a
```

ottenendo lo sconfortante risultato, che non so ben collocare o rimediare:

```
swapon: /dev/sda2: swapon failed: Invalid argument
```

MaurizioLast edited by pigreco on Mon Apr 19, 2010 8:38 am; edited 2 times in total

----------

## riverdragon

swapon /dev/sda2 che dice?

----------

## pigreco

```
swapon /dev/sda2

swapon: /dev/sda2: swapon failed: Invalid argument
```

 :Crying or Very sad: 

----------

## pigreco

 :Very Happy:   :Very Happy:   risolto con:

```
#mkswap /dev/sda2

mkswap: /dev/sda2: warning: don't erase bootbits sectors

        (DOS partition table detected). Use -f to force.

Setting up swapspace version 1, size = 2008120 KiB

nessuna etichetta, UUID=6180924d-e4e0-4961-a4eb-e187c4d57894

 #swapon /dev/sda2

```

mi rimane il grande dubbio di cosa possa essere successo ma per adesso mi accontento di aver riattivato la swap....

```
top - 12:06:13 up  9:51,  3 users,  load average: 0.04, 0.06, 0.01

Tasks: 192 total,   1 running, 184 sleeping,   7 stopped,   0 zombie

Cpu(s):  0.2%us,  0.2%sy,  0.0%ni, 99.6%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   2055060k total,  1981932k used,    73128k free,   292008k buffers

Swap:  2008116k total,        0k used,  2008116k free,   796960k cached

```

grazie tante a tutti voi,

Maurizio

----------

## djinnZ

credo che hai appena scoperto perchè la swap è meglio che stia in una partizione dedicata...

----------

## pigreco

 *Quote:*   

> credo che hai appena scoperto perchè la swap è meglio che stia in una partizione dedicata...

 

vuoi dire che può essere instabile e sono cose che possono capitare?

ciao

Maurizio

----------

## djinnZ

La swap per tante ragioni è molto delicata e può facilmente essere corrotta visto che è sottoposta a scritture dirette (almeno questa è la ragione "storica"). Mi è capitato che si corrompesse (e su un certo sistema inoperativo si è portata dietro il sistema ma è altra questione)

Verifica se non hai attivato lo swap erase nella configurazione dell'rc (dipende dalle versioni), una volta mi pare che c'era qualche problemino.

Prova a ricrearla con 

```
mkswap -c -v1 /dev/sda2
```

, niente di più facile che sia a causa di qualche bad sector che viene corrotta.

Ti direi di provare anche con -f ma ho il timore che ci sia qualche problema di allocazione delle partizioni, controlla. oppure ricreala dopo un 

```
dd if=/dev/zero of=/dev/sda2
```

----------

## pigreco

Quindi ritieni che dovrei provare ad intervenire come mi hai suggerito?

sono un pò timoroso dato che adesso tutto sembra funzionare correttamente e la partizione è utilizzata dal sistema.

Grazie per il prezioso aiuto.

----------

## djinnZ

Azzerare (a servizi fermi e dopo uno swapoff) con dd la partizione di swap e ricrearla con il check per i bad-block (-c) non ti può creare problemi. Con -f se le partizioni sono sballate rischi e di brutto.

Se non altro escludi un problema al disco (potrebbe pure essere un chipset del piffero con problemi di overload come il mio) che è l'unica ipotesi preoccupante. A questo punto se tutto va bene vuol dire che è capitato. Non è frequente ma non è nulla di problematico.

Possibile pure che la vecchia swap era stata creata come v0 se è per questo.

----------

