[toc] 背景 MySQL在26日 16:23:49產生了大量的慢查詢,在這段時間內,binlog文件刷新的很快(查看慢日誌是mysql DML併發比較多),想知道寫完一個binlog文件究竟花了幾分鐘時間? 分析 三個binlog文件的最後修改間隔時間分別是2 分鐘和1 分鐘 同一個事務只能寫同 ...
目錄
背景
MySQL在26日 16:23:49產生了大量的慢查詢,在這段時間內,binlog文件刷新的很快(查看慢日誌是mysql DML併發比較多),想知道寫完一個binlog文件究竟花了幾分鐘時間?
分析
- 三個binlog文件的最後修改間隔時間分別是2 分鐘和1 分鐘
- 同一個事務只能寫同一個binlog文件
- mysql-bin.016126文件的最後修改時間16:22不一定是mysql-bin.016127 文件創建的時間(存在大事務的情況下,大事務還在寫上一個binlog文件,新的事務已經在寫新創建的binlog文件了)
- 使用mysqlbinlog 可以讀取binlog文件中的event,知道文件的創建時間
- 在Linux下,是否有命令可以查出文件的創建時間了?
方法
1、使用stat命令
stat mysql-bin.016126
File: ‘mysql-bin.016126’
Size: 262146609 Blocks: 512016 IO Block: 4096 regular file
Device: fd02h/64770d Inode: 135529302 Links: 1
Access: (0640/-rw-r-----) Uid: ( 5701/actiontech-mysql) Gid: ( 5701/actiontech-mysql)
Access: 2019-04-28 14:41:42.967043003 +0800
Modify: 2019-04-26 16:24:21.823932020 +0800
Change: 2019-04-26 16:24:21.823932020 +0800
1、訪問時間,讀一次這個文件的內容,這個時間就會更新。比如對這個文件運用 more、cat等命令。ls、stat命令都不會修改文件的訪問時間
2、修改時間,修改時間是文件內容最後一次被修改時間。比如:vi後保存文件。ls -l列出的時間就是這個時間
3、狀態改動時間。是該文件的i節點最後一次被修改的時間,通過chmod、chown命令修改一次文件屬性,這個時間就會更新
如果文件創建後就沒有修改過,修改時間=創建時間;如果文件創建後,狀態就沒有改變過,那麼狀態改變時間=創建時間;如果文件創建後,沒有被讀取過,那麼訪問時間=創建時間。對使用過的文件,這些基本不太可能
2、使用debugfs
獲取binlog文件存放根文件目錄
grep 'datas' /etc/fstab
/dev/mapper/centos-datas /datas ext4 defaults 1 2
得到binlog文件inode號
ls -i mysql-bin.016127
135529232 mysql-bin.016127
得到文件創建時間
debugfs -R 'stat <135529232>' /dev/mapper/centos-datas
debugfs 1.42.9 (28-Dec-2013)
Inode: 135529232 Type: regular Mode: 0640 Flags: 0x80000
Generation: 2396969921 Version: 0x00000000:00000001
User: 5701 Group: 5701 Size: 262147164
File ACL: 0 Directory ACL: 0
Links: 1 Blockcount: 512016
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x5cc2c082:47dcd9bc -- Fri Apr 26 16:25:38 2019
atime: 0x5cc55c49:2929fd18 -- Sun Apr 28 15:54:49 2019
mtime: 0x5cc2c082:47dcd9bc -- Fri Apr 26 16:25:38 2019
crtime: 0x5cc2c035:c470d1d0 -- Fri Apr 26 16:24:21 2019
Size of extra inode fields: 28
EXTENTS:
- crtime即為文件創建時間
- crtime和mtime文件最後修改時間差1分17秒
- MySQL寫完一個binlog文件用時1分多鐘
註意
xfs文件系統不支持用debugfs來查看文件的創建時間
grep root /etc/fstab
/dev/mapper/centos-root / xfs defaults 1 1
ls -i /test1
357556 /test1
debugfs -R 'stat <357556>' /dev/mapper/centos-root
debugfs 1.42.9 (28-Dec-2013)
/dev/mapper/centos-root: Bad magic number in super-block while opening filesystem
stat: Filesystem not open
參考
Linux文件創建時間