2 votes

Quelle est la politique de mode d'écriture utilisée dans Ubuntu ?

Existe-t-il un moyen de savoir si Ubuntu utilise une politique d'écriture à travers ou en retour ?

Je sais que le write back est bien meilleur, mais lorsque j'écris un programme en C pour tester le cache, il apparaît qu'Ubuntu utilise le write through.

MISE À JOUR : je veux dire que c'est le cache du processeur et non le cache du système de fichiers. Ce qui me préoccupe, c'est la politique d'écriture dans les caches L1, L2, L3 et la RAM. Merci !

2voto

Dans un cache en écriture, lorsque des modifications sont apportées aux données mises en cache, elles ne le sont pas simultanément aux données d'origine. Au lieu de cela, les données modifiées sont marquées et les données originales sont mises à jour lorsque les données mises en cache sont désallouées.

En revanche, dans un cache en écriture directe, les modifications apportées aux données mises en cache sont simultanément apportées à la copie d'origine. Une mémoire cache de type write-back peut fonctionner plus rapidement qu'une mémoire cache de type write-through. Mais dans certains contextes, les différences entre les données mises en cache et les données d'origine peuvent entraîner des problèmes, et les caches à accès direct doivent être utilisés

fuente

Le système d'exploitation sur lequel vous travaillez n'a pas d'importance, c'est le système de fichiers que vous utilisez qui est le plus important.

Ubuntu utilise par défaut ext4 comme système de fichiers et pour connaître ext4 utilise les deux modes write-back et write-through.

Pour activer le mode "write back

Exécuter :

 tune2fs -o journal_data_writeback /dev/sd*

Modifier fstab

vi -w /mnt/sdXY/etc/fstab

Trouvez la ligne qui fait référence à sd*. Elle ressemblera à quelque chose comme :

# /dev/sda2
UUID=be2f0ac2-4683-4550-bcd1-704a1a840b3e / ext4 relatime,errors=remount-ro 0 1

La première entrée est l'UUID .

La deuxième entrée est le chemin.

Le troisième est le fstype .

Les options sont au quatrième rang.

Cinquièmement, il s'agit de la décharge

Le sixième est un laissez-passer.

Modifier les options (4ème) en :

noatime,data=writeback,barrier=0,nobh,errors=remount-ro

Redémarrez votre système pour terminer les modifications.

fuente

Vérifier également este pour plus d'informations.

2voto

Jed Points 121

Vous pouvez également consulter le mode "data=" actuel en regardant dans /proc/mounts. Voici un exemple tiré de mon ordinateur portable :

$ grep ext /proc/mounts 
/dev/mapper/crypt-root / ext4 rw,noatime,errors=remount-ro,user_xattr,barrier=1,data=ordered 0 0
/dev/mapper/vg0-boot /boot ext4 rw,nosuid,nodev,noexec,noatime,user_xattr,barrier=1,data=ordered 0 0
/dev/mapper/crypt-homes /home ext4 rw,nosuid,noatime,user_xattr,acl,commit=60,barrier=1,data=ordered 0 0

Notez également que "nobh" est une option de montage obsolète.

0voto

Colin Ian King Points 16984

Vous pouvez également vérifier si l'utilisation de la fonction O_SYNC | O_DIRECT dans open() est ce que vous voulez. Le manuel indique :

"L'indicateur O_DIRECT s'efforce de transférer les données de manière synchrone, mais ne garantit pas, comme l'indicateur O_SYNC, que les données et les métadonnées nécessaires sont transférées. Pour garantir des E/S synchrones, O_SYNC doit être utilisé en plus de O_DIRECT".

Voir homme 2 ouvert ouvert pour plus de détails.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X