id_file | id_layout |              md5sum              |                                file_name                                 | time_start | time_end | validated | file_path | file_size |         created_at         | created_by | updated_at | updated_by | loaded | rows_ok | rows_ignored | clean | imported | imported_rows |                                    imported_status                                     | idorigem | reutilizar | query<br>

---------+-----------+----------------------------------+--------------------------------------------------------------------------+------------+----------+-----------+-----------+-----------+----------------------------+------------+------------+------------+--------+---------+--------------+-------+----------+---------------+----------------------------------------------------------------------------------------+----------+------------+-------<br>

       3 |           | changeme_too                     | /dados/work/OUT_PS_20100813_3.txt.conv.utf8                              |            |          | t         |           |           | 2010-08-19 11:27:06.808689 |          1 |            |            | t      |         |              | t     | f        |               | cadastros:1106160, emails:839833, enderecos:1063774, telefones:681226, updates:34815   |        2 | t          | f<br>

                                                                                                                                                                                                                                                                                                                                        : Registros lidos: 1211132<br>

       4 |           | 7e42935177faec642955fe13b17a8291 | /dados/work/OUT_F5_20100814_1.txt.conv.utf8                              |            |          | t         |           |           | 2010-08-20 11:03:36.228324 |          1 |            |            | t      |         |              | t     | f        |               | cadastros:754023, emails:919402, enderecos:587103, telefones:669483, updates:55941     |        3 | t          | f<br>

                                                                                                                                                                                                                                                                                                                                        : Registros lidos: 1379811<br>

       5 |           | f49957319ac7b1c0839d1f7d19ce8ab2 | /dados/work/OUT_F5_20100814_2.txt.conv.utf8                              |            |          | t         |           |           | 2010-08-20 14:46:31.645924 |          1 |            |            | t      |         |              | t     | f        |               | cadastros:569141, emails:840611, enderecos:540197, telefones:749958, updates:40869     |        3 | t          | f<br>

                                                                                                                                                                                                                                                                                                                                        : Registros lidos: 1351801<br>

       6 |           | e4584ab99210780c0e846a28499692df | /dados/work/OUT_PV_20100821.txt.conv.utf8                                |            |          | t         |           |           | 2010-08-23 15:55:18.155197 |          1 |            |            | t      |         |              | t     | f        |               | cadastros:236929, emails:172333, enderecos:292073, telefones:316859, updates:661549    |        1 | t          | f<br>

                                                                                                                                                                                                                                                                                                                                        : Registros lidos: 965113<br>

       8 |           | f10cd34b302735c3265dc3479e405688 | /dados/work/OUT_ERROS_F5_20100829.txt.conv.utf8                          |            |          | t         |           |           | 2010-08-30 10:19:46.501998 |          1 |            |            | t      |         |              | t     | f        |               | cadastros:59, emails:78, enderecos:46, telefones:50, updates:1                         |        3 | t          | f<br>

                                                                                                                                                                                                                                                                                                                                        : Registros lidos: 98<br>

       9 |           | f28e5d8f4eeadf1ddcdbf33ecb06036f | /dados/work/OUT_ERROS_PS_20100829.txt.conv.utf8                          |            |          | t         |           |           | 2010-08-30 10:21:10.03357  |          1 |            |            | t      |         |              | t     | f        |               | cadastros:9, emails:9, enderecos:0, telefones:0, updates:0                             |        2 | t          | f<br>

                                                                                                                                                                                                                                                                                                                                        : Registros lidos: 10<br>

      10 |           | ade079c2690f73fc19a7c4b991c214d5 | /dados/postgres/work_renato/OUT_REVISTA_FALTANTES_20100903.TXT.conv.utf8 |            |          | t         |           |           | 2010-09-03 16:14:10.868327 |          1 |            |            | t      |         |              | t     | f        |               | cadastros:1486, emails:1816, enderecos:1789, telefones:1325, updates:1208              |        1 | t          | f<br>

                                                                                                                                                                                                                                                                                                                                        : Registros lidos: 2977<br>

       7 |           | 07d84cfe2ef7742d8b6611ef38cef9eb | /dados/work/OUT_REVISTA_20100829.txt.conv.utf8                           |            |          | t         |           |           | 2010-08-30 10:05:45.124084 |          1 |            |            | t      |         |              | t     | f        |               | cadastros:0, emails:0, enderecos:0, telefones:0, updates:211503                        |        1 | t          | f<br>

                                                                                                                                                                                                                                                                                                                                        : Registros lidos: 256194<br>

       1 |           | 6fa7b50c205882ce8f03e7b6813ad713 | /dados/work/OUT_PS_20100813_1.txt.conv.utf8                              |            |          | t         |           |           | 2010-08-19 10:42:46.460073 |          1 |            |            | t      |         |              | t     | f        |               | cadastros:1758010, emails:326527, enderecos:1137104, telefones:1328614, updates:7312   |        2 | t          | f<br>

                                                                                                                                                                                                                                                                                                                                        : Registros lidos: 1799958<br>

       2 |           | changeme                         | /dados/work/OUT_PS_20100813_2.txt.conv.utf8                              |            |          | t         |           |           | 2010-08-19 11:26:31.105302 |          1 |            |            | t      |         |              | t     | f        |               | cadastros:1666106, emails:1071933, enderecos:1552752, telefones:1141629, updates:41893 |        2 | t          | f<br>

                                                                                                                                                                                                                                                                                                                                        : Registros lidos: 1783627<br>

