之前一篇文章对比了同一个虚拟机规格下,Windows和Linux下的Postgresql 性能对比。 虚机的测试结果显示,Windows 的postgresql 性能比 Linux下的快了6倍。
为了多样本测试,我找了一台笔记本,上面装了双系统,再次测试下Postgresql 在实体机下,2个系统之间的性能差异。
测试硬件环境:
Wbin Expert UX2 笔记本,CPU 是 i5 4200U 2核4线程 (虚机或者云主机的话这个算作4核CPU),8G DDR3, 三星OEM 中低端 SSD (买杂牌笔记本的血泪史)。
测试软件环境:
Windows: UEFI+GPT分区,windows 文件系统是NTFS。OS是 最新版本Windows Server 2025,并系统更新至最新。
Linux: UEFI+GPT分区, 文件系统是XFS(之前虚机下测试,XFS最快)。OS是 Debian 13 , 用apt update && apt upgrade更新至最新。
性能测试软件(这个同上一篇):
Postgresql 官方自带专用性能测试工具PgBench. 默认参数初始化是10万条数据,这个不太符合日常数据量。所以因数参数设了100(数据量扩大100倍),让测试表初始化生产1000万条数据用于性能压测(符合典型的生产环境表数据量大小)。
PgBench 会在数据表中,进行select, update和 insert 操作(最日常的数据操作,基本符合日常生产操作) 。可以用-c 命令指定多个客户端,按照典型情况,设置为4。一共压测60秒,看这60秒内,数据库能完成多少次select,update和 insert操作(transaction)
测试结果:
Windows的测试结果:
Window上的测试结果还不错。tps 能到达近2000. 这个性能基本可以抗住中等规模的应用。虽然我的这个SSD不怎么样,但测试下来实际性能还行。 比机械硬盘强了3倍多。
Linux的测试结果:
Linux的测试结果还是非常差。 tps才238. 感觉SSD加持下,成绩提高了一倍都不到。 这个成绩,也只能抗下微小应用的压力。 这个TPS完全上不了台面。
总结:
这次实体机+SSD对比, Windows 平台比Linux平台快了8倍多。
之后计划在我这2个实体机和虚机平台上测试下:
- MYSQL 性能对比。
- .Net 性能对比。
- JAVA Spring boot 性能对比。
- RUST性能对比。
之后的测试计划会更贴近实际生产情况,会用编程语言,编写一个测试应用,模拟一个账号注册,登录和更新账号信息的流程。可以纵向对比操作系统,数据库之间的性能。也可以横向对比编程语言之间的性能。
