linux優化
㈠ 如何優化linux系統
嵌入式linux開機時間優化小結:
1、用Image替代zImage,zImage是壓縮後的內核鏡像文件,所以使用Image就省去的載入時的解壓所消耗的時間(大概可以節省2~3秒的啟動時間)。但若使用Image則應考慮NandFlash的空間是否夠用。
2、文件系統鏡像有ramdisk、jffs2和cramfs三種,內核載入這三種鏡像的速率cramfs最快,其次jffs2,最後是ramdisk。其中cramfs是只讀文件系統。通常一個產品是三者的結合。
3、優化bootloader,減少其運行時間。
4、減少kernel體積,比如將不是在啟動階段必須載入的驅動模塊留在文件系統後面載入,減少kernel的運行和載入時間。
5、優化或關閉調試串口輸出。
6、 驅動程序放在文件系統後面載入,先顯示應用程序界面,再在後台載入必要的驅動模塊。
7、將整個系統運行環境保存到RAM中,加電只是個系統恢復過程。
8、仔細優化kernel和每個驅動模塊,將每個部分的延時調試到最快。
9、 應用程序的優化,減少應用程序的啟動時間。
㈡ 一般優化linux的內核,需要優化什麼參數
方法只對擁有大量TIME_WAIT狀態的連接導致系統資源消耗有效,如果不是這種情況下,效果可能不明顯。可以使用netstat命令去查TIME_WAIT狀態的連接狀態,輸入下面的組合命令,查看當前TCP連接的狀態和對應的連接數量:
#netstat -n | awk 『/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}』
這個命令會輸出類似下面的結果:
LAST_ACK 16
SYN_RECV 348
ESTABLISHED 70
FIN_WAIT1 229
FIN_WAIT2 30
CLOSING 33
TIME_WAIT 18098
我們只用關心TIME_WAIT的個數,在這里可以看到,有18000多個TIME_WAIT,這樣就佔用了18000多個埠。要知道埠的數量只有65535個,佔用一個少一個,會嚴重的影響到後繼的新連接。這種情況下,我們就有必要調整下Linux的TCP內核參數,讓系統更快的釋放TIME_WAIT連接。
用vim打開配置文件:#vim /etc/sysctl.conf
在這個文件中,加入下面的幾行內容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
輸入下面的命令,讓內核參數生效:#sysctl -p
簡單的說明上面的參數的含義:
net.ipv4.tcp_syncookies = 1
#表示開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防範少量SYN攻擊,默認為0,表示關閉;
net.ipv4.tcp_tw_reuse = 1
#表示開啟重用。允許將TIME-WAIT sockets重新用於新的TCP連接,默認為0,表示關閉;
net.ipv4.tcp_tw_recycle = 1
#表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉;
net.ipv4.tcp_fin_timeout
#修改系統默認的 TIMEOUT 時間。
在經過這樣的調整之後,除了會進一步提升伺服器的負載能力之外,還能夠防禦小流量程度的DoS、CC和SYN攻擊。
此外,如果你的連接數本身就很多,我們可以再優化一下TCP的可使用埠范圍,進一步提升伺服器的並發能力。依然是往上面的參數文件中,加入下面這些配置:
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
#這幾個參數,建議只在流量非常大的伺服器上開啟,會有顯著的效果。一般的流量小的伺服器上,沒有必要去設置這幾個參數。
net.ipv4.tcp_keepalive_time = 1200
#表示當keepalive起用的時候,TCP發送keepalive消息的頻度。預設是2小時,改為20分鍾。
net.ipv4.ip_local_port_range = 10000 65000
#表示用於向外連接的埠范圍。預設情況下很小:32768到61000,改為10000到65000。(注意:這里不要將最低值設的太低,否則可能會佔用掉正常的埠!)
net.ipv4.tcp_max_syn_backlog = 8192
#表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網路連接數。
net.ipv4.tcp_max_tw_buckets = 6000
#表示系統同時保持TIME_WAIT的最大數量,如果超過這個數字,TIME_WAIT將立刻被清除並列印警告信息。默 認為180000,改為6000。對於Apache、Nginx等伺服器,上幾行的參數可以很好地減少TIME_WAIT套接字數量,但是對於Squid,效果卻不大。此項參數可以控制TIME_WAIT的最大數量,避免Squid伺服器被大量的TIME_WAIT拖死。
內核其他TCP參數說明:
net.ipv4.tcp_max_syn_backlog = 65536
#記錄的那些尚未收到客戶端確認信息的連接請求的最大值。對於有128M內存的系統而言,預設值是1024,小內存的系統則是128。
net.core.netdev_max_backlog = 32768
#每個網路介面接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目。
net.core.somaxconn = 32768
#web應用中listen函數的backlog默認會給我們內核參數的net.core.somaxconn限制到128,而nginx定義的NGX_LISTEN_BACKLOG默認為511,所以有必要調整這個值。
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216 #最大socket讀buffer,可參考的優化值:873200
net.core.wmem_max = 16777216 #最大socket寫buffer,可參考的優化值:873200
net.ipv4.tcp_timestsmps = 0
#時間戳可以避免序列號的卷繞。一個1Gbps的鏈路肯定會遇到以前用過的序列號。時間戳能夠讓內核接受這種「異常」的數據包。這里需要將其關掉。
net.ipv4.tcp_synack_retries = 2
#為了打開對端的連接,內核需要發送一個SYN並附帶一個回應前面一個SYN的ACK。也就是所謂三次握手中的第二次握手。這個設置決定了內核放棄連接之前發送SYN+ACK包的數量。
net.ipv4.tcp_syn_retries = 2
#在內核放棄建立連接之前發送SYN包的數量。
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
# 開啟重用。允許將TIME-WAIT sockets重新用於新的TCP連接。
net.ipv4.tcp_wmem = 8192 436600 873200
# TCP寫buffer,可參考的優化值: 8192 436600 873200
net.ipv4.tcp_rmem = 32768 436600 873200
# TCP讀buffer,可參考的優化值: 32768 436600 873200
net.ipv4.tcp_mem = 94500000 91500000 92700000
# 同樣有3個值,意思是:
net.ipv4.tcp_mem[0]:低於此值,TCP沒有內存壓力。
net.ipv4.tcp_mem[1]:在此值下,進入內存壓力階段。
net.ipv4.tcp_mem[2]:高於此值,TCP拒絕分配socket。
上述內存單位是頁,而不是位元組。可參考的優化值是:786432 1048576 1572864
net.ipv4.tcp_max_orphans = 3276800
#系統中最多有多少個TCP套接字不被關聯到任何一個用戶文件句柄上。
如果超過這個數字,連接將即刻被復位並列印出警告信息。
這個限制僅僅是為了防止簡單的DoS攻擊,不能過分依靠它或者人為地減小這個值,
更應該增加這個值(如果增加了內存之後)。
net.ipv4.tcp_fin_timeout = 30
#如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間。對端可以出錯並永遠不關閉連接,甚至意外當機。預設值是60秒。2.2 內核的通常值是180秒,你可以按這個設置,但要記住的是,即使你的機器是一個輕載的WEB伺服器,也有因為大量的死套接字而內存溢出的風險,FIN- WAIT-2的危險性比FIN-WAIT-1要小,因為它最多隻能吃掉1.5K內存,但是它們的生存期長些。
深入學習linux看下《linux就該這么學》
㈢ linux系統性能怎麼優化
linux系統性能怎麼優化
一、前提
我們可以在文章的開始就列出一個列表,列出可能影響Linux操作系統性能的一些調優參數,但這樣做其實並沒有什麼價值。因為性能調優是一個非常困難的任務,它要求對硬體、操作系統、和應用都有著相當深入的了解。如果性能調優非常簡單的話,那些我們要列出的調優參數早就寫入硬體的微碼或者操作系統中了,我們就沒有必要再繼續讀這篇文章了。正如下圖所示,伺服器的性能受到很多因素的影響。
當面對一個使用單獨IDE硬碟的,有20000用戶的資料庫伺服器時,即使我們使用數周時間去調整I/O子系統也是徒勞無功的,通常一個新的驅動或者應用程序的一個更新(如SQL優化)卻可以使這個伺服器的性能得到明顯的提升。正如我們前面提到的,不要忘記系統的性能是受多方面因素影響的。理解操作系統管理系統資源的方法將幫助我們在面對問題時更好的判斷應該對哪個子系統進行調整。
二、Linux的CPU調度
任何計算機的基本功能都十分簡單,那就是計算。為了實現計算的功能就必須有一個方法去管理計算資源、處理器和計算任務(也被叫做線程或者進程)。非常感謝Ingo Molnar,他為Linux內核帶來了O(1)CPU調度器,區別於舊有的O(n)調度器,新的調度器是動態的,可以支持負載均衡,並以恆定的速度進行操作。
新調度器的可擴展性非常好,無論進程數量或者處理器數量,並且調度器本身的系統開銷更少。新調取器的演算法使用兩個優先順序隊列。
引用
・活動運行隊列
・過期運行隊列
調度器的一個重要目標是根據優先順序許可權有效地為進程分配CPU 時間片,當分配完成後它被列在CPU的運行隊列中,除了 CPU 的運行隊列之外,還有一個過期運行隊列。當活動運行隊列中的一個任務用光自己的時間片之後,它就被移動到過期運行隊列中。在移動過程中,會對其時間片重新進行計算。如果活動運行隊列中已經沒有某個給定優先順序的任務了,那麼指向活動運行隊列和過期運行隊列的指針就會交換,這樣就可以讓過期優先順序列表變成活動優先順序的列表。通常互動式進程(相對與實時進程而言)都有一個較高的優先順序,它佔有更長的時間片,比低優先順序的進程獲得更多的計算時間,但通過調度器自身的調整並不會使低優先順序的進程完全被餓死。新調度器的優勢是顯著的改變Linux內核的可擴展性,使新內核可以更好的處理一些有大量進程、大量處理器組成的企業級應用。新的O(1)調度器包含仔2.6內核中,但是也向下兼容2.4內核。
新調度器另外一個重要的優勢是體現在對NUMA(non-uniform memory architecture)和SMP(symmetric multithreading processors)的支持上,例如INTEL@的超線程技術。
改進的NUMA支持保證了負載均衡不會發生在CECs或者NUMA節點之間,除非發生一個節點的超出負載限度。
三、Linux的內存架構
今天我們面對選擇32位操作系統還是64位操作系統的情況。對企業級用戶它們之間最大的區別是64位操作系統可以支持大於4GB的內存定址。從性能角度來講,我們需要了解32位和64位操作系統都是如何進行物理內存和虛擬內存的映射的。
在上面圖示中我們可以看到64位和32位Linux內核在定址上有著顯著的不同。
在32位架構中,比如IA-32,Linux內核可以直接定址的范圍只有物理內存的第一個GB(如果去掉保留部分還剩下896MB),訪問內存必須被映射到這小於1GB的所謂ZONE_NORMAL空間中,這個操作是由應用程序完成的。但是分配在ZONE_HIGHMEM中的內存頁將導致性能的降低。
在另一方面,64位架構比如x86-64(也稱作EM64T或者AMD64)。ZONE_NORMAL空間將擴展到64GB或者128GB(實際上可以更多,但是這個數值受到操作系統本身支持內存容量的限制)。正如我們看到的,使用64位操作系統我們排除了因ZONE_HIGHMEM部分內存對性能的影響的情況。
實際中,在32位架構下,由於上面所描述的內存定址問題,對於大內存,高負載應用,會導致死機或嚴重緩慢等問題。雖然使用hugemen核心可緩解,但採取x86_64架構是最佳的解決辦法。
四、虛擬內存管理
因為操作系統將內存都映射為虛擬內存,所以操作系統的物理內存結構對用戶和應用來說通常都是不可見的。如果想要理解Linux系統內存的調優,我們必須了解Linux的虛擬內存機制。應用程序並不分配物理內存,而是向Linux內核請求一部分映射為虛擬內存的內存空間。如下圖所示虛擬內存並不一定是映射物理內存中的空間,如果應用程序有一個大容量的請求,也可能會被映射到在磁碟子系統中的swap空間中。
另外要提到的是,通常應用程序不直接將數據寫到磁碟子系統中,而是寫入緩存和緩沖區中。Bdflush守護進程將定時將緩存或者緩沖區中的數據寫到硬碟上。
Linux內核處理數據寫入磁碟子系統和管理磁碟緩存是緊密聯系在一起的。相對於其他的操作系統都是在內存中分配指定的一部分作為磁碟緩存,Linux處理內存更加有效,默認情況下虛擬內存管理器分配所有可用內存空間作為磁碟緩存,這就是為什麼有時我們觀察一個配置有數G內存的Linux系統可用內存只有20MB的原因。
同時Linux使用swap空間的機制也是相當高效率的,如上圖所示虛擬內存空間是由物理內存和磁碟子系統中的swap空間共同組成的。如果虛擬內存管理器發現一個已經分配完成的內存分頁已經長時間沒有被調用,它將把這部分內存分頁移到swap空間中。經常我們會發現一些守護進程,比如getty,會隨系統啟動但是卻很少會被應用到。這時為了釋放昂貴的主內存資源,系統會將這部分內存分頁移動到swap空間中。上述就是Linux使用swap空間的機制,當swap分區使用超過50%時,並不意味著物理內存的使用已經達到瓶頸了,swap空間只是Linux內核更好的使用系統資源的一種方法。
簡單理解:Swap usage只表示了Linux管理內存的有效性。對識別內存瓶頸來說,Swap In/Out才是一個比較又意義的依據,如果Swap In/Out的值長期保持在每秒200到300個頁面通常就表示系統可能存在內存的瓶頸。下面的事例是好的狀態:
引用
# vmstat
procs ———–memory————- —swap– —–io—- –system– —-cpu—-
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 5696 6904 28192 50496 0 0 88 117 61 29 11 8 80 1
五、模塊化的I/O調度器
就象我們知道的Linux2.6內核為我們帶來了很多新的特性,這其中就包括了新的I/O調度機制。舊的2.4內核使用一個單一的I/O調度器,2.6 內核為我們提供了四個可選擇的I/O調度器。因為Linux系統應用在很廣闊的范圍里,不同的應用對I/O設備和負載的要求都不相同,例如一個筆記本電腦和一個10000用戶的資料庫伺服器對I/O的要求肯定有著很大的區別。
引用
(1).Anticipatory
anticipatory I/O調度器創建假設一個塊設備只有一個物理的查找磁頭(例如一個單獨的SATA硬碟),正如anticipatory調度器名字一樣,anticipatory調度器使用「anticipatory」的演算法寫入硬碟一個比較大的數據流代替寫入多個隨機的小的數據流,這樣有可能導致寫 I/O操作的一些延時。這個調度器適用於通常的一些應用,比如大部分的個人電腦。
(2).Complete Fair Queuing (CFQ)
Complete Fair Queuing(CFQ)調度器是Red Flag DC Server 5使用的標准演算法。CFQ調度器使用QoS策略為系統內的所有任務分配相同的帶寬。CFQ調度器適用於有大量計算進程的多用戶系統。它試圖避免進程被餓死和實現了比較低的延遲。
(3).Deadline
deadline調度器是使用deadline演算法的輪詢的調度器,提供對I/O子系統接近實時的操作,deadline調度器提供了很小的延遲和維持一個很好的磁碟吞吐量。如果使用deadline演算法請確保進程資源分配不會出現問題。
(4).NOOP
NOOP調度器是一個簡化的調度程序它只作最基本的合並與排序。與桌面系統的關系不是很大,主要用在一些特殊的軟體與硬體環境下,這些軟體與硬體一般都擁有自己的調度機制對內核支持的要求很小,這很適合一些嵌入式系統環境。作為桌面用戶我們一般不會選擇它。
六、網路子系統
新的網路中斷緩和(NAPI)對網路子系統帶來了改變,提高了大流量網路的性能。Linux內核在處理網路堆棧時,相比降低系統佔用率和高吞吐量更關注可靠性和低延遲。所以在某些情況下,Linux建立一個防火牆或者文件、列印、資料庫等企業級應用的性能可能會低於相同配置的Windows伺服器。
在傳統的處理網路封包的方式中,如下圖藍色箭頭所描述的,一個乙太網封包到達網卡介面後,如果MAC地址相符合會被送到網卡的緩沖區中。網卡然後將封包移到操作系統內核的網路緩沖區中並且對CPU發出一個硬中斷,CPU會處理這個封包到相應的網路堆棧中,可能是一個TCP埠或者Apache應用中。
這是一個處理網路封包的簡單的流程,但從中我們可以看到這個處理方式的缺點。正如我們看到的,每次適合網路封包到達網路介面都將對CPU發出一個硬中斷信號,中斷CPU正在處理的其他任務,導致切換動作和對CPU緩存的操作。你可能認為當只有少量的網路封包到達網卡的情況下這並不是個問題,但是千兆網路和現代的應用將帶來每秒鍾成千上萬的網路數據,這就有可能對性能造成不良的影響。
正是因為這個情況,NAPI在處理網路通訊的時候引入了計數機制。對第一個封包,NAPI以傳統的方式進行處理,但是對後面的封包,網卡引入了POLL 的輪詢機制:如果一個封包在網卡DMA環的緩存中,就不再為這個封包申請新的中斷,直到最後一個封包被處理或者緩沖區被耗盡。這樣就有效的減少了因為過多的中斷CPU對系統性能的影響。同時,NAPI通過創建可以被多處理器執行的軟中斷改善了系統的可擴展性。NAPI將為大量的企業級多處理器平台帶來幫助,它要求一個啟用NAPI的驅動程序。在今天很多驅動程序默認沒有啟用NAPI,這就為我們調優網路子系統的性能提供了更廣闊的空間。
七、理解Linux調優參數
因為Linux是一個開源操作系統,所以又大量可用的性能監測工具。對這些工具的選擇取決於你的個人喜好和對數據細節的要求。所有的性能監測工具都是按照同樣的規則來工作的,所以無論你使用哪種監測工具都需要理解這些參數。下面列出了一些重要的參數,有效的理解它們是很有用處的。
(1)處理器參數
引用
・CPU utilization
這是一個很簡單的參數,它直觀的描述了每個CPU的利用率。在xSeries架構中,如果CPU的利用率長時間的超過80%,就可能是出現了處理器的瓶頸。
・Runable processes
這個值描述了正在准備被執行的進程,在一個持續時間里這個值不應該超過物理CPU數量的10倍,否則CPU方面就可能存在瓶頸。
・Blocked
描述了那些因為等待I/O操作結束而不能被執行的進程,Blocked可能指出你正面臨I/O瓶頸。
・User time
描述了處理用戶進程的百分比,包括nice time。如果User time的值很高,說明系統性能用在處理實際的工作。
・System time
描述了CPU花費在處理內核操作包括IRQ和軟體中斷上面的百分比。如果system time很高說明系統可能存在網路或者驅動堆棧方面的瓶頸。一個系統通常只花費很少的時間去處理內核的操作。
・Idle time
描述了CPU空閑的百分比。
・Nice time
描述了CPU花費在處理re-nicing進程的百分比。
・Context switch
系統中線程之間進行交換的數量。
・Waiting
CPU花費在等待I/O操作上的總時間,與blocked相似,一個系統不應該花費太多的時間在等待I/O操作上,否則你應該進一步檢測I/O子系統是否存在瓶頸。
・Interrupts
Interrupts 值包括硬Interrupts和軟Interrupts,硬Interrupts會對系統性能帶來更多的不利影響。高的Interrupts值指出系統可能存在一個軟體的瓶頸,可能是內核或者驅動程序。注意Interrupts值中包括CPU時鍾導致的中斷(現代的xServer系統每秒1000個 Interrupts值)。
(2)內存參數
引用
・Free memory
相比其他操作系統,Linux空閑內存的值不應該做為一個性能參考的重要指標,因為就像我們之前提到過的,Linux內核會分配大量沒有被使用的內存作為文件系統的緩存,所以這個值通常都比較小。
・Swap usage
這 個值描述了已經被使用的swap空間。Swap usage只表示了Linux管理內存的有效性。對識別內存瓶頸來說,Swap In/Out才是一個比較又意義的依據,如果Swap In/Out的值長期保持在每秒200到300個頁面通常就表示系統可能存在內存的瓶頸。
・Buffer and cache
這個值描述了為文件系統和塊設備分配的緩存。在Red Flag DC Server 5版本中,你可以通過修改/proc/sys/vm中的page_cache_tuning來調整空閑內存中作為緩存的數量。
・Slabs
描述了內核使用的內存空間,注意內核的頁面是不能被交換到磁碟上的。
・Active versus inactive memory
提供了關於系統內存的active內存信息,Inactive內存是被kswapd守護進程交換到磁碟上的空間。
(3)網路參數
引用
・Packets received and sent
這個參數表示了一個指定網卡接收和發送的數據包的數量。
・Bytes received and sent
這個參數表示了一個指定網卡接收和發送的數據包的位元組數。
・Collisions per second
這個值提供了發生在指定網卡上的網路沖突的數量。持續的出現這個值代表在網路架構上出現了瓶頸,而不是在伺服器端出現的問題。在正常配置的網路中沖突是非常少見的,除非用戶的網路環境都是由hub組成。
・Packets dropped
這個值表示了被內核丟掉的數據包數量,可能是因為防火牆或者是網路緩存的缺乏。
・Overruns
Overruns表達了超出網路介面緩存的次數,這個參數應該和packets dropped值聯繫到一起來判斷是否存在在網路緩存或者網路隊列過長方面的瓶頸。
・Errors 這個值記錄了標志為失敗的幀的數量。這個可能由錯誤的網路配置或者部分網線損壞導致,在銅口千兆乙太網環境中部分網線的損害是影響性能的一個重要因素。
(4)塊設備參數
引用
・Iowait
CPU等待I/O操作所花費的時間。這個值持續很高通常可能是I/O瓶頸所導致的。
・Average queue length
I/O請求的數量,通常一個磁碟隊列值為2到3為最佳情況,更高的值說明系統可能存在I/O瓶頸。
・Average wait
響應一個I/O操作的平均時間。Average wait包括實際I/O操作的時間和在I/O隊列里等待的時間。
・Transfers per second
描述每秒執行多少次I/O操作(包括讀和寫)。Transfers per second的值與kBytes per second結合起來可以幫助你估計系統的平均傳輸塊大小,這個傳輸塊大小通常和磁碟子系統的條帶化大小相符合可以獲得最好的性能。
・Blocks read/write per second
這個值表達了每秒讀寫的blocks數量,在2.6內核中blocks是1024bytes,在早些的內核版本中blocks可以是不同的大小,從512bytes到4kb。
・Kilobytes per second read/write
按照kb為單位表示讀寫塊設備的實際數據的數量。
㈣ linux做過哪些優化
⑴登錄系統:不使用root登錄,通過sudo授權管理,使用普通用戶登錄。
⑵禁止SSH遠程:更改默認的遠程連接SSH服務及禁止root遠程連接。
⑶時間同步:定時自動更新伺服器時間。
⑷配置yum更新源,從國內更新下載安裝rpm包。
⑸關閉selinux及iptables(iptables工作場景如有wan ip,一般要打開,高並發除外)
⑹調整文件描述符數量,進程及文件的打開都會消耗文件描述符。
⑺定時自動清理/var/spool/clientmquene/目錄垃圾文件,防止節點被占滿(c6.4默認沒有sendmail,因此可以不配。)
⑻精簡開機啟動服務(crond、sshd、network、rsyslog)
⑼Linux內核參數優化/etc/sysctl.conf,執行sysct -p生效。
更改字元集,支持中文,但是還是建議使用英文,防止亂碼問題出現。
⑾鎖定關鍵系統文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 處理以上內容後,把chatter改名,就更安全了。)
⑿清空/etc/issue,去除系統及內核版本登陸前的屏幕顯示。
㈤ linux安裝完後怎麼優化系統
作為一個系統管理員,下面我們聊一下基於伺服器應用的linux,由於個人電腦上使用linux也許不是像伺服器上一樣,優先追求安全和穩定,因此個人電腦使用的朋友只做個參考吧。 系統優化 說起優化,其實最好的優化就是提升硬體的配置,例如提高cpu的運算能力,提高內存的容量,個人認為如果你考慮升級硬體的話,建議優先提高內存的容量,因為一般伺服器應用,對內存的消耗使用要求是最高的。當然這都是題外話了。 這里我們首要討論的,是在同等硬體配置下(同一台伺服器,不提升硬體的情況下)對你的系統進行優化。 作為系統管理員,我認為,首先我們要明確一個觀點:在伺服器上作任何操作,升級和修改任何配置文件或軟體,都必須首要考慮安全性,不是越新的東西就越好,這也是為什麼linux管理感覺上和windows有所不同的地方,windows首先推薦大家去使用它的最新版本軟體和操作系統,其實我個人認為這是一種商業行為,作為從系統管理上來講,這是很不好的,使用新的軟體和系統可能帶來新的問題,有些甚至是致命的。 因此,作為管理,我們還是應該考慮穩定的長期使用的軟體版本來作為我們的版本,具體的好處我就不多說了。相信作為管理員的你應該知道的。 其實個人使用的linux最直接的一個優化就是升級內核,自己編譯的內核是根據自己的系統編譯而來,將得到最大的性能和最小的內核。 但是,伺服器就不太一樣了,當然我們也希望每一台伺服器都是自己手工編譯的內核,高效而精巧。但是實際和願望是有差距的,試想一下,如果你管理100來台linux主機,而每一台也許配置都不一樣,那編譯內核的一個過程將是一個浩大工程,而且從實際考慮,工作量大得難以想像。我想你也不會願意做這種事情吧。因此,個人建議,採用官方發布的內核升級包是很好的選擇。 首先,我們對新安裝的系統,將做一系列升級,包括軟體和內核,這是很重要的步驟。 在升級好所有軟體後,基本的防火牆和配置都做好以後,我們開始優化一些細節配置,如果你是老系統,那麼在作本問題及的一些操作和優化你系統之前,務必被備份所有數據到其他介質。 1、虛擬內存優化 # free 查看當前系統的內存使用情況。 一般來說,linux的物理內存幾乎是完全used。這個和windows非常大的區別,它的內存管理機制將系統內存充分利用,並非windows無論多大的內存都要去使用一些虛擬內存一樣。這點需要注意。 linux下面虛擬內存的默認配置通過命令 # cat /proc/sys/vm/freepages 可以查看,顯示的三個數字是當前系統的:最小內存空白頁、最低內存空白頁和最高內存空白。 注意,這里系統使用虛擬內存的原則是:如果空白頁數目低於最高空白頁設置,則使用磁碟交換空間。當達到最低空白頁設置時,使用內存交換(註:這個是我查看一些資料得來的,具體應用時還需要自己觀察一下,不過這個不影響我們配置新的虛擬內存參數)。 內存一般以每頁4k位元組分配。最小內存空白頁設置是系統中內存數量的2倍;最低內存空白頁設置是內存數量的4倍;最高內存空白頁設置是系統內存的6倍。這些值在系統啟動時決定。 一般來講在配置系統分配的虛擬內存配置上,我個人認為增大最高內存空白頁是一種比較好的配置方式,以1G的內存配置為例: 可將原來的配置比例修改為: 2048 4096 6444 通過命令 # echo 2048 4096 6444 > /proc/sys/vm/freepages 因為增加了最高空白頁配置,那麼可以使內存更有效的利用。 2、硬碟優化 如果你是scsi硬碟或者是ide陣列,可以跳過這一節,這節介紹的參數調整隻針對使用ide硬碟的伺服器。 我們通過hdparm程序來設置IDE硬碟, 使用DMA和32位傳輸可以大幅提升系統性能。使用命令如下: # /sbin/hdparm -c 1 /dev/hda 此命令將第一個IDE硬碟的PCI匯流排指定為32位,使用 -c 0參數來禁用32位傳輸。 在硬碟上使用DMA,使用命令: # /sbin/hdparm -d 1 /dev/hda 關閉DMA可以使用 -d 0的參數。 更改完成後,可以使用hdparm來檢查修改後的結果,使用命令: # /sbin/hdparm -t /dev/had 為了確保設置的結果不變,使用命令:# /sbin/hdparm -k 1 /dev/hda Hdparm命令的一些常用的其他參數功能 -g 顯示硬碟的磁軌,磁頭,磁區等參數。 -i 顯示硬碟的硬體規格信息,這些信息是在開機時由硬碟本身所提供。 -I 直接讀取硬碟所提供的硬體規格信息。 -p 設定硬碟的PIO模式。 -Tt 評估硬碟的讀取效率和硬碟快取的讀取效率。 -u <0或1> 在硬碟存取時,允許其他中斷要求同時執行。 -v 顯示硬碟的相關設定。 3、其他優化 關閉不需要的服務,關於系統自動啟動的服務,網上有很多資料,在此我就不贅述了; 安全配置 作為一個系統管理員來說,定期對系統作一次全面的安全檢查很重要的,最近遇到一些朋友來信說出現了一些莫名其妙的問題,例如最大的一個問題就是明顯感覺網路服務緩慢,這極有可能是被攻擊的現象。 實踐證明,無論是那種系統,默認安裝都是不安全的,實際不管你用windows也好,linux,bsd或其他什麼系統,默認安裝的都有很多漏洞,那怎麼才能成為安全的系統呢,這正是我們系統管理人員需要做的事情。配置配置再配置。 任何系統,只要細心的配置,堵住已知的漏洞,可以說這個系統是安全的,其實並非很多朋友說的那樣,安裝了系統,配置了防火牆,安裝了殺毒軟體,那麼就安全了,其實如果對系統不作任何安全設置,那就等於向黑客敞開一扇紙做的大門,數十分鍾就能完全控制!
㈥ Linux系統優化的12個步驟是什麼
Linux系統優化的12個步驟:
1、登錄系統。
2、禁止SSH遠程。
3、時間同步。
4、配置yum更新源。
5、關閉selinux及iptables。
6、調整文件描述符數量。
7、定時自動清理/var/spool/clientmquene/目錄垃圾文件。
8、精簡開機啟動服務。
9、Linux內核參數優化/etc/sysctl.conf,執行sysct -p生效。
10、更改字元集,防止亂碼問題出現。
11、鎖定關鍵系統文件。
12、清空/etc/issue,去除系統及內核版本登陸前的屏幕顯示。
㈦ 如何優化Linux系統
linux優化並不是明智的選擇; 用安裝好的默認的性能是最好選擇,
說是優化Linux, 其實就是在壓榨硬體性能;
當然一定要優化的話, 其實要看是什麼服務. 如果IO多的; 那麼提高IO性能, CPU普通就可以的; 多CPU的,用一個CPU專門處理中斷;
幾乎99%都是在操作/proc 目錄中;
㈧ linux性能調優都有哪幾種方法
按照傳統,Linux不同的發行版本和不同的內核對各項參數及設置均做了改動,從而使得系統能夠獲得更好的性能。下邊將分四部分介紹在Red Hat Enterprise Linux AS和SUSE LINUX Enterprise Server系統下,如何用以下幾種技巧進行性能的優化:
1、Disabling daemons (關閉 daemons)
2、Shutting down the GUI (關閉GUI)
3、Changing kernel parameters (改變內核參數)
4、Kernel parameters (內核參數)
5、Tuning the processor subsystem(處理器子系統調優)
6、Tuning the memory subsystem (內存子系統調優)
7、Tuning the file system(文件系統子系統調優)
8、Tuning the network subsystem(網路子系統調優)