PQ(Priority queuing优先级队列)
一种很传统,但不能不谈的队列
PQ是一种具备严格的,分等级执行调度的队列,它可以最多创建4个不同等级的队列,分别是高、中、普通、低;然后根据对不同的数据流量分类,将不同的分类数据送入到4个不同等级的队列。如图X所示,然后以100%的使用带宽的方式,首先服务于处于“高”队列中的数据,直到“高”队列中的数据全部发送完成,再服务于“中”队列中的数据,以此类推,再服务于“普通”队列,最后才是“低”队列。按照这样的逻辑,PQ队列的最大特点是高优先级的队列总是被服务,那么这可能会导致低优先级队列中的数据被“饿死”,为什么呢?如果高优先级队列一直持续发送数据,那么PQ的调度器,将保证高优先级的队列数据发送完成后,才能轮到较低优先级的队列发送,换而言之,处于“低”等级队列中的数据,必须要等待“高”、“中”、“普通”这三个队列的数据全部被发送完成后,“低”等级队列中的数据才能发送。所以说处于“低”等级队例的数据很容易被“饿死”,导致该队列中的数据一直得不到服务,最终的结果将是应用服务暂停或者终止。