linux系統調優

2021-10-05 15:23:22 字數 4293 閱讀 7377

cpu 資源的調優

調整nice值改變程序優先順序

1.nice 概述:在 linux 系統中,nice 值的範圍從-20 到+19(不同系統的值範圍是不一樣的),正值表示低優先順序,負值表示高優先順序,值為零則表示不會調整該程序的優先順序。具有最高優先順序的程式,

其 nice 值最低,所以在 linux 系統中,值-20 使得一項任務變得非常重要;與之相反,如果任務的 nice為+19,則表示它是乙個高尚的、無私的任務,允許所有其他任務比自己享有寶貴的 cpu 時間的更大使用份額,這也就是 nice 的名稱的來意。預設優先順序是 0

2.在命令執行前,調整程序 nice 值,讓程序使用更多的 cpu

nice -n 優先順序數字 命令

nice -n -5 vim a.txt

top -p pid

3.使用 renice 修改正在執行的程序的優先順序

renice -n 5 pid #修改程序優先順序

renice -n 6 pid

程序優先順序不可以超過 -20 到 19 範圍

4.設 置 進 程 的 cpu 親 和 力

taskset 作用:在多核的情況下,可以認為指定乙個程序在哪顆 cpu 上執行程式,減少程序在不同cpu 之前切換的開銷。

yum install util-linux

taskset 語法: taskset -cp [cpu id 號] 命令或程序 id

-p, --pid 在已經存在的 pid 上操作

-c, --cpu-list 以列**式顯示和指定 cpu

taskset -c 0 vim a.txt #第乙個 cpu 的 id 是 0

ps -axu | grep vim —> taskset -cp pid

有關磁碟 i/o 的調優

ulimit 資 源 限 制

限制使用者資源配置檔案:/etc/security/limits.conf

每行的格式:使用者名稱/@使用者組名 型別(軟限制/硬限制) 選項 值

* soft nofile 1024000

* hard nofile 1024000

soft 是乙個警告值,而 hard 則是乙個真正意義的閥值,超過就會報錯。一般把 soft 和 hard 都配置成一樣的值。 最大開啟的檔案數以檔案描敘符 file descripter 計數)

ulimit -n #檢視乙個程序可以開啟的檔案數

reboot重啟後,/etc/security/limits.conf配置生效

ulimit -n 10000 #臨時修改,不需重啟

nproc #配置乙個使用者可以開啟的最大程序數

vim /etc/security/limits.d/20-nproc.conf

* soft nproc 65535

* hard nproc 65535

ulimit -u 6553 #臨時修改

查 看 所 有 的 資 源 限 制 信 息

ulimit -a

測 試 硬 盤 速 度

一般情況下使用 hdparm 來測試磁碟順序讀的速度。dd 命令用來測試磁碟順序寫的速度

1、hdparm 命令常用引數

引數:-t perform device read timings #不使用預先的資料緩衝, 標示了 linux 下沒有任何檔案系統開銷時磁碟可以支援多快的連續資料讀取. perform [pəˈfɔ:m] #執行

–direct use o_direct to bypass page cache for timings #直接繞過快取進行統計資料

2、測試硬碟讀速度

hdparm -t --direct /dev/sda

3、使用 dd 命令測試磁碟 io 的順序寫和讀速度

在使用前首先了解兩個特殊裝置:/dev/null 偽裝置,**站.寫該檔案不會產生 io 開銷;/dev/zero 偽裝置,會產生空字元流,讀該檔案不會產生 io 開銷

4、使用 dd 測試磁碟的 io 順序寫速度

dd if=/dev/zero of=/test.dbf bs=1m count=2000 oflag=direct,nonblock

系統核心相關引數調優

syn攻擊是利用tcp/ip協議3次握手的原理,傳送大量的建立連線的網路包,但不實際建立連線,最終導致被攻擊伺服器的網路佇列被佔滿,無法被正常使用者訪問

vim /etc/sysctl.conf #在檔案最後新增以下內容

net.ipv4.tcp_synack_retries = 0

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_max_syn_backlog = 20480

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_fin_timeout = 10

