不久前,我在SPARC硬件上询问了Solaris 10中系统调用的成本问题。在过去的几个月里,这个问题重新出现了几次,这就是我发现的。
如果我们进行综合测试,其中以256字节块从磁盘读取300MB文件,则在Solaris 10中需要的时间比在Linux中长得多。测试按以下方式进行:
dd if=test.dat of=/dev/null bs=256
即使test.dat
存储在像/tmp
这样的内存映射文件系统上,Linux也能大大优于Solaris。似乎在Solaris中用户空间和内核空间之间来回的开销远远高于在Linux中的开销,即使两者都在相同的硬件上运行。
我有两个问题:
谢谢!
答案 0 :(得分:2)
我认为你已经将这个做了真正的比较,因为Solaris和LINUX盒子的性能/容量是相同的?无论如何,一些关键问题可以帮助您解决这个问题:
1)如果在 dd 运行时运行命令 vmstat 1 ,您在Solaris 10机箱与LINUX机箱上获得的数字类型是什么?
2)该操作的经过时间是多少?我在运行Solaris 10 x86的PC上看到的时间只有2秒......
3)尝试使用 if 参数的完全限定路径(即 if = / tmp / test.dat vs if = test.dat 强烈>)只是为了确保你没有跑掉/ tmp。
肖恩。
答案 1 :(得分:1)
您应该在问题中包含更多信息。在我看来,你的问题是关于文件系统,它不是关于操作系统。 XFS允许使用512字节到64千字节之间的块大小创建文件系统,允许调整文件系统以满足预期用途。在Solaris上,默认文件系统是xfs,所以256字节块大小不是一个好参数,请你把它增加到512看看会发生什么?