導航:首頁 > IDC知識 > linux伺服器優化

linux伺服器優化

發布時間:2021-01-23 21:06:05

1、如何讓linux伺服器磁碟io性能翻倍

如何讓CentOS伺服器磁碟io性能翻倍
這一期我們來看一下有哪些辦法可以減少linux下的文件碎片。主要是針對磁碟長期滿負荷運轉的使用場景(例如http代理伺服器);另外有一個小技巧,針對互聯網圖片伺服器,可以將io性能提升數倍。如果為伺服器訂制一個專用文件系統,可以完全解決文件碎片的問題,將磁碟io的性能發揮至極限。對於我們的代理伺服器,相當於把io性能提升到3-5倍。

在現有文件系統下進行優化linux內核和各個文件系統採用了幾個優化方案來提升磁碟訪問速度。但這些優化方案需要在我們的伺服器設計中進行配合才能得到充分發揮。

文件系統緩存linux內核會將大部分空閑內存交給虛擬文件系統,來作為文件緩存,叫做page cache。在內存不足時,這部分內存會採用lru演算法進行淘汰。通過free命令查看內存,顯示為cached的部分就是文件緩存了。

如果能找到當前使用場景下,文件被訪問的統計特徵,針對性的寫一個淘汰演算法,可以大幅提升文件緩存的命中率。對於http正向代理來說,一個好的淘汰演算法可以用1GB內存達到lru演算法100GB內存的緩存效果。如果不打算寫一個新的淘汰演算法,一般不需要在應用層再搭一個文件cache程序來做緩存。

2、linux伺服器與windows伺服器哪個好

能用linux伺服器盡量優先考慮。

windows伺服器容易上手,安全性、穩定性和性能與linux伺服器差距很大。

老魏建議你還是選擇linux伺服器吧。

比如說1核1G的linux伺服器可以跑的網站, 放到win伺服器上就至少要1核2G配置了,那麼成本也會多很多。

3、LINUX伺服器管理起來是不是很難?裝好後用優化嗎?

會者不難,難者不會。
看你用什麼,怎麼用。
如果你想拿它做個20個用戶的ftp伺服器或者samba伺服器,它優化的地方少之又少。
如果你想拿它做個16萬並發的NAT伺服器,那工作量就多了。

4、如何巧用tmpfs加速你的linux伺服器

使用tmpfs,我把他消化後用來實現虛擬磁碟來存放squid的緩存文件和php的seesion。速度快不少哦!

默認系統就會載入 /dev/shm ,它就是所謂的tmpfs,有人說跟ramdisk(虛擬磁碟),但不一樣。象虛擬磁碟一樣,tmpfs 可以使用您的 RAM,但它也可以使用您的交換分區來存儲。而且傳統的虛擬磁碟是個塊設備,並需要一個 mkfs 之類的命令才能真正地使用它,tmpfs 是一個文件系統,而不是塊設備;您只是安裝它,它就可以使用了。

tmpfs有以下優勢:
1。動態文件系統的大小,
2。tmpfs 的另一個主要的好處是它閃電般的速度。因為典型的 tmpfs 文件系統會完全駐留在 RAM 中,讀寫幾乎可以是瞬間的。
3。tmpfs 數據在重新啟動之後不會保留,因為虛擬內存本質上就是易失的。所以有必要做一些腳本做諸如載入,綁定的操作。

好了講了一些大道理,大家看的煩了吧,還是講講我的應用吧:)

首先在/dev/stm建個tmp文件夾,然後與實際/tmp綁定

mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp

1。squid的緩存目錄設置

vi /etc/squid/squid.conf

修改成
cache_dir ufs /tmp 256 16 256
這里的第一個256表示使用256M內存,在該目錄下使用的緩沖值為256MB,允許在「/tmp」下創建的第一級子目錄數為16,每個第一級子目錄下可以創建的第二級子目錄數量為256

然後重啟一下服務,ok,現在所有的squid緩存文件都保存倒tmpfs文件系統里了,很快哦。

2。對php性能的優化

對於一個訪問量大的以apache+php的網站,可能tmp下的臨時文件都會很多,比如seesion或者一些緩存文件,那麼你可以把它保存到tmpfs文件。

保存seesion的方法很簡單了只要修改php.ini就行了,由於我已經把/dev/stm/tmp與/tmp綁定,所以不改寫也行,至於php程序產生的緩存文件那隻能改自己的php程序了:)

希望我的這個方法,能對你有所啟發。

5、linux伺服器負載過大,怎麼做

