Marcando os pontos. O ExtSQL fornece estatísticas de uso detalhadas dos sistemas de banco de dados MySQL e PostgreSQL.



Documentos relacionados
Procedimentos para Reinstalação do Sisloc

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Procedimentos para Instalação do Sisloc

Manual de Atualização Versão

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

Boletim Técnico. Esta melhoria depende de execução do update de base UPDSGA11, conforme Procedimentos para Implementação.

Procedimentos para Instalação do SISLOC

Online Help StruxureWare Data Center Expert

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Manual do Sistema "Fala Comigo - Sistema de Atendimento On-Line" Editorial Brazil Informatica

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

Desenvolvendo Websites com PHP

Manual de operação. BS Ponto Versão 5.1

MANUAL DE UTILIZAÇÃO

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

NetEye Guia de Instalação

Guia de Atualização TOTVS Segurança e Acesso 12.1

BACKUP ONLINE LINHA OFFICE

Manual de Utilização

Lazarus pelo SVN Linux/Windows

Manual Comunica S_Line

NetEye Guia de Instalação

LINX POSTOS AUTOSYSTEM

Boletim Técnico. Adição de campos à tabela Histórico do Status do Pneu (TQZ) Produto : Microsiga Protheus Manutenção de Ativos Versão 11

Manual Captura S_Line

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

Safeweb enotar versão 4.1

MANUAL DE CONFIGURAÇÃO DO BACKUP

RESTAURAÇÃO NO WINDOWS 8

Print Audit 6 - Instalação do SQL Server 2008 express R2

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

MULTIACERVO - VERSÃO 17.*

Qlik Sense Desktop. Qlik Sense 1.1 Copyright QlikTech International AB. Todos os direitos reservados.

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇO DE BACKUP. Professor Carlos Muniz

Instalando o Debian em modo texto

Manual de Instalação. SafeSign Standard (Para MAC OS 10.7)

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

Introdução. O Windows Server 2003 está dividido em quatro versões:

GUIA RÁPIDO SISTEMA ANTIFURTO THEFT DETERRENT

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Introdução a Banco de Dados

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

Iniciando o MySQL Query Brower

Manual do Visualizador NF e KEY BEST

Manual AGENDA DE BACKUP

Introdução ao Sistema. Características

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

CONFIGURAÇÃO MINIMA EXIGIDA:

País(es) : Brasil Banco(s) de Dados : Totvs DbAccess

Gravação da quantidade de expostos por grupo homogêneo

Como Gerar documento em PDF com várias Imagens

Atualização Volare 17 Release 010

Administração de Sistemas Livres

GUIA INTEGRA SERVICES E STATUS MONITOR

Omega Tecnologia Manual Omega Hosting

Manual de Instalação e Configuração do SQL Express

Ajuda das opções Fiery 1.3 (cliente)

Instalando o WordPress em localhost

Manual Xerox capture EMBRATEL

Menu Utilitários. Atualização do Banco de Dados Atualização e organização dos arquivos existentes

Considerações sobre o Disaster Recovery

Universidade Federal do Estado do Rio de Janeiro UNIRIO. Guia para criação do banco de dados de redes sociais

Boletim Técnico. Esta melhoria depende de execução do update de base UPDTEC350, conforme Procedimentos para Implementação.

TCI 322. Conversor de Interface USB para RS422/RS485. Manual de Instalação

Boletim Técnico. Esta melhoria depende de execução do update de base UPDPFS14, conforme Procedimentos para Implementação.

Guia de Atualização PROJURIS WEB 4.5. Manual do Técnico Atualização - ProJuris Web 4.5. Manual do Técnico Atualização - ProJuris Web 4.

CONFIGURAÇÃO Cobian Backup Programa gratuito e de qualidade para realizar seus backups automáticos

Manual Administrador - Mídia System

Leia-me Criação de perfis de saída personalizados para a controladora de impressão Fiery usando o Fiery Color Profiler Suite: System 9R2

WF Processos. Manual de Instruções