fs.file-max = 819200

net.core.somaxconn = 65535

net.core.rmem_max = 1024123000

net.core.wmem_max = 16777216

net.core.netdev_max_backlog = 165536

net.ipv4.ip_local_port_range = 10000 65535

注:每台伺服器上線之前,都應該配置以上核心引數

cat /proc/sys/net/ipv4/tcp_synack_retries #最關鍵引數,預設為5,修改為0 表示不要重發

net.ipv4.tcp_synack_retries = 0

#表示回應第二個握手包(syn+ack包)給客戶端ip後,如果收不到第三次握手包(ack包)後,不進行重試,加快**「半連線」,不要耗光資源

#作為服務端。回應時,如果連線失敗,達到對應的失敗數後,停止傳送synack包

不修改這個引數,模擬攻擊,10秒後被攻擊的80埠即無法服務,機器難以ssh登入; 用命令netstat -na |grep syn_recv檢測「半連線」hold住180秒

cat /proc/sys/net/ipv4/tcp_syn_retries

#tcp_syn_retries引數,預設是5,當沒有收到伺服器端的syn+ack包時,客戶端重發syn握手包的次數。

cat /proc/sys/net/ipv4/tcp_max_syn_backlog

#系統允許的檔案控制代碼的最大數目,因為連線需要占用檔案

fs.file-max = 819200

#用來應對突發的大併發connect 請求

net.core.somaxconn = 65535 #最大的tcp 資料接收緩衝(位元組)

net.core.rmem_max = 1024123000

#最大的tcp 資料傳送緩衝(位元組)

net.core.wmem_max = 16777216

#網路裝置接收資料報的速率比核心處理這些包的速率快時,允許送到佇列的資料報的最大數目

net.core.netdev_max_backlog = 165536

#本機主動連線其他機器時的埠分配範圍,比如說,在vsftpd主動模式會用到

net.ipv4.ip_local_port_range = 10000 65535

次 要 輔 助 參 數

以上還無法解決syn洪水攻擊,把以下核心引數關閉:

注意,以下引數面對外網時,不要開啟。因為***很明顯。 #當出現 半連線 佇列溢位時向對方傳送syncookies,調大 半連線 佇列後沒必要

net.ipv4.tcp_syncookies = 0

#time_wait狀態的連線重用功能

net.ipv4.tcp_tw_reuse = 0

#時間戳選項,與前面net.ipv4.tcp_tw_reuse引數配合

net.ipv4.tcp_timestamps = 0

#time_wait狀態的連線**功能

net.ipv4.tcp_tw_recycle = 0

#表示開啟syn cookies。當出現syn等待佇列溢位時,啟用cookies來處理,可防範少量syn攻擊,預設為0,表示關閉

#表示開啟重用。允許將time-wait sockets重新用於新的tcp連線,預設為0,表示關閉,現在開啟,改為1

#表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉。現在改為1,表示開啟

#預設值是 60,對於本端斷開的socket連線,tcp保持在fin_wait_2狀態的時間

Linux系統調優

1 selinux 修改selinux配置檔案,vi etc selinux config selinux disabled 必須重啟後生效,但可使用setenforce臨時生效來關閉 setenforce 0 2 lnittab 配置檔案在 etc inittab,centos7後使用syetem...

linux系統之核心調優

1 編輯核心配置檔案 永久性 vim etc sysctl.con2 引數及簡單說明 net.ipv4.tcp fin timeout 2 保持在fin wait 2狀態的時間,使系統可以處理更多的連線。此引數值為整數,單位為秒。net.ipv4.tcp tw reuse 1 開啟重用,允許將tim...

Winform 系統調優

小白鼠條件 以常見的樹形結構樹為例 有兩張結構相同的表table1 1w資料 table2 2w資料 需要對比資料差異。表結構如下 id parent id,col1,col2,col3 常規做法是 常規思想 迴圈table1,一 充分利用快取效果 作業系統的快取記憶體 磁碟快取等等,都是利用混存技...