伺服器負載壓力過大,解決辦法一般從2個方面著手:
1、硬體方面,可以提升內伺服器的容硬體性能,提升伺服器的處理能力;
2、軟體方面,通過對軟體進行一些軟體的優化配置,相對提升軟體的效率來降低負載。
註:當然上述是以單伺服器來考慮,如果多節點的話,可以擴大集群的節點數做一些負載均衡的配置來降低單伺服器負載壓力過大的問題。

6、如何優化linux伺服器

1、卸載不必要軟體包
2、netstat -nutlp檢查埠並關閉不必要的埠
3、關閉開機自啟動服務。例如chkconfig ntpd off
4、優化系統參數,例如修改sysctl.conf
5、根據實際情況開啟防火牆

7、如何提高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~

8、怎麼優化linux伺服器,現在很卡

慢只是感覺,需要你去作性能測試簡單的是top看看誰佔了資源,類似windows下的任務管理器看內存free-m情況另外還有測試命令如iostat之類的

9、優化Linux伺服器硬碟性能有什麼竅門

優化都是沒有竅門存在的,建議樓主還是踏踏實實做好優化工作,給您推薦兩個常見的優回化技能:
一、清答理磁碟
這種方法看上去很簡單:清理磁碟驅動器,刪除不需要的文件,清除所有需要被保存但將不被使用的文件。如果可能的話,清除多餘的目錄,並減少子目錄的數目。這些建議似乎顯而易見,但是你會驚訝地發現,每個磁碟上確實積累了非常多的垃圾。釋放磁碟空間可以幫助系統更好地工作。
二、使用軟體RAID
RAID廉價驅動器的冗餘陣列,也可以改善磁碟驅動器性能和容量。Linux支持軟體RAID和硬體RAID.軟體RAID嵌入在Linux 內核中,比硬體RAID花費要少得多。

10、Linux伺服器整體性能監控攻略 Linux伺服器如何監控整體性能?

Linux伺服器性能監測是很重要的工作,伺服器運行應該提供最有效的系統性能。當伺服器系統性能突然低於平均應有的情況,問題可能來自在執行的進程、內存的使用率、磁碟的性能、網路流量和CPU 的壓力。在預算短缺的今天,理解如何優化系統性能比以往任何時候都重要。

要實現它的前提是,你必須充分了解自己的計算機和網路,從而找到真正的瓶頸所在。本文提供一些基礎的工具來辨別和處理一些性能問題。使用的Linux 發行版本是Red Hat Enterprise Linux 4,工作過程是:首先查看整個系統的狀態,然後是檢查特定的子系統。

Linux伺服器進行性能監控有幾種方法,每種方法都各有其優缺點。

使用SNMP等標准工具

標准及非標准工具能執行一個或多個收集、合並及傳輸階段,如rstatd或SNMP工具,然而標準的rstat後台程序提供的信息是有限的,速度慢而且效率低。

內核模塊

幾個系統監控工程利用內核模塊來存取監控數據。一般情況下,這是很有效的收集系統數據的方法。然而這種方法存在的問題是,當主內核源內有其它改變時,必須保持代碼一致性。一個內核模塊可能與用戶想使用的其它內核模塊相沖突。此外,在使用監控系統之前,用戶必須獲得或申請模塊。

/proc虛擬文件系統

/proc虛擬文件系統是一個較快的、高效率執行系統監控的方法。使用/proc的主要缺點是必須保持代碼分析與/proc 文件格式改變的同步。事實表明,Linux內核的改變比/proc 文件格式的改變要更頻繁,所以,用/proc虛擬文件系統比用內核模塊存在的問題要少。本文介紹的方法即基於/proc虛擬文件系統。

一、 /proc文件系統特點

Linux 系統向管理員提供了非常好的方法,使他們可以在系統運行時更改內核,而不需要重新引導內核系統。這是通過 /proc 虛擬文件系統實現的。/proc 文件虛擬系統是一種內核和內核模塊用來向進程 (process) 發送信息的機制 (所以叫做 /proc)。這個偽文件系統讓你可以和內核內部數據結構進行交互,獲取 有關進程的有用信息,在運行中 (on the fly) 改變設置 (通過改變內核參數)。 與其他文件系統不同,/proc 存在於內存之中而不是硬碟上。不用重新啟動而去看 CMOS ,就可以知道系統信息。這就是 /proc 的妙處之一。

小提示: 每個Linux系統根據軟硬體不同/proc 虛擬文件系統的內容也有些差異。/proc 虛擬文件系統有三個很重要的目錄:net,scsi和sys。Sys目錄是可寫的,可以通過它來訪問或修改內核的參數,而net和scsi則依賴於內核配置。

與linux伺服器優化相關的知識