Documentação Symom. Agente de Monitoração na Plataforma Windows

Gerenciamento de Transações

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Manual de Utilização do TOTVS Restore

TCI S5-USB. Cabo de Programação STEP5 - USB. Manual de Instalação

Atualizaça o do Maker

País(es) : Brasil Banco(s) de Dados : Todos relacionais

Processo de Envio de

Guia Sphinx: instalação, reposição e renovação

Como instalar o Active Directory no Windows Server 2003

O sistema que completa sua empresa Roteiro de Instalação (rev ) Página 1

Instalação do ByYou ESB. Guia de Instalação e Atualização do ByYou ESB

Motorola Phone Tools. Início Rápido

RESTAURAÇÃO E BACKUP DE BANCO DE DADOS FIREBIRD

Configurando um Grupo Doméstico e Compartilhando arquivos no Windows 7

Instalação e utilização do Document Distributor

MANUAL DO ANIMAIL Terti Software

Sistema de Instalação e Criação da Estrutura do Banco de Dados MANUAL DO INSTALADOR. Julho/2007. Ministério da saúde

Manual SAGe Versão 1.2 (a partir da versão )

Capture Pro Software. Guia de referência. A-61640_pt-br

CERTIFICADO DIGITAL CONECTIVIDADE DIGITAL ICP GUIA PLANCON DE INSTRUÇÕES PARA INSTALAR SEU TOKEN, PENDRIVE OU LEITOR DE CARTÕES

Manual AGENDA DE BACKUP

Boletim Técnico. Aplicar a atualização dos programas SGAA580, SGAA590, SGAR150, SGAUTIL, SGAA110, SGAA110A e UPDSGA36.

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

Manual. Configuração do. Samba. Compartilhamento e Servidor Samba Linux. Produzido por: Sergio Graças Desenvolvedor do Projeto GNU/Linux VRlivre

Transcrição:

Controle de estatísticas do SQL com o ExtSQL ANÁLISE Marcando os pontos O ExtSQL fornece estatísticas de uso detalhadas dos sistemas de banco de dados MySQL e PostgreSQL. por John Murtari O MySQL e o PostgreSQL tornaram-se o padrão de bancos de dados de código aberto devido às suas ativas comunidades de desenvolvimento, desempenho sólido e operação confiável. Apesar da força e flexibilidade dessas variantes de SQL, as opções para se obter o histórico de uso do banco de dados são relativamente limitadas. As ferramentas de monitoramento do SQL geralmente concentram-se no monitoramento do servidor. O projeto Extended Usage Statistics for SQL (ExtSQL) é um esforço para criar uma gama maior de informações estatísticas disponíveis aos administradores de bancos de dados por meio de comandos simples na linha de comando do SQL. De fato, o ExtSQL fornece recursos de administração avançados Tabela 1: db Um banco de dados Classe user host conuser condb server Entidade Um usuário Nome da máquina local para o MySQL e o PostgreSQL que nem estão disponíveis nos grandes fornecedores de SQL. Os administradores de bancos de dados podem usar o ExtSQL para monitorar e controlar o uso do servidor até o banco de dados individual, o usuário e até mesmo monitorar o cliente. Quase todas as variáveis disponíveis através do comando SHOW STATUS podem ser controladas. Por exemplo, para ver todas as atividades do usuário com incrementos horários nas últimas 24 horas, mostrando o número de buscas de cada tipo, basta digitar: SHOW STATISTICS Com_select, Com_update, Com_insert FROM user WHERE Com_select > 100 HISTORY LIMIT 24 Combo de conexão e usuário-host Combo de conexão e db-host O servidor A empresa Software Workshop desenvolveu o ExtSQL e agora o disponibiliza como um software de código aberto sob a licença GPL. Ela espera que os recursos implementados pelo ExtSQL sejam estendidos a outros bancos de dados, como o Oracle e o DB2, e se tornem parte do padrão SQL. Por enquanto, o ExtS- QL vem no formato de substitutos dos daemons servidores usados com o MySQL e o PostgreSQL. Este artigo descreve como instalar e configurar o ExtSQL em uma instalação típica do MySQL. O processo para o PostgreSQL é semelhante. Um novo mysqld O site do ExtSQL [1] disponibiliza binários compilados para vários sistemas operacionais e plataformas de hardware para avaliação e licenciamento. As instruções de instalação e uso do ExtSQL mais atualizadas também estão disponíveis no site. Primeiramente é preciso baixar os patches do ExtSQL para a sua versão de servidor MySQL e incluir o arquivo.gz no topo da árvore da sua distribuição MySQL. Digite make distclean no topo da árvore para remover quaisquer compilações anteriores e depois digite: 50 http://www.linuxmagazine.com.br

