Re: [postgresql-it] out of memory
- From: Enrico Bianchi <enrico.bianchi@xxxxxxxxx>
- To: postgresql-it <postgresql-it@xxxxxxxxxxxxx>
- Date: Thu, 15 Jan 2015 23:33:56 +0100
On 01/15/2015 07:06 PM, Chris Mair wrote:
- puoi provare a "semplificare" la query, per vedere se c'e` un punto
oltre il quale l'errore scompare?
Posso dirti che, se tolgo l'IN (che, per 64 record, secondo il planner
genera 6mln di record)ed uso un solo valore, la query viene eseguita
correttamente. Pero`, gia` se metto 5 dei valori riportati dalla
subquery, esplode tutto (il query plan dice che dovrebbe restituire
336500 record)
- puoi tenere d'occhio top/free/slabtop mentre esegui la query? vedi
il processo worker che continua a crescere, Linux a iniziare a usare
swap e poi il processo scomparire nel momento che hai l'error o e` un
altro pattern, tipo l'error appare subito?
Ecco, questo e` un altro punto che non riesco a capire. Per intenderci,
questo e` un vmstat lanciato mentre stava estraendo 336500 record:
procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----
r b swpd free buff cache si so bi bo in cs us sy
id wa st
0 0 0 64467148 16888 996464 0 0 5 1 75 40 5
1 94 0 0
2 0 0 64365252 16888 996464 0 0 0 0 734 167 13
2 82 0 2
1 0 0 63471488 16888 996464 0 0 0 1 1102 176 21
4 75 0 0
1 0 0 62257732 16888 996464 0 0 0 12 1070 160 21
4 74 0 2
1 0 0 60939172 16888 996464 0 0 0 0 1072 158 21
4 75 0 0
1 0 0 59627188 16888 996464 0 0 0 6 1071 161 21
4 75 0 0
1 0 0 58324692 16888 996464 0 0 0 0 1069 152 21
4 75 0 0
1 0 0 57002732 16888 996464 0 0 0 0 1049 133 21
4 75 0 0
1 0 0 55671200 16888 996464 0 0 0 1 1076 152 21
4 75 0 0
1 0 0 54316064 16896 996460 0 0 0 4 1056 140 21
4 75 0 0
1 0 0 52939020 16896 996464 0 0 0 0 1052 140 22
3 75 0 0
1 0 0 51558644 16896 996464 0 0 0 5 1069 156 21
4 75 0 0
1 0 0 50188544 16896 996464 0 0 0 0 1069 156 21
4 75 0 0
0 0 0 64464804 16896 996476 0 0 0 0 557 269 6
7 88 0 0
L'idea che mi sono fatto, ad occhio, e` che va in OOM quando deve
*mostrare* i dati, non quando li estrae
- imagino che il database sia grande | segreto | e` una storia
complicata altrimenti mi piacerebbe provare a riprodurre l'errore su
una mia macchina (la butto li`...)
In teoria non c'e` nulla di segreto, sono dati estratti da pagine di
Facebook e questa query era un primo passo per elaborarli, piu` che
altro direi che sia una storia complicata portarli fuori
Enrico
Other related posts: