fread et cache sous linux

fread et cache sous linux - C - Programmation

Marsh Posté le 22-03-2007 à 13:48:48    

Bonjour,

 

Afin de faire certains benchmarks, j'écris un petit programme m'affichant des graphes de taux de transfert de fichiers à travers un système de fichier NFS.
Je teste ca sur des fichiers de 1GO en général. Le programme fonctionne très bien, mais à un moment donné, tout ce que j'ai lu se retrouve en cache sur mon système, et lorsque je reboucle sur le début du fichier, le taux de transfert passe en gros de 10MO/sec (taux moyen à travers un reseau 100Mbits), a 500 MO /sec.

 

Le programme est écrit en C, je n'ai pas de code à présenter car je n'ai à priori pas de bug (enfin, pas de ce coté), par contre je ne sais pas s'il existe un appel système permettant de vider le cache, ou bien d'empecher le système de mettre les fichiers lus en cache.

 

Merci :)

Reply

Marsh Posté le 22-03-2007 à 13:48:48   

Reply

Marsh Posté le 22-03-2007 à 14:26:43    

echo 3 > /proc/sys/vm/drop_caches
 
Mais c'est assez bourrin. Je comprends pas l'intérêt de faire ça à part avoir des résultat à fortement la baisse ...

Reply

Marsh Posté le 22-03-2007 à 15:37:06    

Merci bien :)

 

C'est assez bourrin effectivement, mais on a besoin de faire des tests de performances de lectures multiples (20 clients) sur un serveur NFS, pour voir si c'est le réseau ou bien les disques durs qui vont faire chuter les performances en premier (bien que je suis persuadé que ca sera les disques durs).

 

Si j'accède à un fichier qui a déjà été précédemment lu, les performances sont faussées, car aucun accès réseau sur le serveur n'est fait.

  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed