2015-07-02 23 views
5

Abbiamo osservato un problema in Postgresql in quanto non utilizza il multi core della CPU per una singola query. Ad esempio, ho 8 core in cpu. Abbiamo 40 milioni di voci nella tabella stock.move. Quando applichiamo una query di grandi dimensioni in una singola connessione di database per generare reporting &, osserviamo dal lato backend, vediamo che solo un core è utilizzato al 100%, mentre tutti gli altri 7 sono gratuiti. A causa di questa query il tempo di esecuzione impiega più tempo e il nostro sistema odoo è lento. Mentre il problema è all'interno del nucleo postgresql. Se in ogni caso possiamo condividere una query tra due o più core di quanto non possiamo ottenere un incremento delle prestazioni nell'esecuzione di query postgresql.Motivo per cui Odoo è lento quando ci sono enormi dati all'interno del database

Sono certo che risolvendo l'esecuzione di query parallele, possiamo rendere le prestazioni di Odoo ancora più veloci. Qualcuno ha qualche tipo di suggerimenti per quanto riguarda questo ??

----------- * Modifica questa domanda per mostrare si risponde da PostgreSQL Nucleo comitato * ---------

Qui sto inviando il risposta che ho ricevuto da uno dei principali contributori del database Postgresql. (Spero che queste informazioni saranno utili)

Ciao Hiren,

Si prevede comportarsi. PostgreSQL non supporta CPU parallela per singola query . Questo argomento è in fase di sviluppo elevato e, probabilmente, questa funzionalità sarà in versione pianificata 9.6 ~ settembre 2016. Ma la tabella con righe 40M non è troppo grande, quindi probabilmente più CPU non dovrebbe aiutare troppo (c'è un po ' overhead con avvio e elaborazione della query CPU multipla ). Devi usare alcuni trucchi usuali come la vista materializzata, le preagregazioni , ... l'idea principale di questi trucchi - non provare a ripetere lo stesso calcolo con lo . Verifica lo stato di PostgreSQL - index, elaborazione del vuoto, statistiche, .. Controlla la velocità di I/O. Controlla la configurazione di PostgreSQL - shared_buffers, work_mem. Alcune query possono essere lento a causa di cattive stime - controllare una spiegazione delle query lente. Ci sono alcuni strumenti che possono interrompere alcune query a più query e avviare l'esecuzione parallela , ma non l'ho usata. https://launchpad.net/stado http://www.pgpool.net/docs/latest/tutorial-en.html#parallel

saluti Pavel Stehule

risposta

2

Beh, penso che tu abbia la risposta c'è - PostgreSQL attualmente non supporta query parallele ancora. Il consiglio generale per le prestazioni è molto appropriato e si potrebbe anche considerare il partizionamento, che potrebbe consentire di troncare le partizioni anziché eliminare parti di una tabella o aumentare l'allocazione della memoria. È impossibile dare buoni consigli su questo senza saperne di più sulla query.

Avendo esperienza con questo tipo di problema su sistemi Oracle di query non paralleli, suggerisco di considerare anche l'hardware che si sta utilizzando.

La tendenza moderna verso CPU con molti core è di grande aiuto per i server Web o altri sistemi multi-processo con molte transazioni di breve durata, ma si dispone di un sistema di elaborazione dati con poche e grandi transazioni. È necessario l'hardware corretto per supportarlo. Le CPU con meno core e più potenti sono una scelta migliore e si deve prestare attenzione alla larghezza di banda per la memoria e l'archiviazione.

Ecco perché i sistemi ingegnerizzati sono stati popolari con i big data e il data warehousing.

+0

Postgresql è veloce e migliore, nel mondo molte app funzionano su database PostgreSQL e funzionano bene, ma a causa dell'ORM di Odoo e per l'architettura sono molto lente. Anche molte chiamate ripetute e evitate. Tramite lo sforzo della comunità, il proprietario di odoo lo produce e concesso in licenza ora privatamente per le imprese e ora la comunità non è abbastanza pronta per i loro scarsi problemi di prestazioni. Avevo ospitato personalmente odoo con le proprie correzioni e ottimizzazioni senza modifiche sul database di Postgres, lavorando bene e meglio + velocemente. –

+0

@TejasTank hai qualche tutorial che suggerisci? – m3asmi

+0

@ m3asmi La sua abilità privata di configurare il server connette snippetbucket.com per assistenza. –

Problemi correlati