监控指标、分析工具

内存 换入换出平缓

CPU 使用率(高不好吗)

网络 时延、丢包率

磁盘 {

使用率 磁盘处理I/O时间的百分比

IOPS 每秒IO请求数

吞吐量 每秒IO请求大小

响应时间 收到时间 - 发送时间

}

top 看 wa

iostat 写合并、读合并

pidstat -d 1 查看具体进程的 IO吞吐量

iotop

sar 查看一个时间段的 io 统计

为什么顺序读写比随机读写快?

排序数组为什么比无序快?(快3倍以上)存储分层结构,CPU分支预测

同一个文件一定是磁盘连续的吗?使用 filefrag 查看连续程度

用户空间(user mode) - 库函数 - 系统调用 - 内核空间(kernel mode)

VFS

超级块、目录项、文件对象(FD)、inode(内存中)

FS

目录树、逻辑块(数据块)、超级块(磁盘元信息)、inode(磁盘上)

通用块层

向上提供统一的标准接口,对OS的IO请求合并、排队(CFQ、DataLine算法)、重排,最后刷盘

磁盘

HD

7500 rpm,最坏延迟 8ms

15000 rpm,最坏延迟 4ms

机械臂、磁头(head)、盘片

磁道(track)、扇区(sector,通常是512B)

HD读写时间 = 寻道时间 + 旋转时间 + 数据传输时间

顺序读写节省了寻道时间、旋转时间,所以速度快

SSD

主控

数据块(channel block)

存在的问题:磨损平衡、充放电、写入放大、先擦除再写入

GCC 提供 -o、-o1、-o2、-o3 优化