當前位置:首頁 » 廢水回用 » 簡單有效提升伺服器性能

簡單有效提升伺服器性能

發布時間: 2020-12-15 06:57:43

『壹』 如何提高Web伺服器性能

在各種網站的正常運營中,由於用戶需求的多樣性,直接導致了主機應用的復雜性,如,Client/Server模式、/Server模式、三層應用服務系統迅速普及,伺服器作為網路信息發布、處理的關鍵性節點,比以往要承載更多的流量負載。也許伺服器的性能表現會不盡如人意,這就需要分析具體的伺服器性能瓶頸並找到解決辦法。本文對影響Web伺服器性能的各方面做了分析,提出了緩解Web伺服器性能瓶頸效應的方法。

資料庫的互連性

目前,互聯網上最大的資源殺手當非在線資料庫(online databases)和電子商務(e-commerce)等應用莫屬。提供web功能的資料庫和應用伺服器近年來飛速增長,顯示出強勁的發展勢頭。從性能的角度來看,在線資料庫,基於MySQL、Oracle、SQL Server或Sybase等的應用如日中升,迫使我們更加關注伺服器的性能狀況。對於大型網站來說,高負載的HTTP傳輸和資料庫處理事務互相搶占資源,並最終可能導致伺服器在極短的時間內崩潰或者變得慢如蝸牛。在這種情況下,建議使用專門的後台運行的資料庫伺服器(當然也是出於安全的考慮)以及前台處理的HTTP伺服器。

網路帶寬

可用的帶寬對於主要由靜態頁面構成的站點來說,是最關鍵的因素。撇開網路的吞吐總量以及響應速度不講,在高負載的環境下,系統的突發傳輸速率是非常重要的。在用戶訪問的高峰期,某些站點也許根本無法訪問。這樣的站點在用戶企圖訪問它時顯得慢如蝸牛,而伺服器自身卻仍舊非常空閑。這樣看來,要成功搭建一個web主機,選擇合適的帶寬顯然是非常重要的。必要時,伺服器到核心交換機可選擇千兆帶寬。

內存

可用的物理內存是另外一個重要因素,這是因為對內存的佔用率會直接隨著對伺服器請求數量的增加而增加。文件緩沖區也是非常重要的,因為它能將磁碟的使用頻率降到最低程度,明顯加快事務處理的總體速度。對內存的需求很大程度上取決於使用在特定伺服器上的軟體的具體情況。除了操作系統的管理能力和文件系統的緩沖區大小之外,還需要將所選擇的web伺服器軟體對硬體的特殊要求調查清楚。

處理器

對於那些主要由靜態頁面構成的站點來說,CPU是最次要的一個因素。但是,在使用了包括CGI、伺服器解析文檔或提供web訪問方式的資料庫的情況下,就需要更多地關注CPU的性能。在這種場合下,如果向一個較小的用戶群體提供某種對CPU依賴很大的應用服務,那麼,一個高速的單CPU可能是最有用的。但是,如果存在多個用戶同時對大批量的頁面提出訪問請求,那麼在這種情況下(尤其在這些頁面均以獨立的進程或線程模式打開情況下),多CPU系統(即使這些CPU的速度都很慢)更為管用。

以上簡單分析了各類平台下的伺服器性能瓶頸,並提出了緩解的基本途徑和方法。當然,緩解伺服器性能瓶頸的方法還有採用伺服器集群、負載平衡技術等。

『貳』 如何設計高並發的伺服器,如何提升伺服器性能

你可以去伺服器廠商(正睿)的網上,將需求說明一下,讓對方給你產品配置方案(這點很重要),然後可以將參數和配置與其他品牌產品進行比較,找到最優性價比的產品。

『叄』 怎樣提高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.調整伺服器響應


與個人計算機不同的是伺服器並不總是從伺服器的控制台那裡運行應用。那麼,最優化伺服器是將獲得優先權的應用到後台執行。


你可以通過打開伺服器的控制面板,並雙擊系統圖標。當窗口中顯示系統屬性標簽時,轉到「高級」標簽項,找到性能設置部分,並點擊設置按鈕。窗口中將會顯示性能選項屬性標簽。轉到屬性標簽中的高級選項,並確定伺服器設置為後台服務的最佳性能。





  • 望採納

『肆』 如何充分利用CPU資源提高伺服器的性能