<br><br>gbb<br><br>idvian<br><br><br><br>Tempo (grande!) de liberação de memoria no perl<br><br>Pessoal,<br><br>Tinha um processo aqui (deduplicação de registros do banco) que rodava com alguns milhores de registros,<br>
ai acabava acabando a RAM (4 GB, e chora, não vão por mais...),<br>
O processo fazia mais ou menos assim:<br><br>Carrega do banco todos as pessoas com a letra A<br>Sobe em RAM<br>Loop num outro select nos registros com a lenta A<br>compara com o com a RAM<br>&quot;Libera da ram&quot; (undef nas variaveis...)<br>

<br>E assim por diante até o Z<br><br><br>Então, eu resolvi alterar, pois depois do primeiro processamento, a maquina ja estava sem RAM.<br>Sei que a RAM não é liberada, mas fica &#39;reservada&#39; para o proprio perl. Mas por segunraca, fiz um processamento ficar assim:<br>

<br>Perl contralador:<br>--&gt; perl filho fazendo processamento da letra A (sobe na ram, processa, cospe a saida)<br>perl pai lê a saida e pega algumas variaveis e continua...<br><br><br>O processo esta funcionando (em desenv, rs!)<br>

<br>Mas agora, rodando com os dados Full num banco de homologação na maquina de producao (rs!)<br>O processo rodou normalmente até a letra B por exemplo (na verdade é de 0 a 15 hexadecimal) e até a &quot;letra&quot; 4 não há um grande volume.<br>

<br>O perl rodou, eu deu lida no log, e aconteceu isso:<br><br>2010-09-28 11:36:43 - Iniciando aplicacao [Importador Dedup v 1.0]...<br>2010-09-28 11:36:43 - Lendo arquivo de configuracao: conf/importador.pl.conf<br>2010-09-28 11:36:43 - Conectando-se no banco de dados nestle_teste_dedup_novo@yamaha<br>

2010-09-28 11:36:43 - Carregando id_file 1...<br>2010-09-28 11:36:43 - START: executaQuery.. letras: 4<br>2010-09-28 11:42:49 - END: executaQuery..<br>2010-09-28 11:42:49 - START: Loop DBM..<br>2010-09-28 11:42:49 - 10000<br>

2010-09-28 11:42:50 - 20000<br>...<br>2010-09-28 11:55:38 - 2870000<br>2010-09-28 11:55:52 - END: Loop DBM (READ = 2873193)..782.77837896347 segundos...<br>2010-09-28 11:57:54 - LoadDatabase: 1271 wallclock secs (235.19 usr + 19.15 sys = 254.34 CPU)<br>

2010-09-28 11:57:54 - Criando arquivo ./tmp//cadastros_insert.22493.copy...<br>2010-09-28 11:57:54 - Criando arquivo ./tmp//enderecos_insert.22493.copy...<br>2010-09-28 11:57:54 - Criando arquivo ./tmp//cadastros_updated.22493.copy...<br>

2010-09-28 11:57:54 - Criando arquivo ./tmp//telefones_ids_insert.22493.copy...<br>2010-09-28 11:57:54 - Criando arquivo ./tmp//enderecos_ids_insert.22493.copy...<br>2010-09-28 11:57:54 - Criando arquivo ./tmp//cadastros_ids_insert.22493.copy...<br>

2010-09-28 11:57:54 - Criando arquivo ./tmp//telefones_insert.22493.copy...<br>2010-09-28 11:57:54 - Criando arquivo ./tmp//emails_ids_insert.22493.copy...<br>2010-09-28 11:57:54 - Criando arquivo ./tmp//emails_insert.22493.copy...<br>

