当前位置: 首页 > news >正文

PostgreSQL 测试磁盘性能

安装

sudo yum install epel-release -y
sudo yum install fio -y

适合pg的磁盘测试

这个配置模拟的是:

  • PostgreSQL 对数据库文件的随机 8KB 读取
  • 多并发(4 jobs)、深队列(iodepth 32)
  • 绕过操作系统缓存(--direct=1)

fio --name=pg-test \--filename=/tmp/fio.test \--rw=randread \--bs=8k \--iodepth=32 \--numjobs=4 \--time_based \--runtime=60s \--ioengine=libaio \--direct=1

参数解读

  • -rw=read

    顺序读,模拟全表扫描时从头到尾顺序读取数据文件。

  • -bs=1M

    PostgreSQL 顺序扫描时一般会以 8KB 页为基本单位,但为了减少系统调用,底层往往会成批读取。这里用 1MB 可以更接近数据库批量读取的效果(你可以改成 128k 或 512k 来更精细模拟)。

  • -iodepth=1

    顺序扫描基本是串行提交 I/O,请求深度低。

  • -numjobs=1

    单进程读取,类似单个 SQL 进程扫描表。

  • -size=10G

    模拟表数据大小,可以改成你实际数据库大表的大小。

  • -direct=1

    绕过文件系统缓存,直接测试磁盘性能(PostgreSQL 实际运行会受 OS 缓存影响,这里更纯粹看存储性能)。

  • -time_based --runtime=60s

    运行固定时间,而不是必须读完整个文件。

模拟扫全表

fio --name=pg-seqscan \--filename=/tmp/fio.seqscan \--rw=read \--bs=1M \--iodepth=1 \--numjobs=1 \--time_based \--runtime=60s \--ioengine=libaio \--direct=1 \--size=10G

参数解读

参数含义
--name=randread测试任务名称,随便取名
--ioengine=libaio使用 Linux AIO 异步 IO 引擎(对真实负载较贴近)
--rw=randread模拟 随机读取(不涉及写入)
--bs=4k每个 IO 请求块大小为 4KB(典型数据库页大小)
--numjobs=8启动 8 个线程/并发任务
--iodepth=32每个线程最多同时提交 32 个 IO 请求(最大并发深度)
--runtime=30s总运行时间为 30 秒
--size=1G每个线程测试 1GB 的文件大小(并发共享)
--filename=/tmp/fio.test测试使用 /tmp/fio.test 文件(你可以指定挂载盘)
--direct=1绕过文件系统缓存,直接访问磁盘,反映真实设备性能

http://www.dtcms.com/a/477431.html

相关文章:

  • 北京网站开发科技企业网站
  • 干货|腾讯 Linux C/C++ 后端开发岗面试
  • 【深度学习新浪潮】如何入门分布式大模型推理?
  • 基于单片机的螺旋藻生长大棚PH智能控制设计
  • 分布式专题——42 MQ常见问题梳理
  • mapbox基础,使用矢量切片服务(pbf)加载symbol符号图层
  • Linux中setup_arch和setup_memory相关函数的实现
  • 智能合约在分布式密钥管理系统中的应用
  • Spark大数据分析与实战笔记(第六章 Kafka分布式发布订阅消息系统-01)
  • 做网络竞拍的网站需要什么厦门网站设计哪家公司好
  • React Native:从react的解构看编程众多语言中的解构
  • C++ 手写 List 容器实战:从双向链表原理到完整功能落地,附源码与测试验证
  • 化工课设代做网站网络宣传网站建设价格
  • 【第1篇】2025年羊城工匠杯nl2sql比赛介绍
  • 2025年ASP.NETMVC面试题库全解析
  • 机器学习:支持向量机
  • C 标准库 - `<locale.h>`
  • YOLO系列——Ubuntu20.04下通过conda虚拟环境安装Labelme
  • 流量安全优化:基于 Sentinel 实现网站流量控制和熔断
  • Ansible 自动化部署K8S1.34.1
  • 1. 使用VSCode开发uni-app环境搭建
  • Docker监控:cAdvisor+Prometheus+Grafana实战指南
  • Redis-持久化之AOF
  • Python Redis 教程
  • R语言绘制热图
  • GPU微架构
  • Vue-- Axios 交互(二)
  • 中煤浙江基础建设有限公司网站曹妃甸网站建设
  • phpcms做汽车网站wordpress如何关注博客
  • 读《华为基本法》,聚焦可复用的方法论