2012-04-02 35 views
2

前一段時間,我問了一個有關Solaris 10中SPARC硬件系統調用成本的問題。在過去的幾個月裏,這個問題已經重演了幾次,而這正是我發現的。Solaris vs Linux中的系統調用開銷

如果我們進行一個綜合測試,其中一個300MB的文件以256字節的塊的形式從磁盤讀取,那麼在Solaris 10中它將花費相當長的時間,然後在Linux中執行。該測試是在以下方式進行:

dd if=test.dat of=/dev/null bs=256

即使test.dat存儲在內存映射文件系統上像/tmp,Linux的大幅度優於Solaris操作系統。在Solaris中,在用戶空間和內核空間之間來回切換的開銷似乎比在Linux中高得多,即使兩者都在相同的硬件上運行。

我有兩個問題:

  1. 它是某種的Solaris在Linux上知道的劣勢?
  2. 假設我無法從256增加I/O塊的大小,是否有辦法調整Solaris以匹配Linux編號?

謝謝!

+1

這裏有很多未指定的變量。這是在可比較的硬件?相同的磁盤?相同的文件系統?如果您想回答有關係統調用開銷的問題,則應該使用不執行其他工作的不同系統調用。 – alberge 2012-04-02 04:40:26

+0

@alberge我能得到的最好的「可比較的硬件」是在Windows7主機上運行的VirtualBox機器的兩個實例。我知道這個設置可能是片狀的,但是在一系列實驗中,數字仍然在合理的分散範圍內。在使用「/ tmp」的測試中,兩個文件系統都是相同的 - tmpfs。我還分別通過指定ibs和obs來增強測試,並保持obs爲8192. – evolvah 2012-04-03 15:30:34

+0

文件系統只有「相同」,因爲它們具有相同的名稱。Linux和Solaris之間的tmpfs實現沒有共同之處。嘗試找到可以衡量系統調用開銷的東西,而不是您目前使用的複雜組合。您還應該說明兩個系統的規格,並找出測試過程中遇到的瓶頸。 – jlliagre 2012-04-04 05:04:55

回答

1

你應該在你的問題中包含更多信息。在我看來,你的問題是關於文件系統,而不是操作系統。 XFS允許創建具有512字節和64千字節之間的塊大小的文件系統,從而允許文件系統根據預期用途進行調整。在Solaris上,默認的文件系統是xfs,所以256字節的塊大小不是一個好的參數,你能否把它增加到512來看看會發生什麼?

+1

Solaris默認文件系統是ufs(S10及更早版本)或ZFS(S11)。對於/ tmp,默認值是tmpfs。 Solaris上沒有xfs支持。 – jlliagre 2012-04-03 12:21:20

2

我假設你已經做了一個真正的蘋果到蘋果的比較,Solaris和LINUX盒子的性能/容量是相同的嗎?不管怎麼說,一些關鍵問題,以幫助您完成此:

1)如果您運行命令的vmstat 1而這DD運行時,你得到了什麼類型的數字在Solaris 10箱主場迎戰LINUX框?

2)該操作經過的時間是多少?我看到幾乎2秒運行Solaris 10的x86這樣做,我的電腦...

3)嘗試使用您的如果參數完全合格的路徑(即如果=/tmp目錄/ TEST.DAT vs if = test.dat)只是爲了加倍確定你正在使用/ tmp。

肖恩。

+0

要將經過時間增加到更好的可觀察值,只能增加輸入文件的大小。在我的硬件上,大約4-5秒內會消耗300MB的文件。稍後當我進入測試系統時,我將運行vmstat。與此同時,通過查看Solaris上的'prstat'輸出,我沒有注意到任何等待I/O的重要時間。 USR和SYS的總和接近100%。並且SCL值每秒樣品高於0.2M。 – evolvah 2012-04-03 15:35:55