ExtSQL ANÁLISE tar -zxvf \ extsql-my-src-5.0.45-rhel4- x86-2-1a-2.0b.tar.gz para descompactá-lo. O resultado deve ser composto por arquivos similares a estes quatro: patch-5.0.2.0b compat-5.0.1a do_conf-5.2 README.source_extsql Os primeiros dois são arquivos de patches. O arquivo patch-5... contém a maioria das alterações que formam o ExtSQL. O segundo arquivo (compat-...) contém correções voltadas à versão específica do MySQL. O arquivo do_conf-... contém os comandos de configuração exatos usados para compilar os fontes, então, basta mesclar essa lista com quaisquer seleções feitas. Como sempre, é aconselhável ler o arquivo README para obter as últimas informações. O próximo passo é aplicar os patches, mas antes use o arquivo compat-...: patch -V t -p0 \ -lnu < compat-5.0.1a patch -V t -p0 \ -lnu < patch-5.0.2.0b Em seguida, execute o mesmo comando configure usado para montar sua versão atual do MySQL com as opções que desejar. Com o ExtSQL 5.0.x, é necessário acrescentar a seguinte opção à atual lista lista de CXXFLAGS usada na definição de sua configuração (por exemplo, -DEXTSQL_50=1): CXXFLAGS=-O2 -DEXTSQL_50=1 -pipe -m32 -march=i386 -mtune=pentium4 Depois, digite make para compilar o mysqld. Um novo binário mysqld no diretório sql/ montado deve ser o resultado. Listagem 1: Exemplos de uso Os exemplos abaixo dão uma amostra dos comandos do ExtSQL e suas saídas. ## Mostrar o número de selects e inserts dados por todos os usuários: sql> SHOW STATISTICS Com_select, Com_insert, Questions FROM user; + + + -+ + user Com_select Com_insert Questions + + + -+ -- + bandala 8302675 95973 23153940 sandymao 1702812 6205 3829023 ponnetli 24909 4784 95646 ## Mostrar o número de selects, queries totais e updates feitos por ## todos os clientes: sql> SHOW STATISTICS Com_select, Questions, Com_update FROM host; + + + + + host Com_select Questions Com_update + + + + + db2.adomain.com 17715223 44224076 4143634981 lathe.adomain.com 2738061 9743215 3913397495 telkomadsl.co.za 195 5390 539604 ## Mostrar o número de selects, queries totais e updates feitos por ## todos os usuários de um cliente com mais de 10.000 queries: sql> SHOW STATISTICS Com_select, Questions, Com_update FROM conuser WHERE Questions > 10000; + + + + + conuser (user@host) Com_select Questions Com_update + + + + + bandala@db2.adomain.com 8306726 23163320 3439850933 sandymao@db2.adomain.com 1704040 3831803 3365501841 ponnetli@taro.adomain.com 24920 95662 156529077 ## Mostra o número de selectos, queries totais e updates do BD ## allison nos últimos três minutos de atividade: sql> SHOW STATISTICS Com_select, Questions, Com_update FROM db LIKE allison HISTORY LIMIT 3; + + + + + + db minutes Com_select Questions Com_update + + + + + + allison 11/20 13:56 216 382 318343 allison 11/20 13:55 642 1618 1386347 allison 11/20 13:54 280 699 646855 Linux Magazine #66 Maio de 2010 51

