Passa ai contenuti principali

PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter

Dopo aver aggiornato il kernel della mia ubuntu 8.10 alla versione 2.6.27-9, il server PostgreSQL 8.3 ha iniziato a fare i capricci e a non voler partire. Riporto qui l'errore riscontrato.
* Starting PostgreSQL 8.3 database server
* The PostgreSQL server failed to start. Please check the log output:
2008-12-02 08:51:50 CET LOG: could not load root certificate file "root.crt": no SSL error reported
2008-12-02 08:51:50 CET DETAIL: I certificati del client non saranno verificati.
2008-12-02 08:51:50 CET FATAL: could not create shared memory segment: Argomento non valido
2008-12-02 08:51:50 CET DETAIL: Failed system call was shmget(key=5432001, size=38207488, 03600).
2008-12-02 08:51:50 CET HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter. You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently 38207488 bytes), reduce PostgreSQL's shared_buffers parameter (currently 4096) and/or its max_connections parameter (currently 103). If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.
The PostgreSQL documentation contains more information about shared memory configuration. [fail]
Il problema è già stato segnalato al team di ubuntu come bug 264336, ma come si dice in questi casi, "mai paura, testa alta... e non sbaja mai". Andiamo a modificare il file di configurazione del server con l'editor di testo. Da terminale lanciamo gedit:
sudo gedit /etc/postgresql/8.3/main/postgresql.conf
NOTA IMPORTANTE: non uso il server per produzione ma solo per test in locale, le impostazioni possono quindi non essere le più consone all'utilizzo in un ambiente di rilascio.
Fatte le dovute premesse, passiamo alle due righe incriminate:
riga 61 circa, sotto la sezione Connections and authentication
max_connections = 50 (prima era impostata a 100)
riga 107 circa, sotto la sezione Resource Usage
shared_buffers = 25MB

Ho riavviato il servizio e sono riuscito a far ripartire il server.

Post popolari in questo blog

Se excel non aggiorna le formule

Oggi in ufficio è capitata una richiesta particolare. In un documento excel dopo aver eseguito un copia-incolla di una formula non si aggiornavano i risultati nelle celle interessate. Dopo attimi di perplessità dal fondo dell'ufficio il capo ci illumina con una funzione ai più sconosciuta e che ha risolto il problema: il tasto F9. Scusate la mia ignoranza in excel ma questo blog è pensato proprio per appuntare esperienze di vita informatica. Tutto sta nel fatto che i "calcolatori d'un tempo" non disponevano di una adeguata potenza di calcolo e nelle operazioni di copia-incolla si verificavano lunghe attese per l'aggiornamento. La soluzione adottata da MS è stata quella di inserire un'opzione per impedire l'aggiornamento automatico e forzarlo con una combinazione di tasti... il tasto F9!
Combinazioni utili per il calcolo delle formule F9 = calcola le formule modificate dall'ultimo calcolo in tutte le cartelle e fogli di lavoro aperte. MAIUSC + F9 = c…

Riflessioni sull'ordinamento

Gli algoritmi di ordinamento sono da sempre i più gettonati e interessanti dal punto di vista didattico (si veda la complessità computazionale) e funzionale (quasi tutti i programmi hanno almeno una funzione di ricerca). Proprio di questi giorni sono alcuni articoli di Programmazione.it dedicati a questo tema (link).Coding Horror in questo articolo presenta una provocazione molto interessante al di là delle opinioni personali:

The default sort functions in almost every programming language are poorly
suited for human consumption.
L'articolo pone l'attenzione sulla differenza tra l'ordinamento alfanumerico e quello ASCII solitamente usato nei metodi nativi dei linguaggi. Il discorso si ampia se poi pensiamo banalmente alla differenza tra Windows e GNU/Linux che è case sensitive.
Spesso i sistemi operativi e i linguaggi di programmazione realizzano ordinamenti rispettando l'ordine della tabella di codifica ASCII e non l'ordinamento naturale della lingua. I commenti a se…

Timeline dei Linguaggi di programmazione

O'Reilly ha reso disponibile per tutti gli appassionati un interessante poster in formato pdf in cui vengono riassunti 50 anni di storia dei linguaggi di programmazione.Il poster mostra una timeline colorata nella quale sono evidenziate le principali derivazioni tra i vari linguaggi... da vedere
http://www.oreilly.com/news/graphics/prog_lang_poster.pdf



fonte programmazione.it