一、为什么会有进程优先级这个概念
Linux是一个多用户、多任务的操作系统,系统中通常运行着非常多的进程。哪些进程先运行,哪些进程后运行,就由进程优先级来控制
二、进程调度的方式
在Linux中,线程是由进程来实现的,线程可以理解为轻量级的进程。因此线程的调度是按照进程的调度方式来进行调度的
(1)SCHED_OTHER,分时调度策略
(2)SCHED_FIFO,实时调度策略,先到先服务
(3)SCHED_RR,实时调度策略,时间片轮转
其中:分时调度策略为Linux系统默认的调度策略
三、进程优先级查看
nice值和priority的理解:
nice值是用户层面的,我们可以通过调整NI值,来影响进程的优先级,范围:-20至19
PR:内核层面,该值决定进程优先级的执行先后
PR(new) = PR(old) + NI
3.1 top命令
PR:进程的优先级
NI:nice值
3.2 ps -l
四、优先级的调整
4.1 准备运行的程序 :通过nice命令
nice -n -5 /usr/local/mysql/bin/mysqld &
4.2 调整正在运行的进程优先级
renice 值 pid
备注:这里只是简单说明下进程优先级,深度的可以查看《Linux内核设计与实现》,很多博客都是引用这本书来解释的