首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fio &fio深度值来模拟数据库PostgreSQL工作负载?

fio &fio深度值来模拟数据库PostgreSQL工作负载?
EN

Server Fault用户
提问于 2020-03-26 04:39:16
回答 1查看 1.1K关注 0票数 0

我正在尝试使用fio对ZFS 10阵列SATA进行基准测试,这些设置在某种程度上代表了类似于PostgreSQL的数据库工作负载。

例如,对于随机读取:

代码语言:javascript
复制
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=randread.fio --bs=4k --iodepth=4 --numjobs=16 --size=10G --readwrite=randread

但是,我不确定应该将iodepthnumjobs设置为哪些值,以及它们可以用数据库工作负载来表示什么。

可以将numjobs解释为来自客户端的并发数据库连接的数量吗?是否可以将iodepth解释为每个数据库连接中并发/挂起/排队的数据库查询的数量?

您推荐iodepthnumjobs的值范围是什么?

EN

回答 1

Server Fault用户

发布于 2020-04-03 15:09:21

像上面用ZFS描述的那样,这个作业有一个大问题:Linux上的ZFS并不总是实现O_DIRECT异步,因为它目前通过(最小)缓冲I/O实现O_DIRECT,这意味着libaio在到达iodepth之前可能会变成阻塞。

Num作业是否可以解释为来自客户端的并发数据库连接的数量?

不太..。一个客户端可能会触发多个I/O,这取决于他们所要求的查询。我们也不知道你的数据库后端是做什么的。

是否可以将in深度解释为每个数据库连接中并发/挂起/排队的数据库查询的数量?

同样,这并不是因为映射将取决于数据库的后端代码选择。有些数据库可以配置为使用线程、进程、AIO,甚至是所有这些.

你推荐的碘深度值和数字值范围是多少?

对此没有很好的答案--您可能需要分析您的数据库(在系统I/O级别)并创建一些匹配的东西(除非您可以安排数据库供应商帮助您)。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1008446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档