Linux环境下提高进程优先级

2019-07-12 16:41发布

原帖:http://blog.csdn.net/shamofeiyu/article/details/7172077

在嵌入式Linux系统中,大多都是跑一个核心的业务,在数据吞吐量大的时候,会大量占用CPU,导致数据处理不过来,常规办法是优化程序或者更换更高性能的平台来解决,但是如果程序已经优化到极限和平台无法更换的情况下,可以通过提高业务进程的优先级来提高业务数据的吞吐量,例如: nice -n -20 ./bin 
nice为Linux环境下的改变进程优先级的命令,-n为进程优先级级别参数,-20为优先级级别,Linux一共有40个优先级,分别从-20到19,-20为最高优先级,19为最低优先级,一般程序默认优先级为0,只有root权限才能将进程优先级设为负数,如果程序已经在运行,可以使用renice,在不中断程序的情况下改变其优先级,程序处于哪个优先级可以通过top命令查看,NI字段则为对应该程序的优先级。在做网络数据分析的时候该方法非常管用,没有提高优先级时,数据吞吐量大概为800Mbps,再往上就开始处理不过来了,直到应用层buffer满了导致数据丢失,将进程提高到最高优先级,数据吞吐量可以提高到接近900Mbps,效果相当明显。