监控指标、分析工具
内存 换入换出平缓
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 优化