Zimbra performance tunning – melhorando a performance do Zimbra

Quando temos o Zimbra sendo executando em produção com um alto volume de tarefas/clientes é necessário alguns ajustes para ele suportar toda a carga.

Para adicionar o IP da sua rede na whitelist da proteção de DDOS do Zimbra:
Adicionar IP da sua rede na whitelist do Zimbra:
zmprov mcf +zimbraHttpThrottleSafeIPs 10.1.2.3/32

Zimbra error: Dropping connection (max connections exceeded)
Para corrigir o erro acima devemos aumentar alguns limites de serviço do Zimbra para suportar uma maior quantidade de conexões/threads

Aumentar limite de threads para pool http/https:
zmprov ms this.server.name zimbraHttpNumThreads 5000

Listar limite atual de threads para Imap:
zmprov gs this.server.name zimbraImapMaxConnections

Aumentar limite de threads para Imap:
zmprov ms this.server.name zimbraImapMaxConnections 40000

Listar limite atual de threads para pop3:
zmprov gs this.server.name zimbraPop3MaxConnections

Aumentar limite de threads para pop3:
zmprov ms this.server.name zimbraPop3MaxConnections 40000

Exportar e Importar todos os bancos do MySQL. Export and Import all MySQL databases at one time

Abaixo segue um script para exportar todos os bancos do mysql, ele lista os bancos e faz um dump de cada banco em um arquivo diferente.

#!/bin/bash
USER="root"
PASSWORD="yourpassword"
#OUTPUT="/backup/mysql"
#rm "$OUTPUTDIR/*gz" > /dev/null 2>&1

databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`

for db in $databases; do
    if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
        echo "Dumping database: $db"
        mysqldump -u $USER -p$PASSWORD --databases $db > `date +%Y%m%d`.$db.sql
       # gzip $OUTPUT/`date +%Y%m%d`.$db.sql
    fi
done

O script irá gerar um arquivo dump para cada banco.
Para importar um banco, é necessário criar ele e depois importar.

mysql -u root -p nomedobanco < nomedobanco.sql

Comando para exportar por dump todos os bancos do mysql em um arquivo só:

mysqldump -uroot -p --all-databases --skip-lock-tables > alldb.sql

Para importar todos os bancos contidos no mesmo arquivo:

mysql -u root -p < alldb.sql

Alterando fuso horário Linux Debian/Ubuntu – Change timezone on Linux Debian/Ubuntu

Maioria dos servidores cloud vem como padrão timezone UTC (Coordinated Universal Time).

Todos os fusos horários são definidos em relação ao UTC, o fuso horário que contém Londres quando esta cidade não está no horário de verão onde se localiza o meridiano de Greenwich, o qual divide o fuso horário.

Para alterar o fuso horário do seu Linux utilize o comando abaixo no console:

dpkg-reconfigure tzdata

Aparecerá uma lista cidades para você escolher.

Corrigindo tabelas do MySQL: ERROR 144 (HY000) at line 1: Table ‘./wordpress/wp_options’ is marked as crashed and last (automatic?) repair failed

As vezes algumas tabelas do mysql são corrompidas por motivos desconhecidos.
O ideal é no mínimo manter um backup diário e um semanal dos seus banco de dados.
O erro foi em uma tabela do wordpress, como segue abaixo:
ERROR 144 (HY000) at line 1: Table './wordpress/wp_options' is marked as crashed and last (automatic?) repair failed
Para recuperar é simples, basta parar o serviço do sgbd mysql e executar o seguinte comando:

myisamchk -r -v  -f /var/lib/mysql/wordpress/wp_options 

O caminho do -f deve ser trocado conforme segue a sua instalação do mysql e a tabela correspondente.
Após executar caso seja recuperado com sucesso é só iniciar o mysql.

Performance de I/O de Disco dos principais players Cloud – I/O Benchmark

Performance de disco é uma questão que precisamos levar muito a sério quando vamos utilizar um servidor Cloud.
Neste post fiz uma medição de desempenho de I/O de disco dos principais players Cloud.
Vou fazer mais testes futuramente nas mesmas VMs para ver se o IOPS muda.
Utilizei o script criado pelo Benjamin Schweizer (seu blog) para os testes. Ele está disponível em: https://github.com/cxcv/iops
Contine reading

Compartilhando arquivos do Linux Debian com NFS e conectando com Mac OS X

O NFS  (Network File System) é um sistema de arquivos distribuídos utilizado principalmente por sistemas Unix/Linux. Foi desenvolvido inicialmente pela Sun Microsystems, Inc., a fim de compartilhar arquivos e diretórios entre computadores conectados em rede, formando assim um diretório virtual. O NFS permite o compartilhamento transparente de arquivos por uma rede.

A performance do compartilhamento entre o OS X e o Linux com o NFS é bem superior se comparado a um compartilhamento com SMB/CIFS (Windows).

Se você pretende acessar um servidor NFS pela internet, sugiro criar uma conexão VPN até o servidor ou até a rede privada do servidor, e aí fazer a conexão com NFS.

Contine reading

Corrigindo erro de SSL no script vacation.pl do postfixadmin

Erro no script do vacation.pl:

main::send_vacation_email - Failed to send vacation response: Connection not established

IO::Socket::SSL->start_SSL failed: SSL connect attempt failed error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Para ignorar a verificação de ssl de certificado local no vacation.pl adicione o seguinte parâmetro na função $smtp_connection na linha 435 do script:
'tls_allowed' => '0',

Instalando extensão Oracle OCI8 no PHP5

Configurando a extensão Oracle oci8 no PHP5

Instale o php-pear e php5-dev e suas dependências:
apt-get install php-pear php5-dev

Instale a extensão oci8:
pecl install oci8

Adicione a extensão na configuração do PHP:
echo "extension = oci8.so"> /etc/php5/conf.d/oci8.ini

Os paths aqui utilizados são para padrões do Oracle XE 11.2. Caso seu sistema utilize outro ajuste conforme suas necessidades.

Se for Apache2:
Adicione no arquivo /etc/apache2/envvars
export ORACLE_SID='XE'
export ORACLE_HOME='/u01/app/oracle/product/11.2.0/xe'
export LD_LIBRARY_PATH='/u01/app/oracle/product/11.2.0/xe/lib'

Se for NGINX com PHP-FPM
Adicione no arquivo /etc/php5/fpm/pool.d/www.conf
env[ORACLE_SID] = XE
env[ORACLE_HOME] = /u01/app/oracle/product/11.2.0/xe
env[LD_LIBRARY_PATH] = u01/app/oracle/product/11.2.0/xe/lib

Reinicie o Apache2 ou NGINX
/etc/init.d/apache2 restart

Resolvendo problema no Oracle: shared memory realm does not exist

Erro:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
ORA-00845: MEMORY_TARGET not supported on this system

Execute os seguintes comandos:

rm -rf /dev/shm
mkdir /dev/shm
mount -t tmpfs shmfs -o size=2048m /dev/shm

Ou coloque no script de inicialização do oracle:
if [ -L /dev/shm ]; then
rm -rf /dev/shm
mkdir /dev/shm
mount -t tmpfs shmfs -o size=2048m /dev/shm
fi

As vezes é necessário reiniciar, e as vezes reinstalar o Oracle XE.
Confira também o /etc/hosts
Se o hostname do servidor esta resolvendo para localhost.