MeuMySQL Blog is now at http://blog.mdnsolutions.com/.

Thursday, October 20, 2011

MTBF e MTTR em sua aplicação. Sua equipe de TI sabe do que estamos falando?


Olá galera, esta semana estou fazendo um curso de Alta Disponibilidade com MySQL Cluster e entre os vários tópicos abordados há uma forma de calcular o tempo de atividade Uptime "disponibilidade"das máquinas. E sendo esta umas das principais razões para usarmos o Cluster do MySQL o assunto realmente me interessou, o que me fez ler e procurar entender melhor o conceito e de quebra fiz este artigo baseado em um outro do site http://world-class-manufacturing.com uma vez que não encontrei muita documentação em português. Espero que apreciem.


MTBF e MTTR o que são?

MTBF, Mean Time Between Failures (Tempo médio entre falhas) e MTTR - Mean Time To Repair (Tempo médio de reparo) são dois importantes KPI's dentro do nível de desempenho de processos.

MTBF = (Total up time) / (número de breakdowns)
MTTR = (Total down time) / (número de breakdowns)


MTBF e MTTR - O que eles querem dizer?

"Tempo médio" significa, estatisticamente falando, o valor médio de tempo dentre a ocorrência de uma mesma situação.

“Mean Time Between Failures” (MTBF) é literalmente a média de tempo decorrida entre uma falha e a próxima vez em que ela irá ocorrer. Normalmente pessoas pensam nisto como uma média de tempo de alguma coisa funcionando até  falhar e precisar ser reparada (novamente).

“Mean Time To Repair” (MTTR)  é a média de tempo que se leva para reparar alguma coisa depois de uma falha.

Para algo que não pode ser reparado o termo correto é MTTF - “Mean Time To Failure” (Tempo médio para falhas). Alguns definiriam MTBF - para dispositivos reparáveis -  como a soma de MTTF mais MTTR.  (MTTF = MTTF + MTTR). Em outras palavras, o Meio Tempo entre falhas é o tempo entre uma falha e outra. Esta distinção é importante se o tempo de reparo (MTTR) é uma fração significante do MTTF.

Aqui está um exemplo: Uma lâmpada em um candelabro não é reparável, então MTTF é mais apropriado. A lâmpada deve ser trocada. O MTTF possivelmente é de 10.000 horas.

Por outro lado, sem trocas de óleos, um motor de carro pode falhar depois de 150 horas dirigindo em uma rodovia - neste caso é MTTF. Assumindo 6 horas para remover e substituir o motor (MTTR), MTBF é 150 + 6 = 156 horas.

Como automóveis, a maioria de equipamentos manufaturados serão reparados, ao invés de substituidos após uma falha. Logo MTBF é a mais apropriada forma de medir.


O que é uma falha?

""Falha" pode ter vários significados. Vamos rapidamente examinar uma falha em um dispositivo:

Uma Fonte de Energia Ininterrupta (UPS - Uninterruptible Power Source) pode ter cinco funções dentro de duas condições:
  • Enquanto a principal fonte de energia está disponível:
    • F1) Permite a energia circular da fonte principal para as máquinas protegidas;
    • F2)Condiciona a energia limitando saltos ou interrupções;
    • F3)Armazena energia em uma bateria até completá-la;
  • Quando a principal fonte de energia é interrompida:
    • F4)Fornece energia para as máquinas protegidas;
    • F5)Emite um sinal indicando que a forte de energia principal está inoperante;
Não há dúvida sque o UPS falhou se ele interromper o fluxo de energia provido pela fonte principal para as máquinas protegidas (F1). Falhas para F2, F3 ou F5 podem não ser óbvias porque as "máquinas protegidas" estão ainda rodando pela fonte principal ou pela bateria. Ainda que notado, estas falhas pode não acionar medidas corretivas porque as "máquinas protegidas" estão ainda rodando e pode ser mais importante mantê-las rodando do que corrigir ou substituir o UPS.


O que é Disponibilidade? 

A "disponibilidade" de um equipamento é, matematicamente, MTBF / (MTBF + MTTR) para tempo de trabalho programado.

