CPU-内存-IO-网络调优
一、關(guān)于CPU 中央處理器調(diào)優(yōu)
1、 CPU處理方式:
例如:
- 批處理——以前的大型機(jī)(Mainframe)上所采用的系統(tǒng),需要把一批程序事先寫(xiě)好(打孔紙帶),然后計(jì)算得出結(jié)果
- 分時(shí)——現(xiàn)在流行的PC機(jī)和服務(wù)器都是采用這種運(yùn)行模式,即把CPU的運(yùn)行分成若干時(shí)間片分別處理不同的運(yùn)算請(qǐng)求
- 實(shí)時(shí)——一般用于單片機(jī)上,比如電梯的上下控制,對(duì)于按鍵等動(dòng)作要求進(jìn)行實(shí)時(shí)處理
2、 查看CPU一分鐘有多個(gè)切換多少次
#查看內(nèi)核一秒鐘中斷CPU次數(shù) [root@xuegod70 ~]# grep HZ /boot/config-3.10.0-693.el7.x86_64 CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set # CONFIG_NO_HZ_IDLE is not set CONFIG_NO_HZ_FULL=y # CONFIG_NO_HZ_FULL_ALL is not set CONFIG_NO_HZ=y # CONFIG_RCU_FAST_NO_HZ is not set # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 #1秒鐘有1000次中斷 CONFIG_MACHZ_WDT=m 注: 此文件/boot/config-3.10.0-693.el7.x86_64 是編譯內(nèi)核的參數(shù)文件3、調(diào)整進(jìn)程優(yōu)先級(jí)使用更多CPU
調(diào)整進(jìn)程nice值,讓進(jìn)程使用更多的CPU
優(yōu)先級(jí)控制:
nice值 #范圍, -20 ~ 19 越小優(yōu)先級(jí)越高 普通用戶0-19
nice
作用:以什么優(yōu)先級(jí)運(yùn)行進(jìn)程 。默認(rèn)優(yōu)先級(jí)是0
語(yǔ)法: nice -n 優(yōu)先級(jí)數(shù)字 命令
例:
4 、CPU親和力
taskset 作用:在多核的情況下,可以認(rèn)為指定一個(gè)進(jìn)程在哪顆CPU上執(zhí)行程序,減少進(jìn)程在不同CPU之前切換的開(kāi)銷。
安裝: [root@xuegod63 ~]# rpm -qf `which taskset ` util-linux-2.23.2-43.el7.x86_64語(yǔ)法: taskset -c N 命令
例1:本機(jī)是4核CPU ,指定vim命令在第一個(gè)CPU上運(yùn)行
例2:查sshd進(jìn)程運(yùn)行在哪幾個(gè)CPU上
[root@xuegod63 ~]# ps -axu | grep sshd Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ root 2030 0.0 0.0 64068 1140 ? Ss 18:26 0:00 /usr/sbin/sshd[root@xuegod63 ~]# taskset -p 2030 pid 2030's current affinity mask: f #說(shuō)明sshd在4顆CPU上隨機(jī)進(jìn)行切換。說(shuō)明: Cpu ID 號(hào)碼,對(duì)應(yīng)的16進(jìn)制數(shù)為: CPU ID: 7 6 5 4 3 2 1 0對(duì)應(yīng)的10數(shù)為: 128 64 32 16 8 4 2 1當(dāng)前, 我的系統(tǒng)中cpu ID 的為(0,1,2,3) pid 2030's current affinity mask: f 的值為cpu ID 16進(jìn)制的值的和(1+2+4+8=f),轉(zhuǎn)換成二進(jìn)制為:1111 這個(gè)說(shuō)明了(pid=2030)的這個(gè)sshd進(jìn)程工作在cpu ID 分別為0,1,2,3這個(gè)四個(gè)cpu上面的切換。 注: 我們的CPU是4核心,所以taskset -c后可以跟: 0,1,2,3例:指定vim c.txt 程序運(yùn)行在第2和第4個(gè)CPU上 [root@xuegod63 ~]# taskset -c 1,3 vim b.txt [root@xuegod63 ~]# ps -axu | grep vim Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ root 6314 1.5 0.2 143612 3280 pts/1 S+ 14:41 0:00 vim b.txt root 6317 0.0 0.0 103300 848 pts/2 S+ 14:41 0:00 grep vim [root@xuegod63 ~]# taskset -p 6314 pid 6314's current affinity mask: a # a為十進(jìn)制的10=2+8 注:在哪個(gè)CPU上運(yùn)行,那一位就賦為1 。5、CPU 性能監(jiān)控
理解運(yùn)行隊(duì)列,利用率,上下文切換對(duì)怎樣CPU 性能最優(yōu)化之間的關(guān)系,早期提及到性能是相對(duì)于基準(zhǔn)線數(shù)據(jù)的,在一些系統(tǒng)中,通常預(yù)期所達(dá)到的性能包括:
Run Queues - 每個(gè)處理器應(yīng)該運(yùn)行隊(duì)列不超過(guò)1-3 個(gè)線程.
例如: 一個(gè)雙核處理器應(yīng)該運(yùn)行隊(duì)列不要超過(guò)6 個(gè)
注:有兩個(gè)特殊的進(jìn)程永遠(yuǎn)在運(yùn)行隊(duì)列中待著:當(dāng)前進(jìn)程和空進(jìn)程idle。
?
轉(zhuǎn)載于:https://www.cnblogs.com/happy1983/p/9274638.html
總結(jié)
以上是生活随笔為你收集整理的CPU-内存-IO-网络调优的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python 函数式编程尾递归优化 da
- 下一篇: 使用Base64