Optimiser et tester les performances des instances

Cette page décrit les performances moyennes attendues et les paramètres de performances recommandés pour Filestore. Elle indique également comment tester les performances de vos instances Filestore.

Performance attendue

Chaque niveau de service Filestore fournit un niveau de performances différent. Les performances d'une instance donnée peuvent varier par rapport aux chiffres attendus en raison de divers facteurs, tels que l'utilisation de la mise en cache, le nombre de VM clientes, le type de machine des VM clientes et la charge de travail testée.

Les tableaux suivants présentent les performances attendues des instances Filestore en fonction de leur niveau de service et de la capacité configurée:

Performances Capacité IOPS de lecture et d'écriture Débit en lecture et en écriture (Mio/s)
BASIC_HDD 1 Tio à 10 Tio 600/1,000 100/100
BASIC_HDD 10 Tio à 63,9 Tio 1,000/5,000 180/120
BASIC_SSD 2,5 Tio à 63,9 Tio 60,000/25,000 1,200/350
ZONAL 1 Tio 9 200/2 600 260/88
ZONAL 9,75 Tio 89 700/25 350 2 535/858
ZONAL 10 Tio 92 000/26 000 2,600/880
ZONAL 100 Tio 920,000/260,000 26,000/8,800
REGIONAL 1 Tio 12,000/4,000 120/100
REGIONAL 9,75 Tio 117 000/39 000 1 170/975
REGIONAL 10 Tio 92 000/26 000 2,600/880
REGIONAL 100 Tio 920,000/260,000 26,000/8,800
ENTERPRISE 1 Tio 12,000/4,000 120/100
ENTERPRISE 10 Tio 120,000/40,000 1,200/1,000

Le tableau précédent indique les performances attendues avec la capacité minimale et maximale pour chaque niveau de service. Entre ces limites, les performances évoluent de manière linéaire à mesure que la capacité évolue. Par exemple, si vous doublez la capacité d'instance de votre entreprise de 1 Tio à 2 Tio, les performances attendues de l'instance passent de 12 000/4 000 IOPS en lecture et écriture à 24 000/8 000 IOPS en lecture et en écriture.

Dans les scénarios impliquant un seul client et peu de clients, vous devez augmenter le nombre de connexions TCP avec l'option d'installation nconnect pour atteindre des performances NFS maximales. Nous vous recommandons de spécifier jusqu'à 7 connexions pour le niveau de service zonal, et jusqu'à 2 connexions pour les niveaux régional et Enterprise. En général, plus la capacité de partage de fichiers est élevée et moins le nombre de VM clientes connectées est important, plus vous gagnez en performances en spécifiant des connexions supplémentaires avec nconnect.

Type de machine cliente recommandé

Nous vous recommandons d'utiliser un type de machine Compute Engine, tel que n2-standard-8, qui fournit une bande passante de sortie de 16 Gbps. Cette bande passante de sortie permet au client d'atteindre environ 16 Gbps de bande passante de lecture pour les charges de travail compatibles avec le cache. Pour en savoir plus, consultez l'article Bande passante réseau.

Options d'installation des clients Linux

Nous vous recommandons d'utiliser les options d'installation NFS suivantes, en particulier l'installation hard, async, ainsi que les options rsize et wsize, pour obtenir des performances optimales sur les instances de VM clientes Linux. Pour plus d'informations sur les options d'installation NFS, consultez la page nfs.

Option par défaut Description
hard Le client NFS relance indéfiniment les requêtes NFS.
timeo=600 Le client NFS attend 600 décisecondes (60 secondes) avant de réessayer une demande NFS.
retrans=3 Le client NFS tente d'effectuer les requêtes NFS à trois reprises avant de poursuivre la procédure de récupération.
rsize=262144 Le client NFS peut recevoir un maximum de 262 144 octets du serveur NFS par requête READ.
Remarque: Pour les instances de niveau de base, définissez la valeur rsize sur 1048576.
wsize=1048576 Le client NFS peut envoyer un maximum de 1 048 576 octets (1 Mio) au serveur NFS par requête WRITE.
resvport Le client NFS utilise un port source privilégié lors de la communication avec le serveur NFS pour ce point d'installation.
async Le client NFS retarde l'envoi des écritures d'application au serveur NFS jusqu'à ce que certaines conditions soient remplies.
Attention : L'utilisation de l'option sync réduit considérablement les performances.

