Received: from maia.hub.org (maia-5.hub.org [200.46.204.29]) by mail.postgresql.org (Postfix) with ESMTP id C92A91337990 for ; Sat, 7 May 2011 20:46:49 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.29]) (amavisd-maia, port 10024) with ESMTP id 10841-04 for ; Sat, 7 May 2011 23:46:41 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mailserver.dialdata.com.ar (dialdata.com.ar [200.49.210.5]) by mail.postgresql.org (Postfix) with ESMTP id 6D6D2133655C for ; Sat, 7 May 2011 20:46:39 -0300 (ADT) Received: from mailserver.dialdata.com.ar (localhost [127.0.0.1]) by mailserver.dialdata.com.ar (Postfix) with ESMTP id 0FDB52E1CF; Sat, 7 May 2011 20:46:33 -0300 (ART) Received: from 190-49-189-125.speedy.com.ar ([190.49.189.125]) by mailserver.dialdata.com.ar:81 with HTTP (HTTP/1.1 POST); Sat, 07 May 2011 20:46:32 -0300 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=_07484997ecc6d97e6fc994314a87b521" Date: Sat, 07 May 2011 20:46:32 -0300 From: Ezequiel Lovelle To: Fernando Hevia Cc: Arpug Subject: Re: Consulta Organization: Teleservicios y Marketing S.A In-Reply-To: References: <7e584a1df61e628d7b16d01a27d1a9d6@dialdata.com.ar> <3c82fe28fca089df4df103ce6823b1fd@dialdata.com.ar> <589af2fcfb2678bdf4db3045f370af4b@dialdata.com.ar> Message-ID: <6726d28cf45b54e9d92355257775977c@dialdata.com.ar> X-Sender: elovelle@dialdata.com.ar User-Agent: DDM/0.5 X-DDM-MailScanner-Information: DDM X-DDM-MailScanner-ID: 0FDB52E1CF.A4DAC X-DDM-MailScanner: Found to be clean X-DDM-MailScanner-From: elovelle@dialdata.com.ar X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0.791 tagged_above=-10 required=5 tests=BAYES_50=0.8, HTML_MESSAGE=0.001, T_RP_MATCHES_RCVD=-0.01 X-Spam-Level: X-Archive-Number: 201105/9 X-Sequence-Number: 593 --=_07484997ecc6d97e6fc994314a87b521 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Ok, con fsync=on directamente a postgres me tardo: #time php script.php real 5m34.471s user 0m2.527s sys 0m1.917s procs memory page disks faults cpu r b w avm fre flt re pi po fr sr ad4 ad6 in sy cs us sy id 0 0 0 2336M 7457M 2 0 0 0 0 0 356 356 1260 3185 10173 1 1 98 0 0 0 2336M 7457M 2 0 0 0 0 0 435 435 1515 3853 12193 1 1 98 0 0 0 2336M 7457M 3 0 0 0 0 0 531 532 1843 4668 14781 0 1 98 0 0 0 2336M 7457M 4 0 0 0 0 0 751 752 2605 6544 20742 1 1 98 0 0 0 2336M 7457M 4 0 0 0 0 0 925 923 3238 7997 25565 1 2 98 0 0 0 2336M 7457M 3 0 0 0 0 0 627 628 2183 5503 17403 0 1 99 0 0 0 2336M 7457M 4 0 0 0 4 0 641 641 2193 5575 17673 1 1 98 0 0 0 2336M 7456M 3 0 0 0 0 0 682 681 2340 5949 18812 1 1 98 0 0 0 2336M 7456M 4 0 0 0 0 0 681 683 2382 5964 18988 1 2 98 0 0 0 2336M 7456M 3 0 0 0 0 0 628 628 2180 5491 17401 0 2 98 0 0 0 2336M 7456M 2 0 0 0 0 0 545 544 1906 4787 15182 0 1 99 0 0 0 2336M 7456M 3 0 0 0 8 0 552 552 1910 4829 15343 1 1 98 0 0 0 2336M 7456M 3 0 0 0 0 0 457 458 1608 4092 13009 0 1 99 0 0 0 2336M 7456M 1 0 0 0 0 0 405 403 1409 3596 11401 0 1 98 0 0 0 2336M 7456M 41 0 0 0 0 0 222 224 790 2078 6525 0 0 100 0 0 0 2336M 7456M 3 0 0 0 0 0 693 693 2403 6102 19174 1 1 98 0 0 0 2336M 7456M 5 0 0 0 0 0 828 827 2910 7228 23070 1 2 97 0 0 0 2336M 7456M 3 0 0 0 4 0 715 716 2486 6238 19804 1 3 97 0 0 0 2336M 7456M 4 0 0 0 0 0 733 733 2544 6395 20261 0 1 98 0 0 0 2336M 7456M 636 0 0 0 656 0 532 532 1833 4879 14835 1 1 98 0 0 0 2336M 7455M 2 0 0 0 8 0 598 598 2067 5180 16650 1 1 98 0 0 0 2336M 7455M 3 0 0 0 0 0 667 667 2316 5865 18498 1 1 98 0 0 0 2336M 7455M 6 0 0 0 0 0 880 879 3048 7688 24303 1 2 97 0 0 0 2336M 7455M 27 0 0 0 0 0 758 759 2608 6650 20957 1 1 98 0 0 0 2336M 7455M 4 0 0 0 6 0 715 713 2457 6154 19698 1 1 98 0 0 0 2336M 7455M 9 0 0 0 0 0 176 178 632 1679 5289 0 0 100 0 0 0 2336M 7455M 1 0 0 0 0 0 412 410 1442 3660 11588 1 1 98 0 0 0 2336M 7455M 3 0 0 0 0 0 492 494 1712 4333 13768 1 1 98 0 0 0 2336M 7455M 1 0 0 0 0 0 330 330 1167 2946 9470 0 1 98 0 0 0 2336M 7455M 3 0 0 0 0 0 410 410 1441 3657 11561 0 1 99 0 0 0 2336M 7455M 3 0 0 0 0 0 692 691 2401 6043 19114 0 1 98 1 0 0 2336M 7455M 4 0 0 0 0 0 726 726 2526 6316 20039 1 1 98 0 0 0 2336M 7455M 3 0 0 0 0 0 686 687 2393 5999 19103 1 1 98 0 0 0 2336M 7454M 4 0 0 0 0 0 702 702 2427 6121 19372 1 2 98 0 0 0 2336M 7454M 5 0 0 0 0 0 681 679 2351 5950 18803 0 2 98 0 0 0 2336M 7454M 4 0 0 0 4 0 718 719 2479 6240 19789 0 1 99 0 0 0 2336M 7454M 37 0 0 0 0 0 666 667 2325 5835 18548 1 1 98 0 0 0 2336M 7454M 6 0 0 0 0 0 746 744 2587 6540 20625 1 2 98 0 0 0 2336M 7454M 8 0 0 0 0 0 810 810 2844 7114 22456 1 2 97 0 0 0 2336M 7454M 632 0 0 0 649 0 496 497 1742 4577 13957 0 1 99 0 0 0 2328M 7455M 265 0 0 0 662 0 189 189 677 1795 5696 0 0 99 0 0 0 2328M 7455M 0 0 0 0 0 0 0 0 10 171 456 0 0 100 0 0 0 2363M 7454M 414 0 0 0 161 0 4 4 33 6478 601 2 0 98 0 0 0 2363M 7454M 0 0 0 0 0 0 0 0 7 151 456 0 0 100 0 0 0 2363M 7454M 0 0 0 0 0 0 0 0 18 149 575 0 0 100 0 0 0 2363M 7454M 0 0 0 0 0 0 3 3 10 147 485 0 0 100 0 0 0 2363M 7454M 0 0 0 0 0 0 0 0 6 149 465 0 0 100 0 0 0 2363M 7454M 2 0 0 0 0 0 0 0 7 152 489 0 0 100 0 0 0 2363M 7454M 0 0 0 0 4 0 2 2 24 149 604 0 0 100 0 0 0 2363M 7454M 0 0 0 0 8 0 9 9 22 147 562 0 0 100 LOGS May 7 20:40:54 pgsql1 postgres[2024] [99998-1] LOG: statement: INSERT INTO tabla (aa, bb, cc, dd, ee) VALUES ('99997 ','99997','99997','99997','99997') May 7 20:40:54 pgsql1 postgres[2024] [99999-1] LOG: statement: INSERT INTO tabla (aa, bb, cc, dd, ee) VALUES ('99998 ','99998','99998','99998','99998') May 7 20:40:54 pgsql1 postgres[2024] [100000-1] LOG: statement: INSERT INTO tabla (aa, bb, cc, dd, ee) VALUES ('9999 9','99999','99999','99999','99999') May 7 20:40:54 pgsql1 postgres[2024] [100001-1] LOG: statement: INSERT INTO tabla (aa, bb, cc, dd, ee) VALUES ('1000 00','100000','100000','100000','100000') May 7 20:41:52 pgsql1 postgres[1954] [5-1] LOG: checkpoint starting: time May 7 20:44:32 pgsql1 postgres[1954] [6-1] LOG: checkpoint complete: wrote 799 buffers (0.3%); 0 transaction log file(s) added, 0 removed, 0 recycled; write =160.550 s, sync=0.008 s, total=160.562 s En los logs no me aparece gran cosa, la verdad que estoy medio perdido. Saludos On Sat, 7 May 2011 19:40:37 -0300, Fernando Hevia wrote: > Ojo: Deshabilitar fsync aplica únicamente en casos muy especiales, como la restauración inicial de una base de datos. Es un modo de operación insegura y puede provocar corrupción en la base si hay un crash o corte de luz. > > Los tiempos que te pasé son con fsync = on. > > Fijate los logs y vmstat que te arrojan con fsync =on mientras corres el test. > > 2011/5/7 Ezequiel Lovelle > >> Puse fsync = off >> >> #time php script.php >> >> real 0m50.592s >> user 0m1.744s >> sys 0m1.243s >> >> Mejoro bastante, en cuanto pueda te paso lo de los logs, ¿alguna idea de algún otro parámetro para tocar? >> >> On Sat, 7 May 2011 17:09:59 -0300, Fernando Hevia wrote: >> >>> 2011/5/7 Ezequiel Lovelle >>> >>>> Gracias por tu respuesta, se que no es una manera eficiente pero es que quiero testear la bbdd en todos los aspectos. >>>> >>>> Te comento, cuando lo hago desde la consola de postgres me da lo siguiente: >>>> >>>> bbdd=> timing >>>> El despliegue de duración está activado. >>>> bbdd=> INSERT INTO tabla (aa, bb, cc, dd, ee) VALUES (generate_series(1, 100000),generate_series(1, 100000),generate_series(1, 100000),generate_series(1, 100000),generate_series(1, 100000)); >>>> INSERT 0 100000 >>>> Duración: 1486,699 ms >>>> >>>> Ahí veo que me funciono perfecto, me ganas por unos ms jeje. (destaco que en realidad esto es todo detrás de un pgpool conectado con 3 nodos, no a una bbdd postgres directa) Pero el resultado fue bueno. >>>> >>>> El problema es cuando lo hago con php desde un webserver, me tarda lo siguiente: >>>> >>>> #time php script.php >>>> >>>> real 22m21.733s >>>> user 0m1.846s >>>> sys 0m1.902s >>>> >>>> Un problema de red no creo que sea ya que todos estos servers de testeo estan en una red separada de la mia en un switch de 100M. >>>> >>>> Lo que me hace pensar que el problema es la velocidad del procesamiento de php en el webserver... cosa que me parace muy rara. Igualmente voy a hacer el mismo script en bash o perl aver si es un problema de php. >>> >>> 22 minutos es una barbaridad. >>> Habilitá log_checkpoints y log_lock_waits en postgres.conf. >>> Fijate que dicen los logs de postgres mientras ejecutás los inserts. >>> Y corré unVMSTAT 1en el server de la base mientras ejecutás el script. >>> >>> Alguna pista tiene que salir de esto. >>> Slds., >>> Fernando. >>> >>>> Links: ------ [1] mailto:elovelle@dialdata.com.ar [2] mailto:elovelle@dialdata.com.ar --=_07484997ecc6d97e6fc994314a87b521 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=UTF-8