2010-09-28 11:57:55 - Current val for cadastros_ids_seq is 6227684<br>2010-09-28 11:57:55 - Current val for emails_id_email_seq is 4215242<br>2010-09-28 11:57:55 - Current val for enderecos_id_endereco_seq is 5205954<br>
2010-09-28 11:57:55 - Current val for telefones_id_telefone_seq is 4908144<br>
2010-09-28 11:57:55 - Obtendo todos os registros da tb_importa_contato_clean: id_file: 1: letras 4<br>2010-09-28 11:59:58 - 10000 =&gt; id:27346<br>...<br>2010-09-28 13:00:50 - 650000 =&gt; id:1798654<br>2010-09-28 13:00:55 - Updating cadastros_ids_seq to 6312829...<br>

2010-09-28 13:00:56 - Updating emails_id_email_seq to 4220223...<br>2010-09-28 13:00:56 - Updating enderecos_id_endereco_seq to 5212173...<br>2010-09-28 13:00:56 - Updating telefones_id_telefone_seq to 4914093...<br>2010-09-28 13:00:57 - 650473 registros comparados. 3738.82161688805 segundos...<br>

2010-09-28 13:04:35 - Dedup Code: 4001 wallclock secs (587.09 usr + 26.34 sys = 613.43 CPU)<br>2010-09-28 13:04:36 - Gravando arquivo com os updates de cadastro: 41<br>2010-09-28 13:04:40 - done.<br>2010-09-28 13:04:40 - Gravando arquivo com os dedups...<br>

2010-09-28 13:06:23 - done.<br>2010-09-28 13:06:26 - Dedup write files: 111 wallclock secs ( 3.83 usr +  1.03 sys =  4.86 CPU)<br>Quantidade de erros: 0<br>Tempo de execucao: 5383 segundos<br>2010-09-28 13:06:26 - Desconectando-se dos banco de dados...<br>

2010-09-28 13:06:26 - Desconectando-se de dx0<br>2010-09-28 13:06:27 - Fim da aplicacao<br><br><br>Como mostra o log,<br>rodou em 5383 segundos, aproximadamente 1:3h<br><br>Porém,<br>o processo ta rodando até agora e o perl não soltou o pai até agora.<br>

<br>  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND<br>22493 user     20   0 5474m 3.8g  744 D   25 97.3  63:21.11 perl -I/projetos/libs <a href="http://importador_dedup_lote.pl">importador_dedup_lote.pl</a> 7b2269645f66696c65223a2231222c226c6574726173223a5b2234225d7d<br>

<br><br><br>Não quero da um kill nele, pois quero ter certeza que rodou tudin!<br><br>Esse perl, como podem ver, chegou a usar toda a RAM, ou seja,<br>ele esta fazendo free dela até agora.<br><br><br>Como vou embora agora, (pra escola), coloquei nos novos perls um `kill -9 $$` no final, assim os proximos (se sair desse!) se matam no final<br>

<br>Minha questão é:<br>Demora tanto assim pra liberar a RAM? Já são 17:06 e nada!<br><br>O código pra chamar o filho ta assim:<br><br>        $rotinas-&gt;log(&quot;Chamando perl para processar match name com o HEXs &quot; . (join(&#39;, &#39;, @$grp)));<br>

        my $param = {<br>            id_file =&gt; $param-&gt;{id_file},<br>            letras  =&gt; $grp<br>        };<br>        my $serialize = &amp;ascii_to_hex($rotinas-&gt;fastObjToJson($param));<br><br>        my $cmd = &quot;perl -I/projetos/libs <a href="http://importador_dedup_lote.pl">importador_dedup_lote.pl</a> $serialize 1&gt;$serialize.log 2&gt;&amp;1&quot;;<br>

        print &quot;&gt;&gt;&gt; $cmd\n\n&quot;;<br>        `$cmd`;<br>        open(X, &#39;&lt;&#39;, &quot;$serialize.log&quot;);<br>        my @logs = ();<br>        while (&lt;X&gt;){<br>            print &quot;\t$_&quot;;<br>

            push(@logs, $_);<br>        }<br>        close(X);<br>        print &quot;\n&quot;;<br><br><br>Tenho certeza que não chegou no &quot;open&quot;<br><br><br><br>Alguma sugestão?<br clear="all"><br>-- <br>Renato Santos<br>

<a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a><br>