1 votes

Confusion sur la taille des blocs du système de fichiers

Je sais que la taille des blocs est, de manière générale, l'unité d'opération minimale d'un système de fichiers, mais j'ai été troublé par fio, l'outil d'évaluation des performances d'E/S, qui a une bs pour définir la "taille du bloc".

Si la taille de bloc est pour un système de fichiers, pourquoi fio peut en définir une pour un benchmark ? S'agit-il de la même "taille de bloc" ?

Si je constate que les performances sont optimales avec une "taille de bloc fio" de 1M, puisque fio peut le faire, puis-je forcer tous les processus opérant sur ce système de fichiers à utiliser une taille de bloc de 1M pour obtenir les meilleures performances ? Qu'en est-il des systèmes de fichiers distants montés avec fuse, puis-je définir la taille de bloc au moment du montage ?

5voto

Tero Kilkanen Points 32968

Il y a beaucoup de détails ici, je vais essayer de résumer les points principaux ici.

La taille du bloc du système de fichiers est l'unité d'allocation minimale qui peut être réservée à un moment donné. Ainsi, si un système de fichiers a une taille de bloc de 4096, un fichier d'un octet occupe toujours 4096 octets sur le disque dur.

Cela est dû au fait que le système de fichiers doit savoir quelle partie du disque dur appartient à quel fichier. Si la taille du bloc était plus petite, la table d'allocation serait plus grande. Si la taille du bloc était plus grande, encore plus d'espace serait gaspillé avec des petits fichiers.

Il existe également d'autres stratégies d'allocation d'espace aux fichiers, en fonction du système de fichiers utilisé. Mais c'est la stratégie de base qui est le plus souvent utilisée.

Cependant, au niveau de l'application, le bs Le paramètre est la taille du bloc d'une opération individuelle d'écriture/lecture. fio utilise lors de l'exécution du benchmark. Des opérations d'écriture/lecture de plus grande taille peuvent offrir de meilleures performances, car plusieurs écritures de blocs au niveau du système de fichiers peuvent être combinées.

Vous ne pouvez pas forcer les applications à utiliser une taille de bloc spécifique. Elles écrivent/lisent exactement la quantité de données qu'elles souhaitent à tout moment. La taille des opérations individuelles d'écriture/lecture varie de quelques octets à des mégaoctets, en fonction de l'application.

fio est une exception ici, car il s'agit d'un outil de référence.

Les systèmes de fichiers distants fonctionnent au-dessus du système de fichiers du serveur distant, et c'est donc le système de fichiers réel du serveur distant qui spécifie la taille des blocs utilisés sur le disque dur.

Le protocole utilisé lors de l'accès au système de fichiers du serveur distant possède également certaines "tailles de bloc", le plus souvent définies par la taille du segment TCP, qui est déterminée à partir du MTU. Le MTU est le plus souvent de 1500 octets sur Internet. Dans certains environnements locaux, le MTU peut être de 9000 octets. Cela nécessite le soutien de toutes les parties du réseau (commutateurs, routeurs et NIC) pour fonctionner correctement.

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