Ok, con fsync=3Don directamente a postgres me tardo:


#t= ime php script.php
real    5m34.471s
user &nb= sp;  0m2.527s
sys     0m1.917s

&nb= sp;procs      memory     = page           &nbs= p;        disks     = faults         cpu
 r b w=      avm    fre   flt  re=   pi  po    fr  sr ad4 ad6   in&nbs= p;  sy   cs us sy id
 0 0 0   2336M = ; 7457M     2   0   0   0=      0   0 356 356 1260 3185 10173  1&nb= sp; 1 98
 0 0 0   2336M  7457M   &n= bsp; 2   0   0   0     0&= nbsp;  0 435 435 1515 3853 12193  1  1 98
 0 0 0&n= bsp;  2336M  7457M     3   0 &= nbsp; 0   0     0   0 531 532 1843 = 4668 14781  0  1 98
 0 0 0   2336M  7457= M     4   0   0   0 =     0   0 751 752 2605 6544 20742  1  1 = 98
 0 0 0   2336M  7457M     4=    0   0   0     0 &= nbsp; 0 925 923 3238 7997 25565  1  2 98
 0 0 0 &n= bsp; 2336M  7457M     3   0   = 0   0     0   0 627 628 2183 5503 1= 7403  0  1 99
 0 0 0   2336M  7457M = ;    4   0   0   0  =    4   0 641 641 2193 5575 17673  1  1 98
 0 0 0   2336M  7456M     3 =   0   0   0     0   = 0 682 681 2340 5949 18812  1  1 98
 0 0 0   2= 336M  7456M     4   0   0 = ;  0     0   0 681 683 2382 5964 18988&n= bsp; 1  2 98
 0 0 0   2336M  7456M  = ;   3   0   0   0   =   0   0 628 628 2180 5491 17401  0  2 98