最好能具體說明你的問題
對於客戶端來說 一般情況下 CPU 的佔用在 20% 以下 如果版是伺服器 則要考慮權 這個伺服器具體的功能 是文件存儲 還是計算 還是其它應用 但無論如何 CPU 的佔用都不會高的離譜
如果認為這是一種浪費的話 可以引入虛擬伺服器 即在一台實體 vmware 伺服器上 安裝多個伺服器並分配資源 從而共享 CPU 資源
問題是 這種配置 未必是經濟和性能最優

『伍』 如何提高伺服器的性能

伺服器硬碟掛台式機主板不知道你掛的是什麼硬碟,應該是SATA的7200轉。在存儲速度和性能上跟你在台式機上的一樣不會有提升。你這樣做只是增加硬碟空間而以

『陸』 有什麼有效提高伺服器性能的方法

受教了,有機會可以去你們那看看伺服器

『柒』 怎麼提高linux伺服器性能,讓速度更快更穩定

1、我們來平時登陸Linux伺服器的時候,都自需要在輸入用戶名之後再等待一下,這個時間因不同而等的時間不一樣。

2、其實這個問題是由ssh里邊的配置造成的,只需要我們改一下即可正常快速登陸。

3、我們編輯sshd_config 這個文件:vi /etc/ssh/sshd_config。

4、然後在里邊打開 需要修改的行。

5、我們把前面的#號去了,然後把yes 改變為no,UseDNS no。

6、然後保存退出,再重啟下ssh服務測試下就可以了,service sshd restart。

『捌』 怎樣提高IIS伺服器性能,加快伺服器速度

1、應該分配和釋放多個對象

你應該盡量避免過量分配內存,因為內存分配可能是代價高昂的。釋放內存塊可能更昂貴,因為大多數分配算符總是企圖連接臨近的已釋放的內存塊成為更大的塊。直到Windows NT? 4.0 service pack 4.0,在多線程處理中,系統堆通常都運行得很糟。堆被一個全局鎖保護,並且在多處理器系統上是不可擴展的。

2.不應該考慮使用處理器高速緩存

大多數人都知道由虛擬內存子系統導致的hard 頁錯誤代價很高,最好避免。但是許多人認為其他內存訪問方法沒有什麼區別。自從80486以後,這一觀點就不對了。現代的CPUs比RAM要快得多,RAM至少需要兩級內存緩存 ,高速L1 緩存能保存8KB數據和8KB指令,而較慢的L2 緩存能保存幾百KB的數據和代碼,這些數據和代碼混合在一起。L1 緩存中內存區域的一個引用需要一個時鍾周期,L2 緩存的引用需要4到7個時鍾周期,而主內存的引用需要許多個處理器時鍾周期。後一數字不久將會超過100個時鍾周期。在許多方面,緩存像一個小型的,高速的,虛擬內存系統。

至於和緩存有關的基本內存單元不是位元組而是緩存列。Pentium 緩存列有32個位元組寬。Alpha 緩存列有64個位元組寬。這意味著在L1 緩存中只有512個slot給代碼和數據。如果多個數據一起使用(時間位置)而並不存儲在一起(空間位置),性能會很差。數組的空間位置很好,而相互連接的列表和其他基於指針的數據結構的位置往往很差。

把數據打包到同一個緩存列中通常會有利於提高性能,但是它也會破壞多處理器系統的性能。內存子系統很難協調處理器間的緩存。如果一個被所有處理器使用的只讀數據,和一個由一個處理器使用並頻繁更新的數據共享一個緩存 列,那麼緩存將會花費很長時間更新這個緩存列的拷貝。這個Ping-Pong高速游戲通常被稱為"緩存 sloshing"。如果只讀數據在一個不同的緩存 列中,就可以避免sloshing。

對代碼進行空間優化比進行速度優化效率更高。代碼越少,代碼所佔的頁也越少,這樣需要的運行設置和產生的頁錯誤也會更少,同時占據的緩存 列也會更少。然而,某些核心函數應該進行速度優化。可以利用profiler去識別這些函數。

3.決不要緩存頻繁使用的數據。

軟體緩存可以被各種應用程序使用。當一個計算代價很高時,你會保存結果的一個拷貝。這是一個典型的時空折中方法:犧牲一些存儲空間以節省時間。如果做得好,這種方法可能非常有效。

