quarta-feira, 28 de março de 2012

Script apenas lembrança.


Script apenas para minha recordação, depois que o fiz acho que não será tão bem utilizado quando eu pensei que pudesse utiliza-lo, porém para não perder, estou adicionando-o aqui.

https://github.com/abargiela/scripts/blob/master/store_informations_in_mysql.sh

terça-feira, 13 de março de 2012

IO Stress

Olá!
Tive uma nova necessidade, a de escrever/ler em um diretório que estava montado (iscsi), houve a necessidade de estressa-lo para verificarmos como seria o desempenho, segue o script:

Para escrita:
https://github.com/abargiela/scripts/blob/master/io_stress_write.sh

E para leitura:
https://github.com/abargiela/scripts/blob/master/io_stress_reading.sh

Seguiro executar os 2 scripts simultaneamentes, ou seja, abra 2 terminais e execute 1 em cada.

Pode parecer feio, porém para minha necessidade atendeu!

Os dados coletados serão similares a:

Tue Mar 13 11:23:26 BRT 2012
1000000+0 records in
1000000+0 records out
1048000000 bytes (1.0 GB) copied, 6.61428 seconds, 158 MB/s
Tue Mar 13 11:24:22 BRT 2012
1000000+0 records in
1000000+0 records out
1048000000 bytes (1.0 GB) copied, 6.56956 seconds, 160 MB/s
Tue Mar 13 11:25:14 BRT 2012

No script de escrita(io_stress_write.sh) você consegue coletar as estatísticas utilizando os parâmetros no mesmo, a saída será similar à:

Média de transmissão: 149 MB/s 
Menor taxa de transmissão: 44.9 MB/s
Maior taxa de transmissão: 167 MB/s


É isso, não sei o quanto essa dica pode ajudar, porém fica aqui para futuras consultas :)

sexta-feira, 26 de agosto de 2011

[ Varnish Troubleshoot ] Varnish Error to start

Olá,
Tive um problema para subir um varnish em produção e gostaria de compartilhar a solução:

- Ao tentar o start, ocorre o erro:

[root@varnish-machine ~]#     /etc/init.d/varnish  start
[root@varnish-machine ~]# or:                         [FAILED]


- Ao tentar startar apenas usando o daemon, ocorre:

[root@varnish-machine ~]# varnishd
storage_file: filename: ./varnish.4lLrqn size 3586 MB.
Using old SHMFILE


- Tentei então fazer um debug no init do varnish e então no final ele mostra o seguinte trecho em negrito

[root@varnish-machine ~]# sh -x     /etc/init.d/varnish  start
+ echo -n 'Starting varnish HTTP accelerator: '
Starting varnish HTTP accelerator: + ulimit -n 131072
+ ulimit -l 82000
+ '[' '-a :80  -T 127.0.0.1:6082 -f /etc/varnish/default.vcl -u varnish -g varnish -h classic,116387 -p listen_depth=16384 -p overflow_max=10000 -p sess_timeout=5 -p session_linger=50 -p thread_pools=16 -p lru_interval=900 -p cli_timeout=20 -p ping_interval=5 -w 300,4096,60 -t 60 -s file,/var/lib/varnish/varnish_storage.bin,20G' = '' ']'




- Então tentei subir manualmente o varnish, e ai que encontrei o erro e a solução:

[root@varnish-machine ~]# varnishd  -a :80  -T 127.0.0.1:6082 -f /etc/varnish/default.vcl -u varnish -g varnish -h classic,116387 -p listen_depth=16384 -p overflow_max=10000 -p sess_timeout=5 -p session_linger=50 -p thread_pools=16 -p lru_interval=900 -p cli_timeout=20 -p ping_interval=5 -w 300,4096,60 -t 60 -s file,/var/lib/varnish/varnish_storage.bin,20G
storage_file: filename: /var/lib/varnish/varnish_storage.bin size 20480 MB.
Message from VCC-compiler:
Unused backend backend1, defined:
(/etc/varnish/backends.inc Line 29 Pos 9)backend backend1 {
--------########################--
Running VCC-compiler failed, exit 1
VCL compilation failed


Havia um problema na VCL, acessei o arquivo, fui até a linha, corrigi e problema solucionado.

Espero que ajude, abs.

terça-feira, 9 de agosto de 2011

sqlplus

Falae galera!
Hoje precisei realizar a conexão em um banco oracle de um parceiro para homologar se a conexão com o mesmo encontrava-se ok. Consultei nossos amigos DBA's e os mesmos sugeriram utilizar o client sqlpus.

Quando realizei a instalação me deparei com ajustes que foram necessário realizar e graças aos skills de nosso amigo Arnaldo Pedroso, demorei apenas 2 minutos para configurar, e gostaria de compartilhar com vocês para caso haja uma necessidade futura. (:

1 - Deve-se fazer o export das bibliotecas do client, para evitar o seguinte erro: sqlplus64: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
Essa configuração pode ser adicionada para ser exportada automaticamente via .bashrc, porém isso fica a critério e necessidade de cada um.
export LD_LIBRARY_PATH="/usr/lib/oracle/10.2.0.3/client64/lib/"
 ou
echo "/usr/lib/oracle/10.2.0.3/client64/lib/" > /etc/ld.so.conf.d/sqlplus 


2 - Você deve criar o arquivo aonde ficarão os dados para a conexão com o banco:
Por default ele busca esse arquivo na seguinte ordem:
/root/.tnsnames.ora #Podendo variar de acorodo com o usuário logado, no meu caso estava como root, por isso ele buscou primeiro no /root
/etc/tnsnames.ora
/usr/lib/oracle/10.2.0.3/client64/lib/network/admin/tnsnames.ora
Utilizei a última opção em vermelho


3 - Dentro do arquivo, adicionei a seguinte configuração:

nomeConexaoOracle =
#O nome acima será o mesmo nome utilizado para a conexão
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(Host = 127.0.0.1)(Port = 1542))
# Acima colocam-se o IP e a porta a qual deseja-se conectar.
   )
 (CONNECT_DATA =
   (SERVICE_NAME = SINNPROD)
 )
)


4 - Para realizar a conexão basta:

sqlplus username/password@conexão

sqlplus USERtest/PASSWORD@
nomeConexaoOracle

Se todas as informações estiverem corretas, sucesso total.


Espero que ajude em algum momento, abs.

Referências: http://www.orafaq.com/wiki/Tnsnames.ora
DBA: Arnaldo Pedroso's mind (:

segunda-feira, 25 de abril de 2011

TCPDUMP SQL style :D

Um amigo do trabalho Julio, nos passou esse cara abaixo, achei bastante útil, estou repassando :D
Nesse caso estamos monitorando o MySQL, podemos ver pela porta 3306, porém apesar de não ter testado ainda ele pegue qualquer linguagem SQL, claro adaptando para a porta do mesmo, ainda vou testar ou caso você tenha testado por favor poste :D Grato.




 tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e '
        while(<>){
                chomp; next if /^[^ ]+[ ]*$/;
                if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER)/i){
                        if (defined $q){
                                print "$q\n";
                        }
                $q=$_;
                }
                else{
                        $_ =~ s/^[ \t]+//; $q.=" $_";
                }
        }'

Espero que ajude assim como me auxiliou, abraço.