O automóvel do exemplo anterior está disponível para 150/156 = 96,2% do tempo. O reparo é tempo de inatividade não programada.

Com meia hora de não programada troca de óleo a cada 50 horas dirigidas - acontece quando um indicador no painel do carro alerta o motorista -  o tempo de disponibilidade sobre para 50 / 50.5 = 99%.

Se trocas de óleo fossem agendadas corretamente como atividade de manutenção a disponibilidade do veículo seria de 100%.


Porque tudo isso é importante?

"Disponibilidade" é um indicador de performance para processos e fábricas. É parte da medida da eficácia geral do equipamento ou “Overall Equipment Effectiveness” (OEE).

Uma produção programada que inclui tempos de paradas para manutenção preventiva pode precisamente prever o total de uma produção. Agendamentos que ignoram MTBF e MTTR são simplesmente um desastres (programados ou não, desculpe o trocadilho) aguardando para acontecer.


Como calcular o atual MTBF

Atual ou histórico MTBF é calculado usando observações no mundo real. (Há uma disciplina para designers de equipamentos preverem MTBF, baseado nos componentes e cargas de trabalho previstas).

Calculando o atual MTBF requer um conjunto de observações, onde cada uma seria:
  • Tempo de Funcionamento (Uptime_moment): o momento no qual a máquina começa a operar (inicialmente ou após um reparo);
  • Tempo de Parada (Downtime_moment): o momento no qual a máquina parou após iniciado suas operações.
Cada tempo entre falhas (Time Between Failure TBF) é a diferença entre um tempo de funcionamento (Uptime_moment) e seu tempo de parada (Downtime_moment) subsequente.

Três quantidades são requeridas:

n = Numero de observações
ui = Este é o ith Uptime_moment 
di = Este é o ith Downtime_moment seguido de um ith Uptime_moment


Então temos MTBF = Sum (di - ui) / n, para todos i = 1 entre n observações. Mais simplesmente, este é o tempo de trabalho total dividido pelo número de falhas.


Texto extraído e traduzido de http://world-class-manufacturing.com/KPI/maintenance.html.

Outras referências sobre o assunto:
http://pt.wikipedia.org/wiki/Indicador-chave_de_desempenho

Thursday, October 13, 2011

Quiz de MySQL - Por que não testar o que sabe?

Olá à todos. Neste post teremos um pequeno quiz para checar o quanto sabemos sobre MySQL. Estas questões não são oficiais ou fazem parte de nenhuma certificação, mas nos dão uma dica de como anda nosso conhecimento sobre esse banco de dados. Ao final das questões vocês podem encontrar as respostas e caso desejem comentem sobre seu score. Abraços e espero que se divirtam.
                       
1) MySQL roda em que sistemas operacionais?
a) Linux e Mac OS-X apenas
b) Qualquer um
c) Unix, Linux, Windows e outros
d) Unix e Linux apenas

2) Para remover registros duplicados de um result set de um SELECT use a palavra-chave abaixo:
a) NO DUPLICATE
b) UNIQUE
c) DISTINCT
d) Nenhuma das respostas anteriores

3) Qual das respostas abaixo podem adicionar uma linha na tabela?
a) Add
b) Insert
c) Update
d) Alter

4) Para usar MySQL no seu computador você precisará?
a) FTP e Telnet
b) Algum tipo de client programa para acessar os banco de dados
c) Um Browser
d) Perl, PHP ou Java

5) Qual declaração SQL é usada para inserir um novo dado no banco de dados?
a) INSERT INTO
b) UPDATE
c) ADD
d) INSERT NEW

6) Em uma cláusula LIKE você poderia pedir por qualquer valur terminado em 'qpt' escrevendo:
a) LIKE %qpt
b) LIKE *ton
c) LIKE ton$
d) LIKE ^.*ton$

7) Um valor NULL é tratado como blank ou 0.
a) Verdadeiro
b) Falso
c) Nenhuma das respostas acima

8) MySQL é
a) Uma linguagem de Programação
b) Uma tecnica para escrever programs confiáveis
c) Um Sistema de Gerenciamento de Banco de dados Relacionais