&nbs= p;0 0 0   2336M  7456M     2  = 0   0   0     0   0 545 = 544 1906 4787 15182  0  1 99
 0 0 0   2336M&n= bsp; 7456M     3   0   0  = ; 0     8   0 552 552 1910 4829 15343  1=   1 98
 0 0 0   2336M  7456M   = ;  3   0   0   0    = 0   0 457 458 1608 4092 13009  0  1 99
 0 0 = 0   2336M  7456M     1   0&nbs= p;  0   0     0   0 405 403 14= 09 3596 11401  0  1 98
 0 0 0   2336M  7= 456M    41   0   0   0 &n= bsp;   0   0 222 224  790 2078 6525  0  = 0 100
 0 0 0   2336M  7456M    = ; 3   0   0   0     0&nbs= p;  0 693 693 2403 6102 19174  1  1 98
 0 0 0 = ;  2336M  7456M     5   0 &nbs= p; 0   0     0   0 828 827 2910 722= 8 23070  1  2 97
 0 0 0   2336M  7456M&n= bsp;    3   0   0   0 &nb= sp;   4   0 715 716 2486 6238 19804  1  3 97<= br /> 0 0 0   2336M  7456M     4&nb= sp;  0   0   0     0 &nbs= p; 0 733 733 2544 6395 20261  0  1 98
 0 0 0  = ; 2336M  7456M   636   0   0  = 0   656   0 532 532 1833 4879 14835  1  1 98=
 0 0 0   2336M  7455M     2&n= bsp;  0   0   0     8 &nb= sp; 0 598 598 2067 5180 16650  1  1 98
 0 0 0 &nbs= p; 2336M  7455M     3   0   0&= nbsp;  0     0   0 667 667 2316 5865 184= 98  1  1 98
 0 0 0   2336M  7455M &= nbsp;   6   0   0   0  &n= bsp;  0   0 880 879 3048 7688 24303  1  2 97
