Problema relacionado ao disco ou à memória
Assim como uma grande fração de memória real está disponível para arquivos de buffering, o espaço de página do sistema está disponível como armazenamento temporário para dados de trabalho do programa que foi forçado a sair de RAM.
vmstat -s >temp.file # cumulative counts before the command
time $1 # command under test
vmstat -s >>temp.file # cumulative counts after execution
grep "pagi.*ins" temp.file >>results # extract only the data
grep "pagi.*outs" temp.file >>results # of interestO script vmstatit resume o relatório volumoso vmstat -s , que dá contagens cumulativas para várias atividades do sistema desde que o sistema foi iniciado.
# vmstatit "cp file1 file2" 2>resultsreal 0m0.03s
user 0m0.01s
sys 0m0.02s
2323 paging space page ins
2323 paging space page ins
4850 paging space page outs
4850 paging space page outsvmstat -s >temp.file
time $1
vmstat -s >>temp.file
echo "Ordinary Input:" >>results
grep "^[ 0-9]*page ins" temp.file >>results
echo "Ordinary Output:" >>results
grep "^[ 0-9]*page outs" temp.file >>results
echo "True Paging Output:" >>results
grep "pagi.*outs" temp.file >>results
echo "True Paging Input:" >>results
grep "pagi.*ins" temp.file >>resultsreal 0m2.09s
user 0m0.03s
sys 0m0.74s
Ordinary Input:
46416 page ins
47132 page ins
Ordinary Output:
146483 page outs
147012 page outs
True Paging Output:
4854 paging space page outs
4854 paging space page outs
True Paging Input:
2527 paging space page ins
2527 paging space page insA saída de comando time confirma a existência de uma dependência de E/S. O aumento de página ins mostra a E/S necessária para satisfazer o comando cp . O aumento de outs de página indica que o arquivo é grande o suficiente para forçar a escrita de páginas sujas (não necessariamente as suas) da memória. O fato de não haver alteração nas contagens de paginação acumulativa-espaço-E/S confirma que o comando cp não constrói estruturas de dados grandes o suficiente para sobrecarregar a memória da máquina de teste.
A ordem em que esta versão do script vmstatit relata E/S é intencional. Programas típicos lêem entrada de arquivo e depois gravam saída de arquivo. A atividade de paginação, por outro lado, geralmente começa com a escrita para fora de uma página do segmento de trabalho que não cabe. A página é lida novamente em apenas se o programa tentar acessá-lo. O fato de o sistema de teste ter experimentado quase o dobro depaging space page outscomopaging space page insdesde que foi bootado indica que pelo menos alguns dos programas executados neste sistema armazenaram dados em memória que não foi acessada novamente antes do término do programa. Os programas de memória limitada fornecem mais informações. Veja também Desempenho de memória.
# cc -c ed.c
# vmstatit "cc -c ed.c" 2>resultsreal 0m7.76s
user 0m7.44s
sys 0m0.15s
Ordinary Input:
57192 page ins
57192 page ins
Ordinary Output:
165516 page outs
165553 page outs
True Paging Output:
10846 paging space page outs
10846 paging space page outs
True Paging Input:
6409 paging space page ins
6409 paging space page ins# rmss -c 8real 0m9.87s
user 0m7.70s
sys 0m0.18s
Ordinary Input:
57625 page ins
57809 page ins
Ordinary Output:
165811 page outs
165882 page outs
True Paging Output:
11010 paging space page outs
11061 paging space page outs
True Paging Input:
6623 paging space page ins
6701 paging space page insOs seguintes sintomas de dependência de E/S estão presentes:
- O tempo decorrido é mais longo que o tempo total da CPU
- Quantidades significativas de E/S ordinárias no nth execução do comando
# rmss -rpara liberar de volta para o sistema operacional a memória que o comando rmss teve sequestesado, restaurando assim o sistema para sua capacidade normal.