mount 显示挂载设备,如:
/dev/mapper/VolGroup01-LogVol00 on /var type ext3 (rw)
Run Code Online (Sandbox Code Playgroud)
或者
/dev/mapper/VolGrp_backups-backups on /mnt/backups type ext3 (rw)
Run Code Online (Sandbox Code Playgroud)
但
iostat 使用 dm- 表示法。像dm-0,dm-1等等。
我在哪里可以找到一种方法来知道哪个是哪个?
我有 IBM 服务器和 Redhat 5 ElsmP 通过 iSCSI(在 sdb 中)连接到 IBM 存储有人可以解释 iostat 命令的这个输出
avg-cpu: %user %nice %system %iowait %steal %idle
12.79 0.01 4.53 72.22 0.00 10.45
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 95.63 48.88 240.95 485589164 2393706728
sdb 29.20 350.49 402.08 3481983365 3994494696
Run Code Online (Sandbox Code Playgroud)
将大文件移动到 sdb 非常缓慢,这似乎很正常?
在 Windows 上,每当我想验证/确认数据库或其他低延迟应用程序所在的卷上可能存在与 IO 相关的问题时,我都会检查磁盘延迟。
如果我看到 Windows平均磁盘秒/传输计数器始终 > 18-20 毫秒,那么我在煤矿中的金丝雀就死了,我需要进一步调查。非常简单。
我现在正在研究 Linux,但没有看到类似的基于延迟的指标。我所做的快速研究表明我什至可能不想...我看到很多对 I/O Wait 的引用是大多数人跟踪它的方式。
对此,您是否使用了大致的经验法则?例如,是否有任何 i/o 等待我认为数据库卷不好?是否有一个简单的 iostat 命令可以让我更好地了解整体磁盘健康状况,而不仅仅是盯着 TOP?
非常感谢!
我看到的奇怪且极其缓慢的 IO 模式是这样的(输出iostat -dxk 1 /dev/xvdb1):
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
xvdb1 0.00 0.00 0.99 0.99 7.92 3.96 12.00 1.96 2206.00 502.00 99.41
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
xvdb1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00 0.00 0.00 100.40
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
xvdb1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00 0.00 0.00 100.40 …Run Code Online (Sandbox Code Playgroud) 当 iowait 被认为是高的?
iostat -x
avg-cpu: %user %nice %system %iowait %steal %idle
2,89 0,01 5,45 49,83 0,00 41,83
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
fd0 0,00 0,00 0,00 0,00 0,00 0,00 8,00 0,00 40,00 40,00 0,00
sda 0,18 0,86 2,82 0,60 181,20 21,92 59,35 0,03 10,22 5,02 1,72
sdb 3,96 39,67 6,27 20,94 2243,04 564,37 103,16 0,24 8,83 6,57 17,89
sdc 69,17 0,02 77,40 21,92 37365,20 1578,42 392,10 1,53 15,44 7,46 74,14
sdd 0,64 …Run Code Online (Sandbox Code Playgroud) Windows 是否以与 Linux 相同的方式计算和报告“ iowait”?也就是说,进程进入“不间断睡眠”,他们花费的时间从“CPU空闲”中减去?
如果是这样,哪些 Perfmon 计数器适合检测“由于延迟服务 IO 而导致 CPU 繁忙”而不是“由于计算导致 CPU 繁忙”?
前奏:我使用 mysqldump 命令转储了一个 5.2 GB 的数据库。我在一个只有 512 MB 内存的动力不足的虚拟服务器上完成了这项工作。花了大约一个小时。我现在正在我的台式机上重新加载该数据库,该计算机具有双核 CPU 和 2 GB 内存。重新加载是第 9 个小时,我不知道它是否接近完成。大约一年前,我在同一台机器上重新加载了这个数据库,只花了两个小时。当时和现在的区别是我在raid1模式下用两个SATA磁盘替换了我的单个ATA硬盘。我知道 raid1 会写得更慢(理论上)但绝对不会慢 4.5 倍!所以我爆发了iostat,我变得更加困惑。
$ sudo iostat
Linux 2.6.30-2-amd64 (lukahn) 12/12/2009 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
7.13 0.00 1.94 27.96 0.00 62.97
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 144.02 198.41 11139.44 9322418 523399320
sdb 143.78 165.59 11137.39 7780516 523303000
hda 0.01 0.05 0.00 2492 0
md0 0.66 6.44 0.71 302538 33496
md1 7.32 67.02 7.51 3148938 352960
md2 …Run Code Online (Sandbox Code Playgroud) 如果 iostat 显示 100% 忙等待但 CPU 完全空闲,这意味着什么?我的应用程序运行了一段时间,然后定期进入此状态大约 10-20 秒。
它是 solaris 10 上的事务处理 C++ 应用程序。
IO stat output:
extended device statistics cpu
device r/s w/s kr/s kw/s wait actv svc_t %w %b us sy wt id
c0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 0 0 100
sd1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 …Run Code Online (Sandbox Code Playgroud) 您好,我是服务器的新手,非常感谢您的帮助。如何设置 iostat 日志记录?因为我的磁盘 IO 在某个随机时间奇怪地飙升到非常高的水平。谢谢。
iostat ×10
linux ×5
performance ×3
iowait ×2
hard-drive ×1
io ×1
lvm ×1
mount ×1
perfmon ×1
postgresql ×1
raid ×1
solaris ×1
top ×1
windows ×1