Logo Dicas-L
Dicas-L em RSS
Home Histórico Bookmarks Artigos Cursos Newsletters L.I.C. Rau-Tu FAQ Educação Galeria de Imagens Fale Conosco

Linux e Windows NT -- Uma comparação de desempenho

Alguns tempos atrás resolvi realizar uma comparação entre sistemas Linux e Windows NT. Fiz apenas uma comparação do desempenho da transferência de arquivos com o programa FTP. Não pude utilizar equipamentos idênticos, mas optei por uma configuração igualmente polêmica. Um ultrapassado 486 contra um Pentium 200 MMX.

A máquina rodando Linux é um 486DX/66, com 32 MB de memória, fabricado em 1993. O sistema operacional é o Conectiva Linux, versão do kernel 2.0.38. O MTU da interface ethernet do Linux é de 1500 bytes.

A estação NT é um Pentium 200/MMX, com 64 MB de memória, fabricado em 1998. O sistema operacional desta máquina é Windows NT server versão 4.0.

Realizei cinco transferências, usando FTP, em cada máquina, de um arquivo de 19MB de tamanho. Todas as duas máquinas estão conectadas na mesma subrede, uma ethernet a 10Mbits/s. As transferências foram intercaladas. Primeiro o Linux, depois NT e assim sucessivamente. Nenhuma das duas máquinas estava rodando processos que pudessem interferir no seu desempenho.

Em todas as transferências o Linux ganhou. Considerando-se que as duas máquinas são brutalmente diferentes em termos de performance, dá para se notar que a implementação TCP/IP do Linux é consideravelmente melhor do que a do Windows NT server no tocante ao aspecto analisado, a saber, transferência de arquivos usando FTP.

Abaixo incluo as linhas de resultados das transferências nos dois sistemas. A média de tempo do Linux foi de 23,4 segundos, e a média da taxa de transferência foi de 816 kbytes/segundo. No NT a média de tempo foi de 29,51 segundos e a taxa de transferência foi de 664,60 kbytes/segundo. O Linux obteve um resultado 28% melhor no tempo de transferência em relação ao NT.

Linux

1. 19529038 bytes received in 22.3 secs (8.5e+02 Kbytes/sec)
2. 19529038 bytes received in 22.6 secs (8.4e+02 Kbytes/sec)
3. 19529038 bytes received in 26.4 secs (7.2e+02 Kbytes/sec)
4. 19529038 bytes received in 23 secs (8.3e+02 Kbytes/sec)
5. 19529038 bytes received in 22.7 secs (8.4e+02 Kbytes/sec)

Windows NT

1. 19529038 bytes received in 30,7 secs (649,39 kbytes/sec)
2. 19529038 bytes received in 29,20 secs (668,76 kbytes/sec)
3. 19529038 bytes received in 29,06 secs (671,98 kbytes/sec)
4. 19529038 bytes received in 28,96 secs (674,30 kbytes/sec)
5. 19529038 bytes received in 29,65 secs (658,59 kbytes/sec)

No teste acima, o Windows NT levou uma grande vantagem por estar instalado em uma máquina mais moderna e com discos mais rápidos. Desta forma a taxa de transferência foi afetada pelo tempo de gravação em disco, consideravelmente maior no micro mais obsoleto no tocante a hardware, o 486. Para eliminar esta disparidade, realizei uma outra medição, desta vez sem realizar a gravação em disco.

O arquivo transferido foi gravado no Linux em /dev/null, que na verdade é um buraco negro do Unix, ou seja, nada é gravado. O dispositivo equivalente no Windows NT é ``nul''. O tempo de transferência não sofre o impacto do I/O e podemos ter uma boa idéia de quanto tempo efetivamente foi gasto apenas no trânsito dos dados via rede.

Nesta outra medição utilizei o comando wget. No NT a sintaxe do comando foi:

wget -O null [1]ftp://ftp.unicamp.br/pub/dicas-l.zip

No Linux a sintaxe do comando foi:

wget -O /dev/null [2]ftp://ftp.unicamp.br/pub/dicas-l.zip

Os dados obtidos neste teste estão incluídos abaixo. Foram feitas dez medições em cada sistema.

WindowsNT

12:45:25 (631.78 KB/s) - `nul' saved [2587767]
12:46:22 (631.78 KB/s) - `nul' saved [2587767]
12:46:22 (631.78 KB/s) - `nul' saved [2587767]
12:46:47 (631.78 KB/s) - `nul' saved [2587767]
12:47:05 (631.78 KB/s) - `nul' saved [2587767]
12:47:20 (631.78 KB/s) - `nul' saved [2587767]
12:47:34 (505.42 KB/s) - `nul' saved [2587767]
12:51:17 (631.78 KB/s) - `nul' saved [2587767]
12:51:49 (631.78 KB/s) - `nul' saved [2587767]
12:52:24 (631.78 KB/s) - `nul' saved [2587767]

Linux

09:45:29 (711.26 KB/s) - `/dev/null' recebido [2587767]
09:45:48 (751.00 KB/s) - `/dev/null' recebido [2587767]
09:46:10 (719.98 KB/s) - `/dev/null' recebido [2587767]
09:46:22 (779.25 KB/s) - `/dev/null' recebido [2587767]
09:46:34 (736.12 KB/s) - `/dev/null' recebido [2587767]
09:46:45 (724.31 KB/s) - `/dev/null' recebido [2587767]
09:46:56 (720.59 KB/s) - `/dev/null' recebido [2587767]
09:47:07 (706.69 KB/s) - `/dev/null' recebido [2587767]
09:47:18 (684.30 KB/s) - `/dev/null' recebido [2587767]
09:47:35 (661.90 KB/s) - `/dev/null' recebido [2587767]

Na média, a máquina Linux teve uma performance em 15% superior. Este valor é claro não é o correto para uma avaliação de desempenho visto a enorme diferença entre os dois equipamentos. Mas já dá para ter uma idéia do enorme poder do Linux, que é de graça.