2012-06-05 83 views
1

我一直在尋找性能調優的環境,我已經設置了一些參數來提高NFS的性能,從簡單的事情,比如設置掛載選項,到像設置sysctl這樣的高級參數,甚至考慮啓用巨幀網卡和防火牆。通過NFS的memcached?

我在同一臺服務器上運行NFS和memcached,我覺得我可以通過消除memcached網絡開銷獲得性能提升。

一些環境信息是爲了第一:在DSR設置

4負載平衡Web服務器,連接到主/主複製的ASA 5510 2 MySQL的服務器。 1個運行memcached和nfs的應用/文件服務器。

添加額外的服務器不在桌面上討論。

Web服務器將其內容從導出的NFS安裝中提供。 Web服務器上的NFS掛載設置爲使用udp而不是tcp。

Web服務器在apache/php之前運行清漆,清漆設置爲僅爲每個圖像,css和javascript提供獨立的子域。

網站在大部分時間內都會在5秒內加載,但偶爾即使在夜間流量較低時,我們也會發現加載時間較長。有時候最多10秒。當然這並不壞,但我們沒有理由不能看到更好的表現。所有文件都通過NFS提供。順便說一句,我最近在他們原來的技術轉換職位後獲得了這個客戶。

因爲服務器現在針對NFS連接進行了優化,所以我認爲我可以/應該這樣做,就是將memcached設置爲以unix套接字模式運行,從而禁用其網絡功能,然後將unix套接字放置在導出的文件系統上。這樣Web服務器仍然可以連接到memcached,但它會消除一些開銷,因爲我的NFS掛載運行的是udp而不是tcp。

+0

有趣的想法,但我懷疑你會獲得任何東西。通過UDP訪問遠程unix套接字可能會給您提供額外的普通TCP開銷,因爲在NFS服務器端您必須處理RPC。 –

回答

1

在文件系統上的unix套接字文件只是一個句柄兩個進程連接到相同的套接字;所有的通信都是本地的,並且將它放在NFS上(如果甚至可能的話)將不能跨機器進行通信。此外,即使NFS有一些機制,它可能會比直接使用memcache更糟糕。