你必須正確地進行緩存。如果緩存了錯誤數據,就會浪費存儲空間。如果緩存得太多,其他操作可以使用的內存將會很少。如果緩存得太少,效率又會很低,因為你必須重新計算被緩存 遺漏的數據。如果將時間敏感數據緩存得時間過長,這些數據將會過時。一般,伺服器更關心的是速度而不是空間,所以他們要比桌面系統進行更多的緩存。一定要定期去除不用的緩存,否則將會有運行設置問題。

4.應該創建多個線程,越多越好。

調整伺服器中起作用的線程數目是很重要的。如果線程是I/O-bound的,將會花費很多時間用來等待I/O的完成-一個被阻塞的線程就是一個不做任何有用工作的線程。加入額外的線程可以增加通量,但是加入過多的線程將會降低伺服器的性能,因為上下文交換將會成為一個重大的overhead。上下文交換速度應該低的原因有三個:上下文交換是單純的overhead,對應用程序的工作沒有任何益處;上下文交換用盡了寶貴的時鍾周期;最糟的是,上下文交換將處理器的緩存填滿了沒用的數據,替換這些數據是代價高昂的。

有很多事情是依靠你的線程化結構的。每個客戶端一個線程是絕對不合適的。因為對於大量用戶端,它的擴展性不好。上下文交換變得難以忍受,Windows NT用盡了資源。線程池模型會工作得更好,在這種方法中一個工人線程池將處理一條請求列,因為Windows 2000提供了相應的APIs,如QueueUserWorkItem。

5.應該對數據結構使用全局鎖

使數據線程安全的最簡單方法是把它套上一把大鎖。為簡單起見,所有的東西都用同一把鎖。這種方法會有一個問題:序列化。為了得到鎖,每一個要處理數據的線程都必須排隊等候。如果線程被一把鎖阻塞,它沒有在做任何有用的事。當伺服器的負載較輕時,這個問題並不常見,因為一次可能只有一個線程需要鎖。在負載很重的情況下,對鎖的激烈爭奪可能就會成為一個大問題。

設想在多車道高速公路上發生了一個意外事故,這條高速公路上的所有車輛都被轉向一條狹窄的道路。如果車輛很少,這一轉換對交通流的速率的影響可以忽略。如果車輛很多,當車輛慢慢並入那條單通道時,交通阻塞會延伸幾英里。

有幾種技術能夠減少鎖競爭。

· 不要過分保護,也就是說,不是非常必要不要鎖住數據。只有需要時才去持有鎖,而且時間不要過長。不要在大段代碼周圍或頻繁執行的代碼中沒必要地使用鎖,這一點很重要。

· 對數據進行分割,使它能夠用一套獨立的鎖保護。例如,一個符號表可以按標識符的第一個字母分割,這樣在修改名字以Q開頭的符號的值時,就不會去讀名字以H開頭的符號的值。

· 使用APIs的Interlocked 系列(InterlockedIncrement,等)自動修改數據而不需要鎖。

· 當數據不是經常被修改時可以使用多讀者/單作者(multi-reader/single-writer)鎖。你將獲得更好的並發性,盡管鎖操作的代價將更高並且你可能會冒餓死作者的危險。

· 在關鍵部分使用循環計數器。參見Windows NT 4.0 service pack 3中的SetCriticalSectionSpinCount API。

· 如果你不能得到鎖,使用TryEnterCriticalSection並做一些其他的有用的工作。

高競爭導致serialization,serialization導致降低CPU的利用率,這促使用戶加入更多的線程,結果事情變得更糟。

6.不必注意多處理器機器

你的代碼在多處理器系統上比在單處理器系統上運行得還要糟,這可能是件令人惡心的事。一個很自然的想法是,在一個N維系統上運行N次會更好。性能很差的原因是競爭:鎖競爭,匯流排競爭,和/或緩存列競爭。處理器都在是爭奪共享資源的所有權,而不是做更多的工作。

如果你一定要編寫多線程應用程序的話,你應該在多處理器盒上對你的應用程序進行強度測試和性能測試。單處理器系統通過時間分片地執行線程而提供一個並發性的假象。多處理器盒具有真正的並發性,競爭環境和競爭更容易發生。

7.應該始終使用模塊化調用;他們很有趣。

