CentOS Cpu效能優化

2021-06-28 14:43:25 字數 2772 閱讀 4727

調節cpu對應某個程式的使用:

一、使用taskset充分利用多核cpu,讓cpu的使用率均衡到每個cpu上

#taskset

-p,    設定乙個已存在的pid,而不是重新開啟乙個新任務

-c,    指定乙個處理,可以指定多個,以逗號分隔,也可指定範圍,如:2,4,5,6-8。

1,切換某個程序到指定的cpu上

taskset -cp 3 13290

2,讓某程式執行在指定的cpu上

taskset -c 1,2,4-7 tar jcf test.tar.gz test

需要注意的是,taskset -cp 3 13290在設定乙個已經存在的pid時,子程序並不會繼承父程序的,

因此像tar zcf ***.tar.gz ***這樣的命令,最好在啟動時指定cpu,如果在已經啟動的情況下,則需要指定tar呼叫的gzip程序。

二,使用nice和renice設定程式執行的優先順序

格式:nice [-n 數值] 命令

nice 指令可以改變程式執行的優先權等級。指令讓使用者在執行程式時,指定乙個優先等級,稱之為 nice 值。

這個數值從最高優先順序的-20到最低優先順序的19。負數值只有 root 才有權力使。

一般使用者,也可使用 nice 指令來做執行程式的優先順序管理,但只能將nice值越調越高。

可以通過二種方式來給某個程式設定nice值:

1,開始執行程式時給定乙個nice值,用nice命令

2,調整某個執行中程式的pid的nice值,用renice命令

通常通過調高nice值來備份,為的是不占用非常多的系統資源。 例:

nice -n 10 tar zcf test.tar.gz test

由nice啟動的程式,其子程序會繼承父程序的nice值。

檢視nice值

# nice -n -6 vim test.txt &

# ps -l

f s   uid   pid  ppid  c pri  ni addr sz wchan  tty          time cmd

4 s     0 19427  2637  0  75   0 – 16551 wait   pts/6    00:00:00 bash

4 t     0 21654 19427  0  71  -6 – 23464 finish pts/6    00:00:00 vim

renice調整執行中程式的nice值

格式:renice [nice值] pid

三,使用ulimit限制cpu占用時間

注意,ulimit 限制的是當前shell程序以及其派生的子程序。因此可以在指令碼中呼叫ulimit來限制cpu使用時間。

例如,限制tar的cpu占用時間,單位秒。

# cat limit_cpu.sh

ulimit -sht 100

tar test.tar.gz test

如果tar占用時間超過了100秒,tar將會退出,這可能會導致打包不完全,因此不推薦使用ulimit對cpu占用時間進行限制。

另外,通過修改系統的/etc/security/limits配置檔案,可以針對使用者進行限制。

四,使用程式自帶的對cpu使用調整的功能

某些程式自帶了對cpu使用調整的功能,比如nginx伺服器,通過其配置檔案,可以為工作程序指定cpu,如下:

worker_processes  3;

worker_cpu_affinity 0001 0010 0100 1000;

這裡0001 0010 0100 1000是掩碼,分別代表第1、2、3、4顆cpu核心,這就使得cpu的使用比較平均到每個核心上。

查詢某個cpu執行在某個程序:

ps命令的輸出格式可以通過-o引數定製,可以使用如下命令顯示程序所對應的執行cpu:

# ps -eo pid,args,psr

引數的含義:

pid – 程序id

args – 該程序執行時傳入的命令列引數

psr – 分配給程序的cpu

有關ps命令的其它資訊請查閱ps手冊:

# man ps

示例:[root@www ~]# ps -eo pid,args,psr

………….

20965 /usr/local/php-fcgi/bin/php   1

21683 /bin/sh /usr/local/ddos/ddo   1

21684 sleep 600                     3

21746 /sbin/udevd -d                2

21832 /bin/sh /usr/local/ddos/ddo   1

21833 sleep 600                     0

21865 sshd: root@pts/0              3

21873 -bash                         1

21927 ps -eo pid,args,psr           1

23520 [pdflush]                     3

23744 nginx: master process /usr/   1

23745 nginx: worker process         3

23749 nginx: worker process         3

23753 nginx: worker process         3

23755 nginx: worker process         3

centos CPU 記憶體 硬碟 監控

vmstat 1 vmstat是linux系統監控工具,使用vmstat命令可以得到關於程序 記憶體 記憶體分頁 堵塞io traps及cpu活動的資訊。r 執行佇列中的程序數 b 等待io的程序數。swpd 已用虛擬記憶體大小 k free 空閒記憶體大小 buff 已用緩衝大小 cache 已用...

Centos CPU 及核心個數

linux 下區分物理cpu 邏輯cpu和cpu核數 概念 www.2cto.com 物理cpu 實際server中插槽上的cpu個數 物理cpu數量,可以數不重複的 physical id 有幾個 邏輯cpu linux使用者對 proc cpuinfo 這個檔案肯定不陌生.它是用來儲存cpu硬體...

mysql效能優化 mysql效能優化

優化方式 1.空間換時間 冗餘 2.時間換空間 字段優先使用型別 int date char varchar text 索引型別 btree索引 hash索引 索引的葉子下,存放乙個資訊指向所在行的資料位址。btree有利於範圍查詢,hash有利於精確查詢。btree用的更多一些。btree索引的常...