缓存I/O
缓存I/O又称作标准I/O,多数文件系统默认都采用缓存I/O。
在 Linux 的缓存 I/O 机制中,数据先从磁盘复制到内核空间的缓冲区,然后从内核空间缓冲区复制到应用程序的地址空间(用户空
间)。
优点:
- 减少硬盘读写次数;
- 分离内核空间和用户空间,保护系统安全。
缺点:
- 数据可能在用户空间和内核空间之间来回地拷贝,这也会增大CPU及内存的开销。
直接I/O
应用程序跳过内核空间缓冲区直接访问磁盘,这可以克服缓存I/O的缺点,但应用程序一般需要自己实现缓存。比如数据库程序可能更倾向于自己实现缓存机制。
I/O监测命令
iostat
iostat - Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions.
常用选项参数:
-d
Display the device utilization report. 显示磁盘信息
-h
Make the Device Utilization Report easier to read by a human. 直观的显示
-k
Display statistics in kil