1

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

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

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

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

与 MBP 和 MBA 相比,CentOS 服务器上的事务花费大约 10 到 15 倍的时间。正如预期的那样,MBA 更快一些,因为它有一个 SSD。如果我关闭 pragma 同步,它就像预期的那样又好又快。

我们每次都运行完全相同的测试序列,并最终得到相同的数据库。在测试运行时,CentOS 机器上几乎没有其他(值得注意的)运行。

以低级磁盘写入性能为基准,CentOS 机器优于其他机器。我接下来应该看哪里?

4

2 回答 2

0

我会开始减少依赖。

尝试在内存数据库上运行测试。

尝试在直接 C 中运行它,以确保它不是 perl。我有点怀疑,但应该很容易模拟。

于 2013-03-08T18:59:55.667 回答
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,恢复了我们“缺失”的性能。

于 2013-03-26T23:56:34.153 回答