SQLOS写入性能在CentOS 6.3上比MacOSX 10.8.2慢约10倍

时间:2013-03-08 15:14:49

标签: sqlite centos ext3

总结:与MacOSX 10.8.2相比,插入/删除/更新事务在CentOS 6.3上花费的时间是10-15倍

我正在使用Perl的SQLite(3.7.12)(DBD :: SQLite 1.37)。我的应用程序有许多地方可以在事务中进行多次写入(删除,更新和插入)。

我一直在比较3台机器之间的时间:

  • MBP:带有常规磁盘的2010 MacBook Pro
  • MBA:2011年装有SSD的MacBook Air
  • CentOS 6.3服务器(带有1TB软件RAID,4核,8GB RAM的AMD Opteron 3250)

与MBP和MBA相比,CentOS服务器的交易时间大约延长10倍至15倍。正如预期的那样,MBA有点快,因为它有一个SSD。如果我将pragma同步关闭,那就像预期的那样好又快。

我们每次都运行完全相同的测试序列,最终得到了不同的数据库。在测试运行时,CentOS盒子上运行的其他东西很少(注意)。

对低级磁盘写入性能进行基准测试,CentOS机器优于其他机器。 我应该在哪里看下一个?

2 个答案:

答案 0 :(得分:0)

我会开始减少依赖关系。

尝试在in-memory database上运行测试。

尝试在直接C中运行它以确保它不是以某种方式perl。我有点怀疑,但应该很容易嘲笑。

答案 1 :(得分:0)

问题结果是在/ etc / fstab中配置ext3文件系统的方式。

我最后做了很多实验和性能测试,以便更好地理解这一点,我在服务器故障中写道:

  

https://serverfault.com/questions/486677/should-we-mount-with-data-writeback-and-barrier-0-on-ext3

总之,文件系统是用 barrier = 1 挂载的;将其更改为 barrier = 0 ,再加上 data = ordered ,会回复我们“缺失”的效果。