=  0 0 0   2336M  7455M    27   = 0   0   0     0   0 758 7= 59 2608 6650 20957  1  1 98
 0 0 0   2336M&nb= sp; 7455M     4   0   0  = 0     6   0 715 713 2457 6154 19698  1&= nbsp; 1 98
 0 0 0   2336M  7455M   =   9   0   0   0     = 0   0 176 178  632 1679 5289  0  0 100
 = 0 0 0   2336M  7455M     1   0=    0   0     0   0 412 41= 0 1442 3660 11588  1  1 98
 0 0 0   2336M&nbs= p; 7455M     3   0   0   = 0     0   0 492 494 1712 4333 13768  1&n= bsp; 1 98
 0 0 0   2336M  7455M   &= nbsp; 1   0   0   0     0=    0 330 330 1167 2946 9470  0  1 98
 0 0 0&n= bsp;  2336M  7455M     3   0 &= nbsp; 0   0     0   0 410 410 1441 = 3657 11561  0  1 99
 0 0 0   2336M  7455= M     3   0   0   0 =     0   0 692 691 2401 6043 19114  0  1 = 98
 1 0 0   2336M  7455M     4=    0   0   0     0 &= nbsp; 0 726 726 2526 6316 20039  1  1 98
 0 0 0 &n= bsp; 2336M  7455M     3   0   = 0   0     0   0 686 687 2393 5999 1= 9103  1  1 98
 0 0 0   2336M  7454M = ;    4   0   0   0  =    0   0 702 702 2427 6121 19372  1  2 98
 0 0 0   2336M  7454M     5 =   0   0   0     0   = 0 681 679 2351 5950 18803  0  2 98
 0 0 0   2= 336M  7454M     4   0   0 = ;  0     4   0 718 719 2479 6240 19789&n= bsp; 0  1 99
 0 0 0   2336M  7454M  = ;  37   0   0   0    = ; 0   0 666 667 2325 5835 18548  1  1 98
 0 0= 0   2336M  7454M     6   0&nb= sp;  0   0     0   0 746 744 2= 587 6540 20625  1  2 98
 0 0 0   2336M  = 7454M     8   0   0   0&n= bsp;    0   0 810 810 2844 7114 22456  1 = ; 2 97
 0 0 0   2336M  7454M   632 =   0   0   0   649   0 496 497 = 1742 4577 13957  0  1 99
 0 0 0   2328M = 7455M   265   0   0   0  = ; 662   0 189 189  677 1795 5696  0  0 99
