Windows Vista Performance Roundtable

18 04 2009

With the launch of Windows Vista SP1 giving some significant fixes on performance issues on the operating system, Microsoft tries to take off the slow adjective from the mouth of users who tried Windows Vista.

Personally, SP1 really had improved performance, but much more can be done to take it better.

Below is a round table with Microsoft specialists, that’s very interesting to understand what can be done to take the performance of day-to-day operations better.

Springboard Series Virtual Roundtable: Windows Vista Performance





Verificador de Drivers do Vista / Vista Driver Verifier

12 01 2009

Recebi hoje uma dica[1] muito interessante. Muitos dos problemas que ocorrem com o Windows Vista podem vir em decorrência de problemas com drivers de terceiros que estão instalados para fazer seus dispositivos funcionarem.

Alguns desses drivers não são certificados pela Microsoft, ou porque as fabricantes de drivers não tem interesse ou por alguma questão de mercado.

Para isso, o Windows 2000, XP e o Vista (no 2008 Server também) foi inserido o utilitário Driver Verifier Manager[2], que realiza testes nos drivers instalados para ajudar no ajuste de problemas. Os testes consistem em detecção de chamadas ilegais de funções ou ações que podem corromper o sistema. Vale a pena dar uma olhada e fazer um teste.

===================================================

Today I received a tip [1] very interesting. Many of the problems that occur with Windows Vista may be due to problems with third-party drivers that are installed to make their devices work.

Some of these drivers are not certified by Microsoft, or because the manufacturers of drivers has no interest or any questions of the market.

For this, Windows 2000, XP and Vista (also in 2008 Server) was inserted as utility, the Driver Verifier Manager [2], which performs tests on the drivers installed to help problems troubleshooting. The tests are to detect illegal function calls or actions that might corrupt the system. It is worth taking a look and do a test.

 

[1] http://ct.techrepublic.com.com/clicks?t=73528218-d924b6aea9a40bf26b0cf90102af1b94-bf&brand=TECHREPUBLIC&s=5

[2] http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/VistaVerifier.doc





GNU Scientific Library

4 12 2008

The people who develops scientific software often needs to create from scratch many things. One of the most commom things to be reimplemented that I’ve ever seen was a mathematical library that can work with some sort of statistics, random number generator, and so on.

Well, I’m not out of this reality, and now’s my time to implement a mathematical library to work with the things I need to my research. Googlin’ around a bit, I’ve found a project (and old project, it’s worth to say – 1996 is the last changelog) that have implemented many useful things to scientific research: The Gnu Scientific Library or simply GSL.

Implemented Features:

  • Complex Numbers
  • Roots of Polynomials
  • Special Functions
  • Vectors and Matrices
  • Permutations
  • Sorting
  • BLAS Support
  • Linear Algebra
  • Eigensystems
  • Fast Fourier Transforms
  • Quadrature
  • Random Numbers
  • Quasi-Random Sequences
  • Random Distributions
  • Statistics
  • Histograms
  • N-Tuples
  • Monte Carlo Integration
  • Simulated Annealing
  • Differential Equations
  • Interpolation
  • Numerical Differentiation
  • Chebyshev Approximation
  • Series Acceleration
  • Discrete Hankel Transforms
  • Root-Finding
  • Minimization
  • Least-Squares Fitting
  • Physical Constants
  • IEEE Floating-Point
  • Discrete Wavelet Transforms
  • Basis splines

Enjoy, researchers! =P

[1] Download Site: ftp://ftp.gnu.org/gnu/gsl/

[2] GSL Home Page: http://www.gnu.org/software/gsl/





Sharpe Portal

26 11 2008

There’s a tool named Sharpe, which stands for Symbolic Hierarchical Automated Reliability and Performance Evaluator, that I’m using on my research experiments. I’ts interface was developed in Java, and has a wide spread acceptation on the research field of Performance Modelling.

Sharpe is capable of modelling on a wide gamma of mathematical models, and this is a great point on the tool. It can model GSPNs, Fault Trees, Markov Chains and Reliability Block Diagrams.

In the way to bring together the community around the tool, Trivedi and his group, created a portal, The Sharpe Portal, to achieve this. A nice and clean place to see some resources around the tool. Hope it becomes the central part to learn and contribute to Sharpe.

 

[1] Sharpe Portal: http://sharpe.pratt.duke.edu/

[2] Trivedi’s Site: http://people.ee.duke.edu/~kst/





O Novo Perfmon 1/2

26 09 2008

É, veio o Windows Vista, e com ele uma repaginada no antigo Performance Monitor além de somente acrescentar contadores. Agora ele se chama Reliability and Performance Monitor, e vem com algumas novidades:

  • Conjunto de Coletores de Dados

 image

