Desempenho lento durante IO moderada / alta

3

A máquina com Windows XP sofre com o desempenho lento durante a E / S mantida, seja na rede ou no disco. CPU e amp; o uso de memória é mínimo, sistema + interrompe o uso < 5% de acordo com o Process Explorer. Uso de memória < 20% (de 4 GB). O disco mantido ou IO de rede de ~ 150 KB / s ou mais causa grandes lentidões. Os aplicativos mais notavelmente ( todos aplicativos) começam extremamente devagar (um pequeno aplicativo Hello World C compilado com o MinGW levou 12 segundos para exibir a mensagem printf () e sair.)

Isso é normal? Se não, o que está acontecendo? Este não é o máximo de E / S possível ... Posso alcançar facilmente algo como 100MB / s para HDD e 5MB / s na rede, mas qualquer resultado acima de ~ 150KB / s resulta nesse comportamento.

Dell Inspiron 1545, Core2 Duo Intel P8600 a 2,4 GHz, 4 GB de RAM, HD de 500 GB

    
por Unsigned 16.10.2011 / 23:49

2 respostas

3

Eu suspeito que o que você está vendo é o comportamento normal do Windows PC em relação à E / S do disco. Para uma possível confirmação, pude comparar dois PCs que executam o Windows 7 com índices de experiência do Windows (indicies?) Muito semelhantes. O primeiro PC é um laptop Thinkpad similar ao seu com uma unidade P8600 @ 2.4 GHz e 2.5 "SATA II 5400rpm. O outro PC é um desktop com um drive dual core 3800+ e 3.5" SATA 7200rpm Athlon 64 X2. Gostaria de iniciar uma cópia local_disk-to-disk de um arquivo grande (vários gigabytes); Enquanto essa cópia de arquivo estava em andamento eu tentaria iniciar um programa aplicativo. O atraso típico para ambos os PCs era da ordem de 10 a 20 segundos (o atraso provavelmente poderia ser correlacionado ao tamanho do programa do aplicativo).

Como o PC de mesa tem dois discos rígidos, também consegui realizar a cópia do arquivo em um disco rígido e depois carregar um aplicativo do outro disco rígido; Com duas unidades de disco independentes, os aplicativos começaram em cerca de 2 a 5 segundos.

Você mencionou que esse problema também ocorre para "E / S de rede". A menos que você realize uma transferência de dados de terminação única (por exemplo, dados de rede para um bloco de bits como / dev / null em * nix), provavelmente você usou um arquivo de disco como fonte ou destino para gerar "rede de E / S". Portanto, a E / S de disco se revela como a atividade comum de "E / S de disco", "E / S de rede" e inicialização lenta de aplicativos.

Isso pode ser um truque de agendamento no Windows: uma tarefa com E / S intensiva (como uma cópia de arquivo) pode obter prioridade de agendamento quando cada operação individual de leitura ou gravação for concluída (para compensar o tempo ocioso que o processo foi forçado a aguardar e manter a taxa de transferência de E / S). Outra tarefa / processo iniciada enquanto esta tarefa intensiva de E / S está ativa poderia estar em uma desvantagem de planejamento de E / S. Eu vi uma peculiaridade semelhante em outro sistema operacional: Eu estava desenvolvendo um utilitário de cópia de banco de dados em um sistema multiusuário (não no Unix). O utilitário reduziu a velocidade do sistema para todos os outros usuários durante a execução, por isso fui acusado de manipular o agendador ou as prioridades de trabalho a meu favor, mas não o fiz.

    
por 17.10.2011 / 05:26
1

Largura de banda é apenas metade da história. Se for uma E / S aleatória, poderá desacelerar tudo até o ponto em que as E / Ss começam a fazer fila.

Você deve ativar Perfmon.exe e verificar os contadores comprimento médio da fila de disco e média de segundos por transferência .

    
por 17.10.2011 / 12:59