&nb= sp;0 0 0   2328M  7455M     0  = ; 0   0   0     0   0&nbs= p;  0   0   10  171  456  0  0= 100
 0 0 0   2363M  7454M   414 &n= bsp; 0   0   0   161   0  = ; 4   4   33 6478  601  2  0 98
&nb= sp;0 0 0   2363M  7454M     0  = ; 0   0   0     0   0&nbs= p;  0   0    7  151  456  0&nb= sp; 0 100
 0 0 0   2363M  7454M   &= nbsp; 0   0   0   0     0=    0   0   0   18  149  5= 75  0  0 100
 0 0 0   2363M  7454M =     0   0   0   0  &= nbsp;  0   0   3   3   10 = ; 147  485  0  0 100
 0 0 0   2363M = ; 7454M     0   0   0   0=      0   0   0   0 &= nbsp;  6  149  465  0  0 100
 0 0 0 = ;  2363M  7454M     2   0 &nbs= p; 0   0     0   0   0&nb= sp;  0    7  152  489  0  0 100
 0 0 0   2363M  7454M     0 =   0   0   0     4   = 0   2   2   24  149  604  0&nb= sp; 0 100
 0 0 0   2363M  7454M   &= nbsp; 0   0   0   0     8=    0   9   9   22  147  5= 62  0  0 100


LOGS