ANÁLISE ExtSQL Quadro 1: Sintaxe de INFORMATION_SCHEMA Muitos já sabem que INFORMATION SCHEMA já faz parte do padrão SQL que e seu propósito é tornar os bancos de dados SQL mais auto-descritivos. O projeto ExtSQL já possui um exemplo funcional de implementação no MySQL 5.0.x (listagem 2). Listagem 2: INFORMATION_SCHEMA mysql> use INFORMATION_SCHEMA; mysql> SHOW TABLES; ## Nota: as tabelas adicionais configuradas pelo DBA para o ExtSQL ## têm o prefixo EXTSTATS_ EXTSTATS_condb EXTSTATS_conuser EXTSTATS_db EXTSTATS_host EXTSTATS_server EXTSTATS_user ## Fim das tabelas adicionadas mysql> SELECT user, minutes, Com_select, Questions FROM EXTSTATS _user WHERE TIMEDIFF(now(), minutes) < 10:00 ; user minutes Com_select Questions thebook 2008 07 19 09:28:00 2 4 thebook 2008 07 19 09:27:00 3 3 matt 2008 07 19 09:53:00 4 4 matt 2008 07 19 09:52:00 0 1 ## Isto disponibiliza a sintaxe completa do parser SQL, MSA... expõe ## o registro dos dados num buffer circular em um intervalo de tempo ## (minutos, no nosso exemplo), com a hora 0000-00-00 contendo ## os totais desde a inicialização do servidor. mysql> SELECT user, minutes, Com_select, Questions FROM EXTSTATS _user WHERE user= thebook LIMIT 5; user minutes Com_select Questions thebook 2008 07 19 09:27:00 3 3 thebook 2008 07 19 09:25:00 2 73 thebook 2008 07 18 16:44:00 0 14 Instalação do servidor ExtSQL Em vez de usar make install, o mysqld tem que ser manualmente substituído. Recomendo o seguinte procedimento (supondo que o diretório base da instalação do MySQL seja /usr/local/mysql). Comece fazendo um backup de seu banco de dados e do atual mysqld: cp -a mysqld mysqld.sav O ExtSQL imprime as informações de status no arquivo de erro do MySQL. Em outra janela, monitore o servidor com o seguinte comando (use o caminho correto para o seu sistema): tail -f /usr/local/mysql/var/ servidor.err & Agora, já está tudo pronto para instalar e ativar o novo servidor com os comandos básicos disponíveis no MySQL para parar e reiniciar o servidor. Caso sua instalação use outros programas como wrappers, use-os também: /usr/local/mysql/bin/mysqladmin -uroot -p senha shutdown 060612 07:58:08 [Note] /usr/local /mysql/bin/mysqld: Shutdown complete Nota: o caminho do comando shutdown no arquivo de log deve ser o mesmo usado previamente para o backup do mysqld. Copie o novo mysqld para o lugar: cp -a \ /caminho/da/instalação/sql/mysqld \ mysqld e inicie o novo servidor: /usr/local/mysql/bin/mysqld_safe \ --user=$mysql_user $other_args & 52 http://www.linuxmagazine.com.br

