2011-11-15 59 views
0

我有一個網站運行在IIS 7.5上,使用C#,Asp.Net 4和MS SQL 2008 R2,託管在雲計算機上。在雲端主機上將網站從32位升級到64位有什麼優勢?

我們的託管服務提供商提供了從流程模式切換到32位到64位的機會。

我今天試了一下64位的選項,但是快速查看我看不到任何性能改進。

當然我會進行更多的測試,希望能比較一些客觀的數據。

我的問題是:

  • 是否64位進程消耗更多的RAM that32位單?
  • 我們的網站已經在64位機器上編譯過,我可以有一些意想不到的兼容性問題嗎?
  • Asp.Net 4是否利用64位進程?
  • 64位使用雙倍的RAM?

感謝您的幫助!

有趣的文章: http://en.wikipedia.org/wiki/64-bit#32-bit_vs_64-bit

+0

什麼優惠?你能嘗試一個更好的詞嗎? – leppie

+0

更好地服務於serverfault,但我不認爲會有很大的性能差異。您只能通過在網站上施加嚴格的負載和流量來測試性能,以查看64位處理器與32位處理器的對比情況。\ –

+0

感謝leppie對您的評論,您完全正確。我更新了我的標題。你覺得現在更有意義嗎? – GibboK

回答

1

64位進程是否消耗更多RAM 32位1?

它會使用更多的虛擬內存(但它不會是32位進程的兩倍),這會增加對物理RAM的需求。但是,64位進程可以訪問更多的虛擬內存。一個32位的Windows進程只能訪問2GB的虛擬內存,但理論上64位的進程可以訪問8TB的虛擬內存(儘管由於操作系統限制等,物理限制要低得多)。

我們的網站已經在64位機器上編譯過了,我可以有一些 出乎意料的兼容性問題?

編譯代碼的操作系統應該沒有關係。重要的是代碼編譯爲代碼爲的處理器架構。如果這是x86,則無論主機操作系統是32位還是64位,該站點都將以32位運行。如果編譯爲AnyCPU,則它將在64位操作系統上以64位運行。

Asp.Net 4是否利用64位進程?

是的,在上面提到的方式(能夠解決更多的虛擬內存)。

64位使用雙倍RAM嗎?

不會。一個等效的64位進程將使用更多的虛擬內存,但不會加倍。虛擬內存需求的增加在一定程度上將轉化爲物理內存需求的增加。

+0

感謝Adam的回覆,Asp.Net 4是否利用了64位進程?你通常會建議升級到64位嗎? – GibboK

+0

我已經更新了我的答案。如果不瞭解應用程序的更多信息,我無法建議您是否應該這樣做。通常,從32位移到64位是一件好事,只要64位env具有足夠的RAM即可。正如paulsm4提到的那樣,您應該對應用進行配置以查看該益處是否超過成本。如果您的虛擬內存要求很低,那麼切換可能沒有太多好處。 –

+0

感謝Adam的更新。在做出決定時,必須有個人資料。我非常感謝你對此的見解,幫助我理解這個問題。 – GibboK

1

問:64位進程消耗更多的RAM that32位單? 答:是的,絕對:)

問:我們的網站已經在64位機器上編譯過,可否有一些意想不到的兼容性問題? 文章:這取決於你的意思是「編譯」。 C#或ASP.Net應用程序(就像Java應用程序一樣)應該與平臺無關 - 您可以在兩個平臺上運行相同的二進制文件。

一般觀察: 如果你不需要需要 64位(即如果你不需要2 ++ GB的地址空間),那麼堅持使用32位。

如果你的數據庫通常需要4 ++ GB的GB,並且你的數據庫必須和其他所有東西一樣駐留在同一個主機上(即與你的web服務器和應用程序共存),那麼64位可能是一個好主意。

要確切知道的唯一方法是配置您的應用程序。

你已經做到了這一點,是不是;)?

+0

謝謝paulsm4,是的,我還沒有配置文件,但我的Web應用程序:-)只是我想從你的傢伙在這個問題上的一般反饋。 PS:數據庫在另一臺服務器上 – GibboK

0

您的數據庫服務器是最可能受益最多的組件,它可以升級到64位。如果你的數據庫數據大於3GB左右,那麼升級到64位操作系統將爲你的數據庫虛擬地址空間提供呼吸空間。它可能會使用比32位版本更多的RAM,但這不是重點。使用64位地址空間,數據庫服務器可以選擇內存映射數據庫數據1:1到虛擬內存地址空間,並大大簡化其文件I/O。操作系統內核會在引用數據庫文件時將其頁面交換到內存中。

根據您的應用程序的數據庫訪問模式以及您的數據庫數據實際適合服務器上可用的物理RAM的情況,與在32位上運行同一應用程序相比,這可以提高數據訪問時間的性能系統和32位數據庫。 64位服務器通常比32位表兄弟擁有更多的物理內存,這也會改善數據庫響應時間,因爲更多的數據庫數據可以保存在內存中,而不必等待磁盤I/O。

如果您的數據庫數據小於3GB,則通過移至64位不會看到任何顯着的性能改進。

是的,64位應用程序通常使用的內存比32位版本多一點,但是完全取決於應用程序的寫入方式。指針(對象引用)的大小增加到64位,但是整數,雙精度和字符數據不會。

如果64位系統具有與32位系統相同數量的物理內存,那麼根本看不出有太多的性能改進。但是誰製造了具有2001年代32位RAM容量的2011年64位服務器?它不會發生。你的64位服務器幾乎肯定會擁有比它所替代的32位服務器更多的物理內存。

由於移動到64位,是否有發現兼容性問題或錯誤的風險?當然。任何變化都會帶來發現問題的風險。總是有一個計劃B,以防萬一遇到難以克服的問題。你不太可能會遇到問題,但總有可能。

ASP.NET是否會受益於升級到64位?除非您的Web服務器代碼是CPU綁定或內存綁定,可能不是。 Web服務器往往是I/O綁定的。他們花費大量時間等待下一個網絡請求,或等待磁盤I/O。具有大量RAM的超高速64位處理器不會比任何其他機器「等待更快」的磁盤或網絡I/O。

相關問題