在 Oracle® Solaris 11.2 中进行资源管理

退出打印视图

更新时间: 2014 年 7 月
 
 

将 FSS 与其他调度类组合

缺省情况下,FSS 调度类与分时 (timesharing, TS) 调度类、交互式 (interactive, IA) 调度类和固定优先级 (fixed priority, FX) 调度类使用相同的优先级范围(0 到 59)。因此,您应该避免这些调度类中的进程共享同一处理器集。FSS、TS、IA 和 FX 类中的混合进程可能会引起意外的调度行为。

使用处理器集时,您可以将 TS、IA、FX 和 FSS 纳入一个系统中。但是,在每个处理器集中运行的所有进程都必须属于一个调度类,这样它们就不会争用相同的 CPU。特别是,FX 调度程序不应与 FSS 调度类一起使用,除非使用处理器集。此操作防止 FX 类中的应用程序使用过高的优先级运行以至 FSS 类中的应用程序不能运行。

您可以将 TS 和 IA 类中的进程纳入同一处理器集中,也可纳入同一无处理器集的系统中。

Oracle Solaris 系统还为拥有超级用户特权的用户提供了实时 (Real-Time, RT) 调度程序。缺省情况下,RT 调度类使用与 FSS 不同的系统优先级范围(通常从 100 到 159)。由于 RT 和 FSS 使用不相交或不重叠的优先级范围,因此,FSS 可以与 RT 调度类共存于同一处理器集中。但是,FSS 调度类不对运行于 RT 类中的进程进行任何控制。

例如,在具有四个处理器的系统上,如果单线程 RT 进程具有 CPU 限制,则此进程便可占用整个处理器。如果系统也运行 FSS,则一般用户进程便会争用 RT 进程未使用的其余三个 CPU。请注意,RT 进程可能不会持续占用 CPU。当 RT 进程空闲时,FSS 便会使用所有四个处理器。

您可以键入以下命令来查看处理器集在哪些调度类中运行,并确保将每个处理器集配置为运行 TS、IA、FX 或 FSS 进程。

$ ps -ef -o pset,class | grep -v CLS | sort | uniq
1 FSS
1 SYS
2 TS
2 RT
3 FX