A maior novidade dessa versão do perfmon. É possível criar Coletores de dados através de templates do Windows ou ao seu gosto.

image

Existem três templates que já vem configurados, Basic, System Diagnostics e System Performance. Esses templates são uma melhoria importante, pois podem ser criados e reutilizados. O formato deles é XML, o que também facilita a criação.

image

É importante ressaltar que esses templates buscam monitoramento de todas as formas que o perfmon consegue tirar. Isso implica em extração de traces do kernel por exemplo, e é bom que se tome cuidado, para não coletar alquilo que não se deseja.

  • Exibição de Recurso

image

Essa é agora a tela inicial do perfmon. São exibidos gráficos dos desempenhos instantâneos de cada um dos principais recursos do sistema. É interessante para ter uma visão geral do sistema, sem muito esforço de configuração da ferramenta. Caso se deseje algum detalhe em algum dos ramos, basta clicar na barra correspondente, Em CPU, além da barra já mostrar o consumo atual, e a freqüência máxima, é possível ver os processos em execução, e classificá-los pelo número de theads ou pelo quanta de CPU consumido, como pode ser visto na figura abaixo:

image

Em relação ao disco, a barra mostra o IO total, e o maior tempo ativo do disco. No corpo, mostra também a velocidade de leitura e escrita, prioridade da tarefa de IO, e o tempo de resposta em milisegundos, separados por processo que está realizando a atividade de disco

image

Na rede, a barra mostra o tráfego total da rede, em kbps e a porcentagem de utilização do recurso. É mostrado como informação para cada aplicação que utiliza a rede, o endereço com o qual a aplicação está trocando informação, a quantidade de dados em bytes/min que a aplicação está enviando/recebendo/total.

image

No recurso de memória, a barra mostra a quantidade de faltas de página por segundo e o percentual de memória física utilizada. Na tabela, o separado por processo, tem-se as faltas de página por minuto, os kilobytes disponíveis para a instância da aplicação, os kilobytes disponíveis no working set que podem estar disponíveis para uso de outras aplicações, e os kilobytes da instância da aplicação que estão dedicados ao processo.

image

É bom ter em mente que estas informações são extremamente valiosas para uma análise instantânea, mas não tão importantes assim para uma análise em um intervalo de tempo grande.

  • Monitor de Confiabilidade

image

Aqui, no monitor de confiabilidade, é mostrado um relatório de estabilidade do sistema. Todas as desinstalações, falhas nas aplicações, falhas de hardware, falhas no windows, e outras falhas que aconteçam são registradas aqui, e organizadas no gráfico acima. Ao clicar em cada dia, um relatório das falhas ocorridas no dia. Esse gráfico é uma forma visual de perceber se o sistema está ficando mais ou menos estável. Se estiver crescente, é bom sinal. A nota dada varia de 0 – 10, e não é o rating do Windows.

[1] BATTISTI, Júlio. Windows Vista – Curso Completo. Editora Axcel

[2] TechNet www.technet.com





Load caracterization – 2nd Part / Caracterização de carga – 2nd

14 07 2008

Again I’m here to talk a bit ’bout this problem and now there’s a good new! I’ve found a toolkit, (a bit old, but it’s ok) that solves my problem on listing the disk activity. Lucky mine, ’cause I defined my data before knowing it was possible to collect data in that way.

I’m talking ’bout sysinternals [2] that consists on a collection of small softwares, that monitors or tweaks a system. Be careful on using it, because some applications produce a huge data collection activity, they can stop the machine.

On my problem, what I need to discover is a sequence of disk access in a trace, this information is held by Windows Kernel, and is a bit difficult to retrieve. In sysinternals suite, there’s a diskmon app, that monitors disk activity, in the way below:

image

See that the output is in the form: time, duration of a request, in witch disk a request were done, the type of request (write, read), the sector (read/written) and the lenght.

Now, this solves the problem i’ve talked ’bout here

=================================================

“>Mais uma vez estou aqui para falar um pouco sobre este problema, e agora há uma boa notícia! Encontrei um kit de ferramentas, (um pouco velho, mas tudo bem), que resolve o meu problema com a lista de atividade do disco. Sorte minha, por eu definir a métrica antes de saber se era possível recolher os dados dessa forma como planejei

Eu estou falando do sysinternals [2] que consiste em uma coleção de pequenos softwares, que monitoram ou ajustam um sistema. Tome cuidado ao usar, pois algumas aplicações produzem uma enorme atividade de recolha de dados, que podem parar a máquina.

Em meu problema, o que eu preciso descobrir é uma seqüência de acesso em um trace de disco, informação esta que existe no Kernel do Windows, e portanto é um pouco difícil de recuperar. Na suite sysinternals, há um aplicativo discmon, que monitora atividade de disco, na forma como na figura:

 

=============