May  7 20:40:54 pgsql1 postgres[2024] [99998-1] LOG:  st= atement: INSERT INTO tabla (aa, bb, cc, dd, ee) VALUES ('99997
','9999= 7','99997','99997','99997')
May  7 20:40:54 pgsql1 postgres[2024]= [99999-1] LOG:  statement: INSERT INTO tabla (aa, bb, cc, dd, ee) VAL= UES ('99998
','99998','99998','99998','99998')
May  7 20:40:= 54 pgsql1 postgres[2024] [100000-1] LOG:  statement: INSERT INTO tabla= (aa, bb, cc, dd, ee) VALUES ('9999
9','99999','99999','99999','99999'= )
May  7 20:40:54 pgsql1 postgres[2024] [100001-1] LOG:  sta= tement: INSERT INTO tabla (aa, bb, cc, dd, ee) VALUES ('1000
00','1000= 00','100000','100000','100000')
May  7 20:41:52 pgsql1 postgres[1= 954] [5-1] LOG:  checkpoint starting: time
May  7 20:44:32 p= gsql1 postgres[1954] [6-1] LOG:  checkpoint complete: wrote 799 buffer= s (0.3%); 0 transaction log file(s) added, 0 removed, 0 recycled; write
=3D160.550 s, sync=3D0.008 s, total=3D160.562 s

En los logs no= me aparece gran cosa, la verdad que estoy medio perdido.

Saludo= s

On Sat, 7 May 2011 19:40:37 -0300, Fernando Hevia wrote:

Ojo: Deshabilitar fsync aplica únicamente en casos muy especiales= , como la restauración inicial de una base de datos. Es un modo de o= peración insegura y puede provocar corrupción en la base si h= ay un crash o corte de luz.

Los tiempos que te pasé son con fsync =3D on.
Fijate los logs y vmstat que te arrojan con fsync =3Don mientras corre= s el test.


2011/5/7 Ezequiel Lovelle <elovelle@dialdata.com.ar>

Puse fsync =3D off

#time php script.php

real    0m50.592s
user    0m1.744ssys     0m1.243s

Mejoro bastante, en cuanto pueda te paso lo de los logs, ¿al= guna idea de algún otro parámetro para tocar?

On Sat, 7 May 2011 17:09:59 -0300, Fernando Hevia wrote:

 



2011/5/7 Ezequiel Lovelle <elovelle@dialdata.com.ar>

Gracias por tu respuesta, se que no es una manera eficien= te pero es que quiero testear la bbdd en todos los aspectos.

Te comento, cuando lo hago desde la consola de postgres me da lo siguien= te:

bbdd=3D> \timing
El despliegue de duración est&Atil= de;¡ activado.
bbdd=3D> INSERT INTO tabla (aa, bb, cc, d= d, ee) VALUES (generate_series(1, 100000),generate_series(1, 100000),genera= te_series(1, 100000),generate_series(1, 100000),generate_series(1, 100000))= ;
INSERT 0 100000
Duración: 1486,699 ms

Ahí veo que me funciono perfecto, me ganas por unos ms jeje. (des= taco que en realidad esto es todo detrás de un pgpool conectado = ;con 3 nodos, no a una bbdd postgres directa) Pero el resultado fue bueno= =2E

El problema es cuando lo hago con php desde un webserver, me tarda = lo siguiente:

#time php script.php

real    22m21.733s
user    0m1.846ssys     0m1.902s

Un problema de red no creo que sea ya que todos estos servers de testeo = estan en una red separada de la mia en un switch de 100M.

Lo que me hace pensar que el problema es la velocidad del procesamiento = de php en el webserver... cosa que me parace muy rara. Igualmente voy = a hacer el mismo script en bash o perl aver si es un problema de php= =2E

22 minutos es una barbaridad. 
Habilitá log_checkpoints y log_lock_waits en postgres.conf.
Fijate que dicen los logs de postgres mientras ejecutás los ins= erts. 
Y corré unvmstat 1en el server de la base mien= tras ejecutás el script.
Alguna pista tiene que salir de esto.
Slds.,
Fernando.

 

 

--=_07484997ecc6d97e6fc994314a87b521--