Table des matières
Installation" >Installation
Instructions" >Instructions
Maison tutoriels informatiques connaissances en informatique Combat pratique : test de lecture et d'écriture du disque dur sous Linux

Combat pratique : test de lecture et d'écriture du disque dur sous Linux

Feb 19, 2024 pm 03:40 PM
io 读写 fio

Concept

fio, également connu sous le nom de Flexible IO Tester, est une application écrite par Jens Axboe.

Jens est le responsable du sous-système block IO dans le noyau Linux.

FIO est un outil utilisé pour tester les performances du système de fichiers réseau et du disque. Il est souvent utilisé pour vérifier les modèles de machines et comparer les performances du système de fichiers. Il envoie automatiquement des commandes fio à une liste de machines du cluster et collecte les IOPS pour les petits fichiers et les données de débit pour les gros fichiers.

Combat pratique : test de lecture et décriture du disque dur sous Linux

rw=[mode]
rwmixwrite=30 在混合读写的模式下,写占30%

mode
read 顺序读
write 顺序写
readwrite 顺序混合读写
randwrite 随机写
randread 随机读
randrw 随机混合读写
Copier après la connexion

Installation

yumdownloader --destdir=/tmp --resolve fio
rpm -ivh /tmp/*.rpm
rpm -ivh fio-3.7-2.el7.x86_64.rpm
Copier après la connexion

Instructions

说明:
filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录。
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
bs=16k 单次io的块文件大小为16k
bsrange=512-2048 同上,提定数据块的大小范围
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs=30 本次的测试线程为30.
runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
ioengine=psync io引擎使用pync方式
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息。
此外
lockmem=1g 只使用1g内存进行测试。
zero_buffers 用0初始化系统buffer。
nrfiles=8 每个进程生成文件的数量。
Copier après la connexion

Test de la bande passante d'écriture aléatoire

fio --name=wbw --filename=/data/sui_ji_xie --numjobs=4 
--bs=128k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --norandommap --rw=randwrite 
--group_reporting --iodepth=512 --iodepth_batch=128 --iodepth_batch_complete=128 --gtod_reduce=1 --runtime=30
Copier après la connexion

Test de latence d'écriture aléatoire 4K :

fio --name=wlat --filename=/data/4k_sui_ji_xie --numjobs=1 --runtime=30 
--bs=4k --size=4G --ioengine=libaio --direct=1 --norandommap --randrepeat=0 
-rw=randwrite --group_reporting --iodepth=1 --iodepth_batch_complete=0
Copier après la connexion

Test d'IOPS en écriture aléatoire 4k :

fio --name=wiops --filename=/data/4k_sui_ji_xie_iops --numjobs=4 
--bs=4k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --norandommap 
--rw=randwrite --group_reporting --iodepth=512 --iodepth_batch=128 
--iodepth_batch_complete=128 --gtod_reduce=1 --runtime=30
Copier après la connexion

Test de la bande passante de lecture 4k :

fio --name=rbw --filename=/data/4k_sui_ji_du --numjobs=4 
--bs=128k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --norandommap 
--rw=randread --group_reporting --iodepth=512 --iodepth_batch=128 
--iodepth_batch_complete=128 --gtod_reduce=1 --runtime=30
Copier après la connexion

Test de latence de lecture aléatoire 4k :

fio --name=rlat --filename=/data/4k_sui_ji_du_yanchi --numjobs=1 --runtime=30 
--bs=4k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --rw=randread 
--group_reporting --iodepth=1 --iodepth_batch_complete=0
Copier après la connexion

Test d'IOPS en lecture aléatoire 4k :

fio --name=riops --filename=/data/4k_sui_ji_du_iops --numjobs=4 
--bs=4k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --norandommap --rw=randread 
--group_reporting --iodepth=512 --iodepth_batch=128 --iodepth_batch_complete=128 --gtod_reduce=1 --runtime=30
Copier après la connexion

Lecture aléatoire :

fio -filename=/data/sui_ji_du -iodepth=1 -ioengine=libaio -direct=1 -rw=randread -bs=4k -size=1G -numjobs=10 -runtime=20 -group_reporting -name=test-rand-read
Copier après la connexion

Écrivez au hasard :

fio -filename=/data/sui_ji_xie -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting -name=test-rand-write
Copier après la connexion

Lire dans l'ordre :

fio -filename=/data/shun_xu_du -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
Copier après la connexion

Lecture et écriture aléatoires hybrides :

fio -filename=/data/hun_he_du_xie -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=10G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop
Copier après la connexion
io=执行了多少M的IO
bw=平均IO带宽
iops=IOPS
runt=线程运行时间
slat=提交延迟
clat=完成延迟
lat=响应时间
bw=带宽
cpu=利用率
IO depths=io队列
IO submit=单个IO提交要提交的IO数
IO complete=Like the above submit number, but for completions instead.
IO issued=The number of read/write requests issued, and how many of them were short.
IO latencies=IO完延迟的分布

io=总共执行了多少size的IO
aggrb=group总带宽
minb=最小.平均带宽.
maxb=最大平均带宽.
mint=group中线程的最短运行时间.
maxt=group中线程的最长运行时间.

ios=所有group总共执行的IO数.
merge=总共发生的IO合并数.
ticks=Number of ticks we kept the disk busy.
in_queue=花费在队列上的总共时间.
util=磁盘利用率
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre l'erreur « undéfini : io.ReadAll » dans Golang ? Comment résoudre l'erreur « undéfini : io.ReadAll » dans Golang ? Jun 25, 2023 am 10:01 AM

Lors du processus de développement utilisant Golang, nous rencontrons souvent des erreurs. L'un d'eux est "undefined:io.ReadAll", cette erreur est principalement due à l'utilisation de méthodes obsolètes. Cet article explique comment résoudre cette erreur. Voyons d’abord pourquoi cette erreur se produit. Avant golang1.15, il n'y avait pas de méthode ReadAll dans le package io. Lorsque nous utilisons cette méthode, le compilateur affichera "undefined:io.Re

Comment utiliser PHP pour implémenter des fonctions de mise en cache, de lecture et d'écriture de données Comment utiliser PHP pour implémenter des fonctions de mise en cache, de lecture et d'écriture de données Sep 05, 2023 pm 05:45 PM

Comment utiliser PHP pour implémenter des fonctions de mise en cache de données et de lecture-écriture. Grâce à la mise en cache, les données fréquemment utilisées peuvent être stockées en mémoire pour augmenter la vitesse de lecture des données. En PHP, nous pouvons utiliser diverses méthodes pour implémenter des fonctions de mise en cache et de lecture et d’écriture des données. Cet article présentera deux méthodes courantes : l'utilisation de la mise en cache de fichiers et l'utilisation de la mise en cache de mémoire. 1. Utilisez la mise en cache de fichiers. La mise en cache de fichiers stocke les données dans des fichiers pour une lecture ultérieure. Voici un exemple de code qui utilise la mise en cache de fichiers pour lire et écrire des données :

Que signifie Linux io ? Que signifie Linux io ? Mar 24, 2023 am 09:43 AM

Linux io fait référence à une opération sur un fichier ; sous Linux, un fichier est une série de flux binaires, donc lors de l'échange d'informations, nous effectuons tous des opérations d'envoi et de réception de données sur ces flux. Ces opérations sont appelées opérations d'E/S ; parce que Linux utilise un mécanisme de mémoire virtuelle, le noyau doit donc être demandé via des appels système pour terminer les opérations d'E/S.

Combat pratique : test de lecture et d'écriture du disque dur sous Linux Combat pratique : test de lecture et d'écriture du disque dur sous Linux Feb 19, 2024 pm 03:40 PM

Concept fio, également connu sous le nom de FlexibleIOTester, est une application écrite par JensAxboe. Jens est le responsable du sous-système blockIO dans LinuxKernel. FIO est un outil utilisé pour tester les performances du système de fichiers réseau et des disques. Il est souvent utilisé pour vérifier les modèles de machines et comparer les performances du système de fichiers. Il envoie automatiquement des commandes fio à une liste de machines du cluster et collecte les IOPS pour les petits fichiers et les données de débit pour les gros fichiers. rw=[mode]rwmixwrite=30 En mode lecture et écriture mixte, l'écriture représente 30 % moderead lecture séquentielle écriture écriture séquentielle lectureécriture séquentielle lecture et écriture mixte randwrite écriture aléatoire r

Comment résoudre l'erreur « undéfini : io.TeeReader » dans Golang ? Comment résoudre l'erreur « undéfini : io.TeeReader » dans Golang ? Jun 25, 2023 am 09:51 AM

Lors du développement avec Golang, nous rencontrons souvent divers problèmes et messages d'erreur. L'un des problèmes courants est l'erreur « undefined:io.TeeReader ». Cette erreur se produit généralement lors de la compilation du programme et peut parfois être frustrante. Cet article explique comment résoudre ce problème afin que vous puissiez effectuer en douceur le travail de développement de Golang. Voyons d’abord ce que signifie exactement cette erreur. quand nous utilisons

Utilisez la fonction io/ioutil.WriteFile pour écrire une chaîne dans un fichier et définir les autorisations du fichier et le format d'indentation. Utilisez la fonction io/ioutil.WriteFile pour écrire une chaîne dans un fichier et définir les autorisations du fichier et le format d'indentation. Jul 24, 2023 pm 06:21 PM

Utilisez la fonction io/ioutil.WriteFile pour écrire une chaîne dans un fichier et définissez les autorisations du fichier et le format d'indentation. Dans le langage Go, vous pouvez facilement écrire une chaîne dans un fichier à l'aide de la fonction WriteFile du package io/ioutil. Dans le même temps, nous pouvons également définir les autorisations de fichiers et le format d'indentation pour répondre à différents besoins. Voici un exemple de code qui montre comment utiliser la fonction WriteFile pour écrire dans un fichier et définir les autorisations et le format d'indentation : packagemainim

Révéler le fonctionnement interne des opérations sur les fichiers Java Révéler le fonctionnement interne des opérations sur les fichiers Java Feb 28, 2024 am 08:22 AM

API du système de fichiersLes principes internes des opérations sur les fichiers Java sont étroitement liés à l'API du système de fichiers du système d'exploitation. En Java, les opérations sur les fichiers sont fournies par le module java.nio.file du package java.NIO. Ce module fournit une encapsulation de l'API du système de fichiers, permettant aux développeurs Java d'utiliser une API unifiée pour effectuer des opérations sur les fichiers sur différents systèmes d'exploitation. Objet fichier Lorsqu'un programme Java doit accéder à un fichier, il doit d'abord créer un objet java.nio.file.Path. L'objet Path représente un chemin dans le système de fichiers, qui peut être un chemin absolu ou un chemin relatif. Une fois l'objet Path créé, vous pouvez l'utiliser pour obtenir diverses propriétés du fichier, telles que le nom

Comment Java utilise-t-il NIO pour optimiser les IO afin d'implémenter les fonctions de téléchargement et de téléchargement de fichiers ? Comment Java utilise-t-il NIO pour optimiser les IO afin d'implémenter les fonctions de téléchargement et de téléchargement de fichiers ? May 12, 2023 pm 09:31 PM

1. Quelques connaissances préparatoires de base de NIO et NIO dans le système de classe de flux IO en Java : https://blog.csdn.net/ZGL_cyy/article/details/104326458. Questions d'entretien sur le système JavaIO et les systèmes NIO et BIO : https://blog.csdn.net/ZGL_cyy/article/details/122836368Pourquoi utiliser NIO : Le taux de transfert de fichiers IO traditionnel étant faible, NIO est choisi pour les opérations de téléchargement de fichiers. Un autre avantage de NIO est que zéro copie peut réduire la duplication des données en mémoire et réduire l'effet des opérations du processeur. Lieu

See all articles