9) Em uma cláusula LIKE você pode solicitar por qualquer valor de 6 digitos digitando?
a) LIKE ??????
b) LIKE .{6} Answer 5: LIKE ^.{6}$
c) LIKE ...... (6 pontos)
d) LIKE ______ (6 underscore characters)

10) O resultado de um SELECT pode comter linhas duplicadas.
a) Falso
b) Verdadeiro
c) Nenhuma das respostas acima

11) Qual função é usada para pegar o tempo corrente no MySQL?
a) getTime()
b) Time()
c) NOW()

12) Uma tabela pode fazer um JOIN nela mesma.
a) Verdadeiro
b) false
c) Nenhuma das respostas acima

13) Qual valor abaixo não é uma função de agregação?
a) COUNT
b) MIN
c) MAX
d) COMPUTE

14) mysql_pconnect() é usada para fazer a persistência com o banco de dados, o que significa um link SQL que não fecha quando a execução do seu script acaba. 
a) Verdadeiro
b) Falso

15) O que uma cláusula SQL usa para restringir o numero de linhas retornadas?
a) AND
b) WHERE
c) HAVING
d) FROM

16) Qual valor abaixo é usado para remover um banco de dados MySQL?
a) mysql_drop_database
b) mysql_drop_entiredb
c) mysql_drop_db
d) mysql_drop_dbase

17) MySQL suporta o padrao SQL99
a) Falso
b) Verdadeiro

18) Primary Key permite valores NULL, e UNIQUE KEY não aceita valores NULL.
a) Falso
b) Verdadeiro

19) Quantos caracteres são permitidos no nome de um banco de dados?
a) 55
b) 72
c) 64
d) 40

20) Qual comando abaixo deveria ser usado para criar um banco de dados chamado “student”?
a) CREATE ?I student
b) CREATE DATABASE student
c) DATABASE /student
d) DATABSE student

21) Qual comando irá deletar a estrutura da tabela e seus dados?
a) TRUNCATE
b) DROP

22) O que faz o comando USE?
a) É usado para carregar código de outro arquivo
b) tornou-se obsoleta e deve ser evitado por razões de segurança
c) É um pseudônimo para o comando SELECT
d) No caso de ser utilizado para escolher o banco de dados que deseja usar, uma vez que você tenha conectado ao MySQL

23) Data a tabela employees abaixo:  

emp_idemp_name
1Brush
2Jerrin

Que valor vai retornar com a query SELECT COUNT(*) FROM employees?
a) 3
b) 2
c) 1
d) Nenhuma das respostas acima

24) O principal programa MySQL que faz todo o tratamento dos dados é chamado?
a) mysql.exe
b) mysql
c) mysqld
d) httpd

25) Um comando SELECT sem uma cláusula WHERE retorna?
a) Todos os registros de uma tabela que correspondem à anterior cláusula WHERE
b) Todos os registros de uma tabela ou de informações sobre todos os registros
c) SELECT é inválido sem uma cláusula WHERE
d) Nada


26) O acesso de segurança do MySQL é controlado através de?
a) O ID que o usuário conectado ao servidor através e privilégios criados para essa conta
b) As contas de login MySQL e privilégios estabelecidos para cada conta
c) A segurança login normal é suficiente para MySQL, e ele não tem qualquer controle extra de seu próprio.
d) Uma tabela de endereços IP válidos, e os privilégios criados para cada endereço IP

27) Em um SELECT com uma cláusula GROUP BY, a cláusula WHERE e uma cláusula HAVING, as condições WHERE são aplicados antes que as condições HAVING.
a) Verdadeiro
b) Falso
c) Ambos Verdadeiro ou Falso
d) Nenhuma das respostas acima



Respostas:


(1) c(2) c(3) b(4) b(5) a
(6) a(7) b(8) c(9) d(10) b
(11) c(12) a(13) d(14) a(15) b
(16) c(17) a(18) a(19) c(20) b
(21) b(22) d(23) b(24) c(25) b
(26) b(27) a