某日在检测一系统机能时,发明io机能老是无故被耗损,纵然应用措施很空闲,美国云服务器 江西电信服务器,io利用水平也
很高.
利用iotop东西查察io环境.
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00
B/s
TID PRIO USER DISK
READ DISK WRITE SWAPIN
IO>
COMMAND
3584 be/4 mysql 0.00
B/s 0.00 B/s 0.00 % 0.00 %
[jbd2/dm-0-8]
1 be/4
root 0.00
B/s 0.00 B/s 0.00 % 0.00 % init
2 be/4
root 0.00
B/s 0.00 B/s 0.00 % 0.00 %
[kthreadd]
1118 be/3 root 0.00
B/s 3.85 K/s 0.00 % 0.00 % auditd
2152 be/4 mysql 0.00
B/s 3.85 K/s 0.00 % 0.00 % mysqld
--basedir=/usr/local/Perco~--socket=/var/lib/mysql/mysql.sock
1317 be/4 haldaemo 100.10 K/s 0.00
B/s 0.00 % 0.00 % hald
3584 rt/4 mysql 0.00
B/s 0.00 B/s 0.00 % 0.00 % mysqld
--basedir=/usr/local/Perco~--socket=/var/lib/mysql/mysql.sock
11027 rt/4 root 193.22
K/s 0.00 B/s 0.00 % 21.38 % plymouthd
--mode=shutdown
1317 be/4 haldaemo 297.56 K/s 0.00
B/s 2.39 % 8.33 % hald
1569 be/4 root 92.75
K/s 0.00 B/s 0.00 % 4.97 %
console-kit-daemon
--no-daemon
462 be/3 root 30.92
K/s 0.00 B/s 4.21 % 3.08 % udevd
-d
1118 be/3 root 0.00
B/s 3.86 K/s 0.00 % 0.00 %
auditd
1283 be/4 root 30.92
K/s 0.00 B/s 0.00 % 0.00 % cupsd -C
/etc/cups/cupsd.conf
785 be/3 root 81.15
K/s 0.00 B/s 3.96 % 0.00 % udevd
-d
2122 be/4 apache 312.19
K/s 0.00 B/s 77.32 % 0.00 %
httpd d_usbd]
2123 be/4 apache 312.19
K/s 0.00 B/s 77.66 % 0.00 %
httpd
3497 be/4 apache 312.19
K/s 0.00 B/s 78.87 % 0.00 %
httpd
376 be/3 root 0.00
B/s 11.05 K/s 0.00 % 2.84 %
[jbd2/dm-0-8]
2139 be/4 mysql 0.00
B/s 0.00 B/s 0.00 % 0.22 % mysqld
--basedir=/usr/local/Perco~--socket=/var/lib/mysql/mysql.sock
2152 be/4 mysql 0.00
B/s 3.68 K/s 0.00 % 0.00 %
[jbd2/dm-0-8]
376 be/3 root 0.00
B/s 0.00 B/s 0.00 % 0.12 %
[jbd2/dm-0-8]
2144 be/4 mysql 0.00
B/s 11.67 K/s 0.00 % 0.08 % mysqld
--basedir=/usr/local/Perco~--socket=/var/lib/mysql/mysql.sock
2154 be/4 mysql 0.00
B/s 155.62 K/s 0.00 % 0.06 % [jbd2/dm-0-8]
376 be/3 root 0.00
B/s 0.00 B/s 0.00 % 0.04 %
[jbd2/dm-0-8]
发明大量jdb2历程占用io资源.jdb2历程是一个文件系统的写journal的历程,写的次数实在太频繁了,通过perf东西查察
系统相关的占用io的挪用
Samples: 1K of event 'block:block_rq_issue', Event count
(approx.): 1344
+ 58.71% jbd2/dm-0-8
[kernel.kallsyms] [k] child_rip
+ 12.87% flush-253:0
[kernel.kallsyms] [k] _spin_unlock_irqrestore
+ 11.31% flush-253:0
[kernel.kallsyms] [k] child_rip
+ 8.85%
mysqld libpthread-2.12.so [.] 0x000000000000ec0d
+ 2.01% jbd2/dm-0-8
[kernel.kallsyms] [k] memset
+ 1.19%
mysqld [kernel.kallsyms] [k]
_spin_unlock_irqrestore
+ 0.97% kblockd/0
[kernel.kallsyms] [k] child_rip
+ 0.37% kblockd/0
[kernel.kallsyms] [k] _spin_unlock_irqrestore
+ 0.37% flush-253:0
[kernel.kallsyms] [k] scsi_request_fn
+
0.37%
dd [kernel.kallsyms] [k] sha_transform
+
0.30%
ls
ld-2.12.so
[.] dl_main
+ 0.30% flush-253:0
[kernel.kallsyms] [k] blk_queue_bio+
0.22%
who
ld-2.12.so
[.] memset+
0.22% jbd2/dm-0-8 [kernel.kallsyms] [k]
_spin_unlock_irqrestore+
0.22% flush-253:0 [kernel.kallsyms]
[k] kmem_cache_alloc
可以看到jbd2/dm-0-8占用了快要60%的io资源。
查询得知此现像是由于bug造成,可以进级或是通过修改文件系统的提交次数来低落.变动 commit=60后的结果