Performances d'une ou de plusieurs VM clientes

Les niveaux de service évolutifs de Filestore sont optimisés pour plusieurs VM clientes et non pour une VM cliente unique.

Pour les instances zonales, régionales et d'entreprise, au moins quatre VM clientes sont nécessaires pour bénéficier de performances optimales. Cela garantit que toutes les VM du cluster Filestore sous-jacent sont pleinement utilisées.

Pour plus de contexte, le plus petit cluster Filestore évolutif possède quatre VM. Chaque VM cliente communique avec une seule VM de cluster Filestore, quel que soit le nombre de connexions NFS par client spécifié à l'aide de l'option d'installation nconnect. Si vous utilisez une seule VM cliente, les opérations de lecture et d'écriture ne sont effectuées qu'à partir d'une seule VM de cluster Filestore.

Améliorer les performances de toutes les ressources Google Cloud

Les opérations sur plusieurs ressources Google Cloud, telles que la copie de données de Cloud Storage vers une instance Filestore avec gsutil, peuvent être lentes. Pour limiter les problèmes de performances, essayez les solutions suivantes:

  • Assurez-vous que le bucket Cloud Storage, la VM cliente et l'instance Filestore se trouvent tous dans la même région.

    Les emplacements birégionaux constituent une option optimale pour les données stockées dans Cloud Storage. Si vous utilisez cette option, assurez-vous que les autres ressources résident dans l'une des régions uniques contenues dans l'emplacement birégional. Par exemple, si vos données Cloud Storage se trouvent dans us-central1,us-west1, assurez-vous que votre VM cliente et votre instance Filestore se trouvent dans us-central1.

  • Pour vous donner un point de référence, vérifiez les performances d'une VM associée à un disque persistant et comparez-les à celles d'une instance Filestore.

    • Si la VM associée à un disque persistant présente des performances similaires ou plus lentes par rapport à l'instance Filestore, cela peut indiquer un goulot d'étranglement des performances sans lien avec Filestore. Essayez ce qui suit pour améliorer les performances de référence de vos ressources autres que Filestore:

      • Appliquez l'option gsutil -m. Cette option permet d'exécuter en parallèle les opérations compatibles, y compris cp, mv et rsync.

      • Appliquez les configurations gsutil suivantes. Chacune est des valeurs de configuration boto modifiables définies dans le fichier de configuration boto. Les utilisateurs peuvent modifier le fichier directement (recommandé) ou à l'aide de l'option gsutil -o:

    • Si les performances de l'instance Filestore sont nettement inférieures à celles de la VM associée à un disque persistant, essayez de répartir l'opération sur plusieurs VM.

      • Cela permet d'améliorer les performances des opérations de lecture à partir de Cloud Storage.

      • Pour les instances zonales, régionales et d'entreprise, au moins quatre VM clientes sont nécessaires pour bénéficier de performances optimales. Cela garantit que toutes les VM du cluster Filestore sous-jacent sont entièrement utilisées. Pour plus d'informations, consultez la page Performances des VM clientes uniques et multiples.

Tester les performances

Si vous utilisez Linux, vous pouvez utiliser l'outil fio pour évaluer le débit en lecture et en écriture, ainsi que les IOPS, pour les instances de niveau de base. Notez que cette méthode d'analyse comparative des performances n'est pas recommandée pour les instances zonales, régionales et d'entreprise.

Les exemples de cette section présentent des analyses comparatives courantes que vous pouvez exécuter. Pour obtenir des performances optimales, vous devrez peut-être exécuter l'outil fio à partir de plusieurs instances de VM clientes.

L'exemple suivant évalue le débit maximal en écriture :

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=write --blocksize=1m --iodepth=64 --readwrite=write

L'exemple suivant évalue le nombre maximal d'IOPS en écriture :

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=randwrite --blocksize=4k --iodepth=256 --readwrite=randwrite

L'exemple suivant évalue le débit maximal en lecture :

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=read --blocksize=1m --iodepth=64 --readwrite=read

L'exemple suivant évalue le nombre maximal d'IOPS en lecture :

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=randread --blocksize=4k --iodepth=256 --readwrite=randread

Étapes suivantes