ExtSQL ANÁLISE 071121 7:42:47 [Note] ExtSQL build: ExtSQL version: extsql-my -bin-5.0.45-rhel4-x86-2-1a-2.0b 060612 7:58:38 [Note] ExtSQL disabled by user, no extsql_class _list defined Momento para uma pausa. As linhas acima confirmam que o servidor foi montado com o subsistema ExtSQL e está desabilitado no momento, pois nenhuma estatística foi solicitada. É recomendável usar o servidor por pelo menos um dia para ter certeza de que tudo funciona corretamente. O desempenho do servidor não deverá ser afetado. Caso ocorra algum erro, ele pode indicar problemas com a montagem. Para retornar a uma boa configuração conhecida, basta restaurar a versão do mysqld e reiniciar o servidor. para começar a registrar dados estatísticos, abra /etc/my.cnf e adicione a seguinte linha, que deve ficar na seção [mysqld] do arquivo de configuração: extsql_class_list= user, max-100, time-120, units-h, (Com_insert, Com_select, Com_update, Com_ delete, Com_replace, Qcache_hits, Questions, Slow_queries) Os erros durante a inicialização e a operação serão anotados no log de erro e o sistema irá se desabilitar, deixando intactas as operações do MySQL. Terminologia No ExtSQL, as entidades que interagem com o servidor são chamadas de classes (tabela 1). Dentro de uma classe, instâncias específicas são chamadas instances (instâncias). Uma instância de usuário pode ser dominic ou christina, por exemplo. A classe server é única, pois a única instância é o próprio servidor. Para cada instância, é possível seguir itens individuais de dados chamados vars. Vars incluem quase todos os valores mostrados no atual comando SHOW STATUS. Use o nome da var como aparece no SHOW STATUS; por exemplo, Com_select confere os comandos select. Opções de configuração Existem mais de 100 vars (itens de dados) disponíveis. Configure o servidor ExtSQL descrevendo as vars que precisam ser conferidas e como os dados devem ser coletados. Para um exemplo mais completo, considere esta string, que deve estar em uma única linha no arquivo de configuração: extsql_class_list= user, max-50, time-60, units-m, (Com_select, Com_update), db, max-50, time-10, units-h, (Com_insert, Com_select, Com_update, Qcache_hits), host, max-5, time-3, units-d, (Com_ select, Com_update, Slow_queries), server, max-5, time-3, units-d, (Questions, Qcache_hits) Da mesma forma como ocorre com o SHOW STATUS (neste caso, com dados de histórico), o servidor irá acompanhar informações de quatro classes diferentes: user, db, host e estatísticas cumulativas do servidor. Para cada classe, max- precede o número máximo de instâncias dela, time- antecede o número de unidades de tempo do histórico a ser armazenadas e units- designa o período de interesse (m, minutos; h, horas; d, dias). Após os limites de cada classe, está incluída uma lista de variáveis (vars) separada por vírgulas. A linha iniciada com db é uma diretiva para acompanhar o máximo de 50 dbs e registrar dados do histórico a cada dez horas. As variáveis mencionadas no comando anterior são inserções (insert), seleções (select), atualiza- O comando acima deve ficar em uma única linha física no arquivo. Ao alterar o /etc/my.cnf, certifiquese de remover essa linha caso volte ao mysqld padrão. Ao reiniciar o servidor, as seguintes entradas aparecerão no log de erros: 060612 8:26:12 [Note] ExtSQL build: ExtSQL version: extsql-my-bin-5.0.45-rhel4-x86-2- 5a-3.0b 060612 8:26:12 [Note] ExtSQL ACTIVE tracking memory: 435600 bytes for 1 class Tabela 2: Outros comandos administrativos Comando STATISTICS (ON OFF) STATISTICS RESET [arq_config] STATISTICS WRITE arquivo STATISTICS READ arquivo Ação Ativa e desativa a coleta de dados. Dados e histórico não se perdem. Limpa dados antigos. Começa a coleta utilizando as definições de classes existentes, ou usa as que estão em no arquivo de configuração arq_config. Salva uma imagem de dados em um arquivo. Útil para armazenar dados de um evento anômalo para posterior análise. Carrega os dados estatísticos de um arquivo especificado. Linux Magazine #66 Maio de 2010 53

