缓存方式:
直接映射
N路关联
缓存策略:
write through:通写
write back:回写
进程类别:
交互式进程(IO密集型)
批处理进程(CPU密集型)
实时进程(Real-time)
CPU: 时间片长,优先级低
IO:时间片短,优先级高
Linux优先级:priority
实时优先级: 1-99,数字越小,优先级越低
静态优先级:100-139,数据越小,优先级越高
实时优先级比静态优先级高
nice值:调整静态优先级 -20,19:100,139 0:120
ps -eo:显示加中括号的进程为内核线程
调度类别:
实时进程:
SCHED_FIFO:First In First Out
SHCED_RR: Round Robin
SCHED_Other: 用来调度100-139之间的进程
动态优先级:
dynamic priority = max (100, min ( static priority - bonus + 5, 139))
bonus: 0-10
手动调整优先级:
100-139: nice
nice N COMMAND
renice -n # PID
chrt -p [prio] PID
1-99:
chrt -f -p [prio] PID
chrt -r -p [prio] PID
chrt -f -p [prio] COMMAND
ps -e -o class,rtprio,pri,nice,cmd
CFS(complete Fair Scheduler):完全公平调度
SMP:对称多路处理
NUMA:非一致性内存访问
CPU affinity: CPU姻亲关系
numastat
numactl
numad
taskset: 绑定进程至某CPU上
mask:0x0000 0001(转换成二进制,1表示一颗CPU,从零开始)
taskset -p mask pid
taskset -p -c 0-2,7 101
应该将中断绑定至那些非隔离的CPU上,从而避免那些隔离的CPU处理中断程序:
echo CPU_MASK > /proc/irq/<irq number>/smp_affinity