Oracle下的SSD性能

Oracle下的SSD性能

我在 SSD 上运行 Oracle 时遇到了严重的性能问题。

我有两个 OCZ Vertex 3 MAX IOPS 驱动器(固件 2.15)。它在 INTEL C600 SATA 芯片组上运行。Windows 2008 R2。

因此问题如下。

当我将 Oracle 重做日志放在第一个 sdd 上并将数据库文件放在其他 ssd 上时,第二个 sdd 上发生了严重的性能下降。我创建了一个没有任何索引主键的测试表,只是为了测试目的以简化情况。它有一个 blob 字段和一个 varchar 字段。我以最大速度将 1kb 的数据插入到 blob 字段中。

发生了什么:Oracle 开始以 30-40mb/s 的速度写入重做日志。当它只写入日志时,它工作正常。然后 Oracle 停止写入重做日志并以 40mb 的速度写入数据库文件。然后它再次开始写入重做日志。之后神秘的事情发生了。它开始以 2mb/秒(~200 iops)的速度写入数据文件,仅此而已。从此时起,它将以此速度写入此 sdd 驱动器。如果我从文件管理器打开磁盘,速度会很慢,如果我尝试在 oracle 以 2mb/s 的速度写入时将文件复制到该磁盘,速度也会非常慢。所以看起来 ssd 驱动器已达到极限,但这怎么可能发生?SSD 中有一半以上是空的。我尝试切换重做日志和数据文件驱动器,得到的结果相同,但使用另一个驱动器。

如果我只是将文件复制到 ssd,则显示写入速度 ~600mb/s。该系统中还有两个硬盘驱动器。因此,我尝试将重做日志放在 hdd 上,将数据文件放在 ssd 上。这就是发生的情况。重做日志的写入速度增加到 50-60mb/s(因此插入速度也一样。为什么在 ssd 上速度更慢?)。但是,当它开始将 ssd 驱动器写入数据文件时,速度仍为 2mb/s。

我接下来尝试将重做日志和数据文件放在一个 ssd 驱动器上。奇迹就在这里发生了。它先写入重做日志,然后写入数据文件,但它以 20mb/s 的速度写入重做日志和数据文件,而 2mb/s 的速度则没有这种情况。所以它在一块 ssd 上比在两块 ssd 上工作得更快。为什么?

我接下来尝试的是将数据文件放在硬盘上,将重做日志放在固态硬盘上。而且它也运行良好,数据文件的写入速度为 30mb/s。

所以我不知道发生了什么、如何修复它以及我的 SSD 出了什么问题。

相关内容