Je voudrais comprendre la question suivante:Seuls les écritures sur le disque, mais montre iotop lit ainsi
Un processus fait appel en écriture sys seulement, dans une boucle infinie. Quand j'apporte iotop je m'attendrais à voir une vitesse d'écriture non nulle et une vitesse de lecture nulle liée à ce processus. Mais iotop dit que read et write peuvent être égaux (en fonction de la taille d'écriture). Jetez un oeil sur le code C:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#define BUFSIZE 1000000
char buf[BUFSIZE];
const int write_size = 4000;
int main(){
int fd;
if ((fd = open("filename", O_RDWR | O_CREAT, 0666)) < 0){
return -1;
}
ssize_t ret;
while (1){
ret = write(fd, buf, write_size);
if (ret != write_size){
return -1;
}
}
return 0;
}
Si vous attribuez des valeurs différentes à « write_size » vous verrez différentes vitesses de lecture en iotop. Si la valeur est comme dans le code ci-dessus, les lectures iotop read et write sont égales.
Important:
La question apparaît que sous certaines conditions:
- Le fichier doit être créé et rempli de données (permet de dire au moins 8 Go) avant d'exécuter le code
OS conf:
Debian lenny, 2 To disque, (xfs et ext4 testé), uname -a Linux g-6 2.6.26-bpo.1-xen-amd64 # 1 SMP lun. 12 janv. 14:32:40 UTC 2009 x86_64 GNU/Linux
Merci dans le Advan ce pour résoudre le mystère,
Michal.
Super écrit pour cette question! Je souhaite que chaque débutant était si bien écrit et complet en décrivant leur problème. Bienvenue sur le site! –