ANÁLISE ExtSQL ções (update) e hits de buscas no cache (cache hits). SHOW STATISTICS O objetivo da sintaxe dos comandos era ficar o mais próximo possível do padrão SQL. A sintaxe descrita aqui deve parecer familiar, especialmente se SHOW STATISTICS for substituído por SELECT. A listagem 1 mostra alguns exemplos de uso do ExtSQL. O LIKE é diferente, pois combina com instâncias específicas; já a nova palavra-chave HISTORY que produz uma saída do histórico. LIMIT opera de modo diferente quando HISTORY for especificado. Sem o HISTORY, ele limita o número de resultados mostrados, enquanto que com HISTORY, ele funcionará como um limitador de tempo. SHOW STATISTICS ( * Var list) FROM Class [LIKE Instance pattern ] [WHERE Var ( < > = ) num] [ORDER BY Var] [HISTORY] [LIMIT num] Por exemplo, é possível perguntar: SHOW STATISTICS * FROM user LIKE %joe% WHERE Com_select > 500 No SQL padrão seria: SHOW STATISTICS * FROM user WHERE user LIKE %joe% AND Com_select > 500 disponível nos servidores, não havia problemas em armazenar dados na RAM, dando completo controle ao administrador do banco de dados sobre quanto de memória seria alocada para isso. Isso resultou em uma média de efeito de desempenho de 5% um número aceitável na maioria dos servidores. Para uma melhor compreensão de estatísticas de desempenho, considere como o ExtSQL registra e relata o tempo. Com a definição de classe user, max-50, time-10, units-h, o ExtSQL irá criar um buffer com 11 intervalos de tempo. O buffer 0 contém sempre números cumulativos desde a inicialização do servidor, e é o número mostrado no comando SHOW STATISTICS * FROM user. O histórico de atividade é capturado em períodos de dez horas, de maneira circular e somente quando ocorre atividade por exemplo, inicie o servidor e, 20 horas depois, digite: SHOW STATISTICS * FROM user HISTORY Vamos supor que a atividade do usuário tenha sido registrada em cada uma das dez primeiras horas de operação do servidor e, depois, apenas nas últimas cinco horas (isto é, houve um intervalo de cinco horas sem atividade). A atividade ocorrida entre a quinta e a décima horas de operação do servidor é relatada hora a hora, depois, nas últimas cinco horas. Cada linha possui um timestamp de uma hora. Com o comando SHOW STATISTICS FROM user, é possível ver apenas uma linha com os totais cumulativos de todas as 20 horas. Segurança Se não for necessário compartilhar as informações do ExtSQL com todos os usuários, o arquivo de configuração permite especificar quem terá acesso: extsql_users= john,dominic, phil,mary O usuário root sempre tem acesso. Controle do ExtSQL Existem outros comandos (tabela 2) que permitem que o administrador suspenda temporariamente a coleta e o armazenamento de dados e até mesmo determine quais dados serão coletados sem que seja necessário reiniciar o servidor. A opção de configuração chamada extsql_reload_file permite armazenar dados coletados que são automaticamente salvos e recuperados durante uma reinicialização. Futuro O trabalho de desenvolvimento do ExtSQL é grande, e há planos da Workshop Software de oferecer um ponto para a discussão da comunidade, relatórios de falhas, correções e melhorias. n LIKE é uma cláusula separada na sintaxe, que combina apenas instâncias de Class. Por enquanto, a sintaxe está limitada à cláusula WHERE, e ORDER BY está disponível caso INFORMATION SCHEMA seja suportado na versão base do seu servidor ExtSQL. Desempenho O desempenho foi o primeiro problema no desenvolvimento do ExtS- QL. Com cada vez mais memória Mais informações [1] ExtSQL: http://www.extsql.com/ Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3482 54 http://www.linuxmagazine.com.br

Quer falar com os 30.000 profissionais de TI com maior nível de conhecimento técnico do mercado nacional? Então anuncie na Linux Magazine! Segundo dados do Instituto Verificador de Circulação*, a Linux Magazine é atualmente a segunda revista mais vendida para profissionais de TI do mercado editorial brasileiro. Além disso, é a revista que tem o público mais qualificado no quesito técnico. Nossa combinação exclusiva de conteúdo avançado com uma abordagem prática faz da Linux Magazine a publicação preferida de quem toma decisões e faz recomendações para compra de produtos e contratação de serviços. Anuncie conosco e fale com esse público. Para anunciar, entre em contato: anuncios@linuxmagazine.com.br 11 4082.1300 *Comparação de circulação para os últimos três meses de publicações nacionais voltadas ao segmento de TI.