全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-21 7 分钟 ✍️ juanwangdev

存储 IO 性能调优

容器存储 IO 性能直接影响应用响应,下面介绍调优方法。

存储驱动优化

选择 overlay2

Bash
# 查看当前驱动
docker info | grep "Storage Driver"

# overlay2 是推荐的驱动
# 性能优于 aufs 和 devicemapper

Direct-LVM 模式

JSON
// /etc/docker/daemon.json (devicemapper)
{
  "storage-driver": "devicemapper",
  "storage-opts": [
    "dm.thinpooldev=/dev/mapper/docker-thinpool",
    "dm.use_deferred_removal=true",
    "dm.use_deferred_deletion=true"
  ]
}

Direct-LVM 使用独立块设备,性能优于 loop-lvm。

IO 限制

BPS 限制

Bash
# 限制读取/写入 BPS
docker run -d \
  --device-read-bps /dev/sda:10mb \
  --device-write-bps /dev/sda:10mb \
  my-app

IOPS 限制

Bash
# 限制读取/写入 IOPS
docker run -d \
  --device-read-iops /dev/sda:1000 \
  --device-write-iops /dev/sda:1000 \
  my-app

Volume 优化

数据卷 vs 绑定挂载

类型性能适用场景
Volume数据库、缓存
Bind Mount开发、配置
Bash
# Volume 性能更优
docker run -d -v my-data:/var/lib/mysql mysql:8.0

# Bind Mount 性能略低
docker run -d -v /data/mysql:/var/lib/mysql mysql:8.0

tmpfs Volume

Bash
# 内存中存储(最高性能)
docker run -d --tmpfs /tmp:size=100m my-app

# 适合临时数据、缓存

文件系统优化

XFS vs EXT4

Bash
# XFS 适合大文件和高吞吐
mkfs.xfs /dev/sda1

# EXT4 适合小文件和高 IOPS
mkfs.ext4 /dev/sda1

挂载选项

Bash
# /etc/fstab
/dev/sda1 /var/lib/docker xfs noatime,nodiratime 0 0

# noatime: 不更新访问时间,减少写入

数据库 IO 优化

YAML
# Compose 配置
services:
  mysql:
    image: mysql:8.0
    volumes:
      - db-data:/var/lib/mysql  # 使用 volume
    deploy:
      resources:
        limits:
          # IO 限制
          blkio_weight: 500
Bash
# 数据库专用参数
docker run -d \
  -v db-data:/var/lib/mysql \
  --blkio-weight 500 \
  mysql:8.0

监控 IO

Bash
# 查看容器 IO
docker stats my-app

# 查看底层 IO
cat /sys/fs/cgroup/blkio/docker/<id>/blkio.throttle.io_service_bytes

# iostat 查看宿主 IO
iostat -x 1

要点总结

  • overlay2 是推荐存储驱动,性能优于 aufs 和 devicemapper
  • Direct-LVM 模式使用独立块设备提升 devicemapper 性能
  • Volume 性能优于 Bind Mount,数据库优先使用 Volume
  • --device-read/write-bps 限制 BPS,--device-read/write-iops 限制 IOPS
  • XFS 适合大文件,EXT4 适合小文件,noatime 减少写入

📝 发现内容有误?点击此处直接编辑

← 上一篇 容器启动全流程
下一篇 → 容器启动加速
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库