利用同步模塊化調用來執行I/O操作對大多數桌面應用程序來說是合適的。但是,他們不是使用伺服器上的CPU(s)的好方法。I/O操作要花費上百萬個時鍾周期來完成,這些時鍾周期本來可以被更好地利用。利用非同步I/O你能得到顯著提高的用戶請求率和I/O通量,不過增加了額外的復雜性。

如果你有需要花費很長時間的模塊化調用或I/O操作,你應該考調撥多少資源給他們。你想使用所有的線程還是有個限制?一般地,使用有限的幾個線程要好些。構建一個小的線程池和隊列,利用隊列來安排線程的工作完成模塊化調用。這樣,其他線程就可以拾取和處理你的非模塊化的請求。

8.不要進行測量

當你能夠測量你所談論的事情並用數字表達它時,這就表示你對他有了一定的了解;但是如果你不能用數字表達時,你的知識是貧瘠的不能令人滿意的;這可能是知識的開始,但這時你簡直不可能將你的思想提高到科學的水平。

- Lord Kelvin (William Thomson)

如果不測量你就不能了解應用程序的特性。你在黑暗中摸索,一半是靠猜測。如果不識別性能問題,你就不能做任何改進或做出工作量計劃。

測量包括黑匣子測量和profiling。黑匣子測量的意思是收集由性能計數器(內存使用,上下文交換,CPU利用等)和外部檢測工具(通量,反映時間等)所顯示的數據。為了profile你的代碼,你編譯代碼的一個工具版,然後在各種條件下運行它,並收集關於執行時間和過程調用頻率的統計數據。

測量如果不用於分析的話就一點用都沒有。測量將不僅告訴你有問題,而且甚至能幫助你找到問題發生在哪,但它不能告訴你為什麼會有問題。對問題進行分析以便你能正確地改正他們。要從根本上解決問題而不是停留在表面現象。

當你進行改動後,要重新測量。你要知道你的改動是否有效。改動也可能會暴露其他性能問題,測量-分析-改正-再測量的循環就會重新開始。你也必須要有規律地進行測量,以便發現性能衰退問題。

9.應該使用單一用戶,單一請求的測試方法。

書寫ASP和ISAPI應用程序的一個通病是只用一個瀏覽器去測試應用程序。當他們在Internet上應用他們的程序時,他們才發現他們的應用程序不能處理高負載,並且通量和反應時間另人可憐。

用一個瀏覽器測試是必要的但是不夠的。如果瀏覽器反應得不夠快,你就知道你有麻煩了。但即使它在使用一個瀏覽器時很快,你也不知道它處理負載的能力如何。如果十幾個用戶同時請求會發生什麼事?一百個呢?你的應用程序能容忍什麼樣的通量?它能提供什麼樣的反應時間?在輕載時這些數字會怎樣?中等負載呢?重載呢?在多處理器機器上你的應用程序會如何?對你的應用程序進行強度測試,這對於找出bugs發現性能問題來說是基本的。

類似的負載測試考慮適用於所有的伺服器應用程序。

10.不應使用實際環境。

人們往往只在幾個特定的,人工的環境(如下benchmarks)下調整應用程序。選擇和實際情況相對應的各種情況,並為針對各種操作進行優化,這一點很重要。如果你不這樣做,你的用戶和評論家一定會這樣做,並且他們將依此來評判你的應用程序的好壞。

『玖』 使用虛擬化,能夠提高伺服器的性能嗎

不能,虛擬機就是把伺服器的資源進行分流(形象舉例,比如伺服器性能10,可以分成5+5,1+9等等)

熱點內容
丁度巴拉斯情人電影推薦 發布:2024-08-19 09:13:07 瀏覽:886
類似深水的露點電影 發布:2024-08-19 09:10:12 瀏覽:80
《消失的眼角膜》2電影 發布:2024-08-19 08:34:43 瀏覽:878
私人影院什麼電影好看 發布:2024-08-19 08:33:32 瀏覽:593
干 B 發布:2024-08-19 08:30:21 瀏覽:910
夜晚看片網站 發布:2024-08-19 08:20:59 瀏覽:440
台灣男同電影《越界》 發布:2024-08-19 08:04:35 瀏覽:290
看電影選座位追女孩 發布:2024-08-19 07:54:42 瀏覽:975
日本a級愛情 發布:2024-08-19 07:30:38 瀏覽:832
生活中的瑪麗類似電影 發布:2024-08-19 07:26:46 瀏覽:239