[1] http://live.sysinternals.com/
[2] http://technet.microsoft.com/en-us/sysinternals/default.aspx
[3] http://technet.microsoft.com/en-us/sysinternals/bb896646.aspx





2º ESOL

3 07 2008

Participei hoje do II Encontro de Software Livre do CEFET-PE (ESOL). O evento foi bem legal, e me pareceu ter evoluído muito com relação à primeira edição, tendo até participação de algumas empresas daqui do estado. O Laboratório de Análise de Performance ItautecCIn/UFPE (onde trabalho) participou do evento com duas equipes, cada uma apresentando uma palestra e responsáveis por um stand de divulgação do Librix, o Linux da Itautec.

A Equipe CP (Capacity Planning) apresentou a palestra “Monitoramento de Desempenho de Sistemas *Unix”, e a Equipe HCT (Hardware Compatibility Test) apresentou “Testes de compatibilidade de hardware” cada uma aproveitando suas experiências de trabalho.

No mais, só tenho a agradecer à organização do evento que nos tratou muito bem. Mariana, Talita: valeu pelo chocolate (batom garoto) que ganhamos!

Abraço, e espero poder participar do 3º ESOL!





Desempenho no Linux – tcpstat

19 05 2008

O tcpstat relata certas estatísticas de interface de rede, e para isso tanto coleta dos arquivos do kernel como monitora diretamente da rede.

Métricas Coletadas:

  • Número de Pacotes ARP
  • Número médio do tamanho dos pacotes
  • Número de bytes por segundo
  • Número de bits por segundo
  • Número de pacotes ICMP e ICMPv6
  • O desvio padrão do tamanho de cada pacote
  • Número de pacotes IPv4
  • O tamanho máximo dos pacotes
  • O tamanho mínimo dos pacotes
  • O número de bytes
  • O número de pacotes
  • O número de pacotes por segundo
  • Intervalo em segundos após “UNIX epoch”, relativo ao primeiro pacote monitorado
  • Intervalo em segundos.microsegundos após “UNIX epoch”, relativo ao primeiro pacote monitorado.
  • O número de pacotes TCP
  • O número de pacotes UDP
  • O número de pacotes IPv6

Uma característica interessante do tcpstat é que essas métricas podem ser exibidas de forma customizada, passando um parâmetro com a formatação da string de saída.

[1] http://www.frenchfries.net/paul/tcpstat/





Desempenho no Linux – netstat

18 05 2008

O netstat não é uma ferramenta destinada a fazer monitoramento de desempenho, mas sim a reportar o estado das conexões de rede do S.O. Dessa forma o netstat está incluído no conjunto de ferramentas de configuração e deployment da rede, junto com ifconfig, route e iptables. Mesmo assim, oferece algumas medições básicas:

Métricas Coletadas:

  • MTU (Maximum Transmission Unit – bytes)
  • RX-OK (Received Packets without Error)
  • RX-ERR (Received Packets with Error)
  • RX-DRP (Received Packets that where Dropped)
  • TX-OK (Transmitted Packets without Error)
  • TX-ERR (Transmitted Packets with Error)
  • TX-DRP (Transmitted Packets that where Dropped)

As métricas são simples, podendo ser usadas basicamente para determinar se a rede está transmitindo e recebendo pacotes da rede e a que taxa. Estas métricas acima são coletadas usando o comando netstat -i podendo ser monitorado continuamente usando o parâmetro -c.

[1] http://www.faqs.org/docs/linux_network/x-087-2-iface.netstat.html





Load characterization using Markov Chain

25 04 2008

Well, in this post I’d like to throw in the desk some of my last researches about markov chains. I’ve presented something seminal (as the overall state of the work at this moment) ’bout this article I’m working on here (in portuguese), where I’m trying to create a Markov Chain Model to represent (and afterwards simulate) a disk and processor scenario.

A Markov Chain (MC) is very simple to understand, and there’s a good introductory article in Wikipedia.

That’s easy to work with MC because of it’s mathematical formalism, thats easy to understand and well founded, thanks it’s matrix representation. Going straight at the point, all the hard work is to extract the probabilities of changing to a state to another, and in the case of disk analysis, and when you’ve metrics like % Disk time, %disk read time and % disk write time, it’s quite hard to know about the state of the disk in a moment (if it’s reading, writing or in idle state).

If someone got any idea, it’s all welcome. Until then, I’m going to try some statistical acrobacies to see if this problem can be solved.

See ya!

Other references ’bout Markov Processes and Models:

http://en.wikipedia.org/wiki/Hidden_Markov_model
http://en.wikipedia.org/wiki/Semi-Markov_process
http://en.wikipedia.org/wiki/Markov_process
Queueing Networks and Markov Chains – G. Bolch, S. Greiner, H. de Meer & K. S. Trivedi