⑴ 怎樣提高Windows伺服器性能
這里有許多你只需要做簡單的操作就能對提高伺服器的性能有所幫助。所有的這些都不可能對移動頁文件到一個指定磁碟有什麼異常情況發生,盡管大多數的操作需要手動完成,但是這些所有的技巧都能夠顯著地提高伺服器的性能。
大多數討論關於優化伺服器性能的文章都會集中在使用性能監視器來尋找性能瓶頸問題。性能監視器對於如何提高伺服器性能來說,確實是一個優秀的工具。但是,使用性能監視器,是需要用戶必須了解性能監視器中產生的數據都是些什麼意思。
那麼,這里有十項能夠幫助你做提高伺服器性能的事情
1.為頁文件使用專用磁碟
這項技巧可能是最大限度的提高你伺服器性能的方法。默認情況下,Windows創建一個頁文件,將它作為虛擬內存。因為Windows會頻繁的使用這個文件。這個文件最好的存儲位置就是在一個專門磁碟上(注意:不是單獨卷)。伺服器性能做這些會確保Windows在讀取頁文件數據前,而將不需等待其他的應用使用硬碟完成。
2.保證你的硬碟定期運行磁碟碎片整理程序伺服器性能
現今的磁碟在執行連續不斷的讀取時,其實是很快的。然而,當磁碟被請求去讀取散亂存放的數據時,Windows的性能就會下降。通過運行磁碟碎片整理程序,你能夠確保文件能以順序的方式而不是雜亂無章的存放在磁碟上,從而,你的計算機將會高效地讀取文件。
3.使用NTFS文件系統
盡管對於Windows伺服器版本操作系統來說,NTFS是默認的文件系統,Windows是支持使用FAT和FAT-32文件系統的。我讀過的每一本MSCE培訓教程推薦使用NTFS文件系統是因為它比FAT和FAT-32文件系統使用中更安全。伺服器性能但是這些書籍中都沒有提及NTFS是一種基於處理(transaction-based)的文件系統。這就意味著相比較FAT和FAT-32文件系統而言,NTFS文件系統更快。
4.避免運行16-位應用
64位Windows操作系統根本不能夠運行16位應用,所以說這一項對於64位操作系統來說並不是個問題。但是,32位Windows操作系統將會運行16位應用。使用多任務處理模式的Windows更多的使用16位應用。伺服器性能討論Windows的多任務處理使用16位應用將需要單獨開篇說明,但是可以確定的說,運行16位應用會對降低性能。
5.查找內存泄漏(memory leaks)
內存泄漏很難被寫成是一個應用上的問題。通常情況下,它會為一個應用去在一個需要的基礎上請求操作系統中的內存。典型的是,當應用不再被運行時,它將會把內存釋放給操作系統。如果一個應用包括了一個內存泄漏,當它被運行時,將會向內存發出請求,但是當使用完畢後,釋放內存是失敗的。伺服器性能當下一次應用需要內存時,它將會向Windows要求的內存數比上一次要多。長此以往,Windows能夠為其他的應用提供的內存數將會越來越少。
最初,內存泄漏對系統性能的影響是可以忽略不計的,但是當這樣的泄漏變得越來越多的時候,它對系統性能的影響就會凸現出來。
盡管我曾經說過我不會在這篇文章中討論性能監控器,但是對於查找內存泄漏來說,性能監控器是最佳工具。
6.移除那些極少使用的組件
我曾經購買的每一台伺服器上都會裝上各種各樣的監控或者日誌組件。如果你能夠有計劃有規律的使用這些組件的話,在計算機上安裝這些組件算不得什麼不正確的選擇。伺服器性能但是令我吃驚的是有很多系統管理員安裝(或者從不移除)那些伺服器上的組件,並且實際上除了浪費系統資源外,它們甚至從來沒被運行過。
7.停止運行那些不使用的服務
在一篇類似的文章中,我也推薦瀏覽服務控制管理器,並關閉那些沒有被用到的服務。這樣不但能夠提高我們的伺服器性能,另外它也可以提高伺服器的安全性。計算機有一條法則描述了被執行的代碼越多,代碼中包含的不安全因素的機會就會增多。通過關閉那些不使用的服務,你做得即是減少執行代碼的大小,從而降低伺服器包含的安全漏洞被利用的機會。
8.注銷
這是另一個你能夠提高伺服器安全和性能的方法。當你不再使用控制台的時候,出於安全原因考慮,你應該進行注銷操作。伺服器性能 同時,在你登陸時,Windows將會載入你的用戶屬性,這將會消耗內存和CPU。
9.壓縮磁碟
當微軟發布MS-DOS5.0時,它們介紹了其磁碟壓縮的特色功能。當時的情況是讓硬碟或者軟盤能夠通過壓縮功能存儲更多的數據。當我試著使用磁碟壓縮技術,這時,我的計算機運行就慢了下來,我就改回使用一個沒有壓縮的磁碟,並且直到最近再沒有使用過壓縮。
現在,在正常的情況下,壓縮確實能夠提高系統性能。在一台計算機中,硬碟算得上是運行最慢的部分了。然而,如果你能夠壓縮一個文件,你就是減少了它的物理大小,這也將會減少從硬碟中讀取它的時間量。
同時,一個壓縮文件必須在它從磁碟讀取後被解壓。解壓操作通常是佔用內存,並且進程會附帶的使用一些CPU時間。如果你的伺服器運行一個磁碟加強的應用來解決大量的分散文件(不是一個資料庫),執行壓縮能夠提高系統性能。
10.調整伺服器響應
與個人計算機不同的是伺服器並不總是從伺服器的控制台那裡運行應用。那麼,最優化伺服器是將獲得優先權的應用到後台執行。
你可以通過打開伺服器的控制面板,並雙擊系統圖標。當窗口中顯示系統屬性標簽時,轉到「高級」標簽項,找到性能設置部分,並點擊設置按鈕。窗口中將會顯示性能選項屬性標簽。轉到屬性標簽中的高級選項,並確定伺服器設置為後台服務的最佳性能。
⑵ 如何提高Linux伺服器磁碟io性能
您好,很高興為您解答。
在現有文件系統下進行優化:
linux內核和各個文件系統採用了幾個優化方案來提升磁碟訪問速度。但這些優化方案需要在我們的伺服器設計中進行配合才能得到充分發揮。
文件系統緩存
linux內核會將大部分空閑內存交給虛擬文件系統,來作為文件緩存,叫做page cache。在內存不足時,這部分內存會採用lru演算法進行淘汰。通過free命令查看內存,顯示為cached的部分就是文件緩存了。
如何針對性優化:
lru並不是一個優秀淘汰演算法,lru最大的優勢是普適性好,在各種使用場景下都能起到一定的效果。如果能找到當前使用場景下,文件被訪問的統計特徵,針 對性的寫一個淘汰演算法,可以大幅提升文件緩存的命中率。對於http正向代理來說,一個好的淘汰演算法可以用1GB內存達到lru演算法100GB內存的緩存 效果。如果不打算寫一個新的淘汰演算法,一般不需要在應用層再搭一個文件cache程序來做緩存。
最小分配:
當文件擴大,需要分配磁碟空間時,大部分文件系統不會僅僅只分配當前需要的磁碟空間,而是會多分配一些磁碟空間。這樣下次文件擴大時就可以使用已經分配好的空間,而不會頻繁的去分配新空間。
例如ext3下,每次分配磁碟空間時,最小是分配8KB。
最小分配的副作用是會浪費一些磁碟空間(分配了但是又沒有使用)
如何針對性優化:
我們在reiserfs下將最小分配空間從8KB改大到128K後提升了30%的磁碟io性能。如果當前使用場景下小文件很多,把預分配改大就會浪費很多 磁碟空間,所以這個數值要根據當前使用場景來設定。似乎要直接改源代碼才能生效,不太記得了,09年的時候改的,有興趣的同學自己google吧。
io訪問調度:
在同時有多個io訪問時,linux內核可以對這些io訪問按LBA進行合並和排序,這樣磁頭在移動時,可以「順便」讀出移動過程中的數據。
SATA等磁碟甚至在磁碟中內置了io排序來進一步提升性能,一般需要在主板中進行配置才能啟動磁碟內置io排序。linux的io排序是根據LBA進行的,但LBA是一個一維線性地址,無法完全反應出二維的圓形磁碟,所以磁碟的內置io排序能達到更好的效果。
如何針對性優化:
io訪問調度能大幅提升io性能,前提是應用層同時發起了足夠的io訪問供linux去調度。
怎樣才能從應用層同時向內核發起多個io訪問呢?
方案一是用aio_read非同步發起多個文件讀寫請求。
方案二是使用磁碟線程池同時發起多個文件讀寫請求。
對我們的http正向代理來說,採用16個線程讀寫磁碟可以將性能提升到2.5倍左右。具體開多少個線程/進程,可以根據具體使用場景來決定。
小提示:
將文件句柄設置為非阻塞時,進程還是會睡眠等待磁碟io,非阻塞對於文件讀寫是不生效的。在正常情況下,讀文件只會引入十幾毫秒睡眠,所以不太明顯;而在磁碟io極大時,讀文件會引起十秒以上的進程睡眠。
預讀取:
linux內核可以預測我們「將來的讀請求」並提前將數據讀取出來。通過預讀取可以減少讀io的次數,並且減小讀請求的延時。
如何針對性優化:
預讀取的預測准確率是有限的,與其依賴預讀取,不如我們直接開一個較大的緩沖區,一次性將文件讀出來再慢慢處理;盡量不要開一個較小的緩沖區,循環讀文件/處理文件。
雖然說「預讀取」和「延遲分配」能起到類似的作用,但是我們自己擴大讀寫緩沖區效果要更好。
延遲分配:
當文件擴大,需要分配磁碟空間時,可以不立即進行分配,而是暫存在內存中,將多次分配磁碟空間的請求聚合在一起後,再進行一次性分配。
延遲分配的目的也是減少分配次數,從而減少文件不連續。
延遲分配的副作用有幾個:
1、如果應用程序每次寫數據後都通過fsync等介面進行強制刷新,延遲分配將不起作用
2、延遲分配有可能間歇性引入一個較大的磁碟IO延時(因為要一次性向磁碟寫入較多數據)
只有少數新文件系統支持這個特性
如何針對性優化:
如果不是對安全性(是否允許丟失)要求極高的數據,可以直接在應用程序里緩存起來,積累到一定大小再寫入,效果比文件系統的延遲分配更好。如果對安全性要求極高,建議經常用fsync強制刷新。
在線磁碟碎片整理:
Ext4提供了一款碎片整理工具,叫e4defrag,主要包含三個功能:
1、讓每個文件連續存儲
2、盡量讓每個目錄下的文件連續存儲
3、通過整理空閑磁碟空間,讓接下來的分配更不容易產生碎片
如何針對性優化:
「讓每個目錄下的文件連續存儲」是一個極有價值的功能。
傳統的做法是通過拼接圖片來將這10張圖片合並到一張大圖中,再由前端將大圖切成10張小圖。
有了e4defrag後,可以將需連續訪問的文件放在同一個文件夾下,再定期使用e4defrag進行磁碟整理。
實現自己的文件系統:
在大部分伺服器上,不需要支持「修改文件」這個功能。一旦文件創建好,就不能再做修改操作,只支持讀取和刪除。在這個前提下,我們可以消滅所有文件碎片,把磁碟io效率提升到理論極限。
有一個公式可以衡量磁碟io的效率:
磁碟利用率 = 傳輸時間/(平均尋道時間+傳輸時間)
如若滿意,請點擊回答右側【採納答案】,如若還有問題,請點擊【追問】
~ O(∩_∩)O~
⑶ 有什麼有效提高伺服器性能的方法
受教了,有機會可以去你們那看看伺服器
⑷ 如何提升伺服器的速度
你好來.我來解答下你的問自題.
影響伺服器運行速度的因素是多方面的.比如說伺服器的配置.帶寬.所在機房網路環境.所用的網站程序.是否中病毒木馬等.如果你的伺服器是用的WIN系統.建議像平時優化自己電腦一樣.可以從以下幾個方面來優化提升性能:
一.藉助於一些電腦管家.安全衛士等軟體直接優化系統.
二.ASP的網站直接用IIS即可發布.不需要再配置PHP.NET等其他網站環境.安裝的資料庫太多也會降低伺服器性能.
三.建議沒用的軟體以及程序刪除掉.平時養成好的操作習慣.可以不用安裝殺軟.
四.定期更新系統補丁.並進行病毒和木馬的掃描.
五.平時留意CPU.內存.以及帶寬的佔用情況.當配置不夠用時及時升級.
海騰數據楊闖為你解答.希望以上回答對你有幫助.
⑸ 如何充分利用CPU資源提高伺服器的性能
最好能具體說明你的問題
對於客戶端來說 一般情況下 CPU 的佔用在 20% 以下 如果是伺服器 則要考慮 這個伺服器具體的功能 是文件存儲 還是計算 還是其它應用 但無論如何 CPU 的佔用都不會高的離譜
如果認為這是一種浪費的話 可以引入虛擬伺服器 即在一台實體 vmware 伺服器上 安裝多個伺服器並分配資源 從而共享 CPU 資源
問題是 這種配置 未必是經濟和性能最優
⑹ 如何提高伺服器的性能
1、伺服器系統架構的不合理。
伺服器在設計時,必須考慮整個系統架構的高效、穩定,高的可靠性和可用性。這點我深有體會,在最近的一個項目中,由於伺服器需要接受大批量小數據的多客戶端並發請求,對伺服器的業務處理提出了挑戰。原先的設計採用的了串列業務處理流程,結果導致伺服器大量業務堆積,造成丟包現象異常嚴重。經過討論後,為了提高伺服器的業務處理能力,採用了生產者——消費者模型,在業務上來時,直接進隊,然後返回,繼續接受下一個請求,縮短通信的滯留時間。然後多條業務線程從隊列取業務,加快業務處理速度,這樣就有效的提高了伺服器處理業務的能力。
2、通信協議的不合理。
對於大批量小數據多客戶端並發,可以考慮用UDP協議,由於UDP是一種無連接傳輸協議,可以有效的降低系統開銷,特別對大批量小數據的請求,效果明顯,而TCP在這種情況對系統的消耗是很大的,往往會導致連接被拒絕,或者socket句柄已經存在的錯誤。有人可能就會問了,在服務端可以採用短連接,這樣就可以節約資源。其實不然,大量socket的創建與銷毀本來就是一種對系統性能的極度消耗,有時這種還沒有直接使用長連接來的效率高。
在目前的P3項目就有體現,原本我們採用的就是TCP連接,當時並發量一直提不上去,而且在大量並發下,系統出現Socket的錯誤,資源消耗及其大,所以之後採用UDP協議,而TCP作為備用方案,來防止UDP的不可靠性。
3、大批量的內存創建、銷毀,以及一切有關內存的操作都會影響到系統性能
這點對小量的並發,體現的並不明顯,但是在大量並發下,這就會性能造成嚴重影響,這種內存的創建,銷毀,以及內存的COPY等會消耗掉系統50%~60%的性能。對這種情況,盡量在系統啟動時,創建好內存資源,然後再業務處理完後,回收資源,重新利用,切忌在大量業務處理時,new新的內存,處理完後,又delete內存資源,這樣對系統性能消耗及其大。
另外,對於自定的協議包處理,盡量少用涉及到內存操作的函數或者類型,比如memset,string等,這樣在打包與解包時,都會對系統性能造成影響。
⑺ 關於linux伺服器上磁碟io性能問題
hdparm沒有考慮到緩存和物理讀的區分,讀取緩沖區的當然速度快
⑻ 如何讓CentOS伺服器磁碟io性能翻倍
如何讓CentOS伺服器磁碟io性能翻倍
這一期我們來看一下有哪些辦法可以減少linux下的文件碎片。主要是針對磁碟長期滿負荷運轉的使用場景(例如http代理伺服器);另外有一個小技巧,針對互聯網圖片伺服器,可以將io性能提升數倍。如果為伺服器訂制一個專用文件系統,可以完全解決文件碎片的問題,將磁碟io的性能發揮至極限。對於我們的代理伺服器,相當於把io性能提升到3-5倍。
在現有文件系統下進行優化linux內核和各個文件系統採用了幾個優化方案來提升磁碟訪問速度。但這些優化方案需要在我們的伺服器設計中進行配合才能得到充分發揮。
文件系統緩存linux內核會將大部分空閑內存交給虛擬文件系統,來作為文件緩存,叫做page cache。在內存不足時,這部分內存會採用lru演算法進行淘汰。通過free命令查看內存,顯示為cached的部分就是文件緩存了。
如果能找到當前使用場景下,文件被訪問的統計特徵,針對性的寫一個淘汰演算法,可以大幅提升文件緩存的命中率。對於http正向代理來說,一個好的淘汰演算法可以用1GB內存達到lru演算法100GB內存的緩存效果。如果不打算寫一個新的淘汰演算法,一般不需要在應用層再搭一個文件cache程序來做緩存。
最小分配
最小分配的副作用是會浪費一些磁碟空間(分配了但是又沒有使用)
如果當前使用場景下小文件很多,把預分配改大就會浪費很多磁碟空間,所以這個數值要根據當前使用場景來設定。似乎要直接改源代碼才能生效,不太記得了,09年的時候改的,有興趣的同學自己google吧。
io訪問調度
如何針對性優化:io訪問調度能大幅提升io性能,前提是應用層同時發起了足夠的io訪問供linux去調度。怎樣才能從應用層同時向內核發起多個io訪問呢?方案一是用aio_read非同步發起多個文件讀寫請求。
小提示:將文件句柄設置為非阻塞時,進程還是會睡眠等待磁碟io,非阻塞對於文件讀寫是不生效的。在正常情況下,讀文件只會引入十幾毫秒睡眠,所以不太明顯;而在磁碟io極大時,讀文件會引起十秒以上的進程睡眠。詳見內核源代碼do_generic_file_read會調用lock_page_killable進入睡眠,但是不會判斷句柄的非阻塞標志。
預讀取linux內核可以預測我們「將來的讀請求」並提前將數據讀取出來。通過預讀取可以減少讀io的次數,並且減小讀請求的延時。
當文件擴大,需要分配磁碟空間時,可以不立即進行分配,而是暫存在內存中,將多次分配磁碟空間的請求聚合在一起後,再進行一次性分配。
延遲分配的副作用有幾個:1 如果應用程序每次寫數據後都通過fsync等介面進行強制刷新,延遲分配將不起作用2 延遲分配有可能間歇性引入一個較大的磁碟IO延時(因為要一次性向磁碟寫入較多數據)
如何針對性優化:
「讓每個目錄下的文件連續存儲」是一個極有價值的功能。假設一個網頁上有10張圖片,這10張圖片雖然存在10個文件中,但其實是幾乎同時被用戶訪問的。如果能讓這10張圖片存儲在連續的磁碟空間中,就能把io性能提升10倍(一次尋道就可以讀10個文件了)傳統的做法是通過拼接圖片來將這10張圖片合並到一張大圖中,再由前端將大圖切成10張小圖。有了e4defrag後,可以將需連續訪問的文件放在同一個文件夾下,再定期使用e4defrag進行磁碟整理。
實現自己的文件系統我們曾經寫過一款專用文件系統,針對代理伺服器,將磁碟io性能提升到3-5倍。在大部分伺服器上,不需要支持「修改文件」這個功能。一旦文件創建好,就不能再做修改操作,只支持讀取和刪除。在這個前提下,我們可以消滅所有文件碎片,把磁碟io效率提升到理論極限。
大於16MB的文件,伺服器創建文件時告訴文件系統分配16MB磁碟空間。後續每次擴大文件大小時,要麼是16MB,要麼就是文件終結。不允許在文件未終結的情況下分配非16MB的空間。讀寫文件時,每次讀寫16MB或者直到文件末尾。
在我們的文件系統中,小文件完全無碎片,一次尋道就能搞定一個文件,達到了理論上最佳的性能。大文件每次磁頭定位讀寫16MB,性能沒有達到100%,但已經相當好了。有一個公式可以衡量磁碟io的效率:磁碟利用率 = 傳輸時間/(平均尋道時間+傳輸時間)對我們當時採用的磁碟來說(1T 7200轉sata),16MB連續讀寫已經可以達到98%以上的磁碟利用率。
⑼ 如何讓linux伺服器磁碟io性能翻倍
如何讓CentOS伺服器磁碟io性能翻倍
這一期我們來看一下有哪些辦法可以減少下的文件碎片。主要是針對磁碟長期滿負荷運轉的使用場景(例如http代理伺服器);另外有一個小技巧,針對互聯網圖片伺服器,可以將io性能提升數倍。如果為伺服器訂制一個專用文件系統,可以完全解決文件碎片的問題,將磁碟io的性能發揮至極限。對於我們的代理伺服器,相當於把io性能提升到3-5倍。
在現有文件系統下進行優化linux內核和各個文件系統採用了幾個優化方案來提升磁碟訪問速度。但這些優化方案需要在我們的伺服器設計中進行配合才能得到充分發揮。
文件系統緩存linux內核會將大部分空閑內存交給虛擬文件系統,來作為文件緩存,叫做page cache。在內存不足時,這部分內存會採用lru演算法進行淘汰。通過free命令查看內存,顯示為cached的部分就是文件緩存了。
如果能找到當前使用場景下,文件被訪問的統計特徵,針對性的寫一個淘汰演算法,可以大幅提升文件緩存的命中率。對於http正向代理來說,一個好的淘汰演算法可以用1GB內存達到lru演算法100GB內存的緩存效果。如果不打算寫一個新的淘汰演算法,一般不需要在應用層再搭一個文件cache程序來做緩存。
⑽ 如何讓CentOS伺服器磁碟io性能翻倍centos
如何讓CentOS伺服器磁碟io性能翻倍
這一期我們來看一下有哪些辦法可以減少linux下的文件碎片。主要是針對磁碟長期滿負荷運轉的使用場景(例如http代理伺服器);另外有一個小技巧,針對互聯網圖片伺服器,可以將io性能提升數倍。如果為伺服器訂制一個專用文件系統,可以完全解決文件碎片的問題,將磁碟io的性能發揮至極限。對於我們的代理伺服器,相當於把io性能提升到3-5倍。
在現有文件系統下進行優化linux內核和各個文件系統採用了幾個優化方案來提升磁碟訪問速度。但這些優化方案需要在我們的伺服器設計中進行配合才能得到充分發揮。
文件系統緩存linux內核會將大部分空閑內存交給虛擬文件系統,來作為文件緩存,叫做page cache。在內存不足時,這部分內存會採用lru演算法進行淘汰。通過free命令查看內存,顯示為cached的部分就是文件緩存了。
如果能找到當前使用場景下,文件被訪問的統計特徵,針對性的寫一個淘汰演算法,可以大幅提升文件緩存的命中率。對於http正向代理來說,一個好的淘汰演算法可以用1GB內存達到lru演算法100GB內存的緩存效果。如果不打算寫一個新的淘汰演算法,一般不需要在應用層再搭一個文件cache程序來做緩存。