~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_CN/scheduler/sched-nice-design.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/translations/zh_CN/scheduler/sched-nice-design.rst (Version linux-6.12-rc7) and /Documentation/translations/zh_CN/scheduler/sched-nice-design.rst (Version linux-4.13.16)


  1 .. SPDX-License-Identifier: GPL-2.0               
  2 .. include:: ../disclaimer-zh_CN.rst              
  3                                                   
  4 :Original: Documentation/scheduler/sched-nice-    
  5                                                   
  6 :翻译:                                          
  7                                                   
  8   唐艺舟 Tang Yizhou <tangyeechou@gmail.com>    
  9                                                   
 10 =====================                             
 11 调度器nice值设计                            
 12 =====================                             
 13                                                   
 14 本文档解释了新的Linux调度器中修    
 15                                                   
 16 Linux的nice级别总是非常脆弱,人们    
 17 更少的CPU时间。                             
 18                                                   
 19 不幸的是,在旧的调度器中,这不    
 20 nice级别的支持在历史上是与时间片    
 21 所以最小的时间片是1/HZ。                
 22                                                   
 23 在O(1)调度器中(2003年),我们改    
 24 (人们对这一变化很满意),而且    
 25 的级别 _正好_ 是1 jiffy。为了让大    
 26 不佳的ASCII艺术提醒!)::                
 27                                                   
 28                                                   
 29                    A                              
 30              \     | [timeslice length]           
 31               \    |                              
 32                \   |                              
 33                 \  |                              
 34                  \ |                              
 35                   \|___100msecs                   
 36                    |^ . _                         
 37                    |      ^ . _                   
 38                    |            ^ . _             
 39  -*----------------------------------*-----> [    
 40  -20               |                +19           
 41                    |                              
 42                    |                              
 43                                                   
 44 因此,如果有人真的想renice任务,    
 45 ABI来扩展优先级的解决方案在早期    
 46                                                   
 47 这种方法在一定程度上奏效了一段    
 48 1ms,这意味着0.1%的CPU使用率,我们    
 49 的CPU使用率过小,而是因为它引发    
 50 破坏缓存,等等。请记住,硬件更    
 51 nice +19级别运行数量颇多的应用程    
 52                                                   
 53 因此,对于HZ=1000,我们将nice +19改    
 54 粒度——这相当于5%的CPU利用率。    
 55 我们没有收到过关于nice +19在CPU利    
 56 过它(依然)太 _强_ 的抱怨 :-)。      
 57                                                   
 58 总结一下:我们一直想让nice各级别    
 59 nice级别与时间片、调度粒度耦合是    
 60                                                   
 61 第二个关于Linux nice级别支持的抱怨    
 62 在原点周围的不对称性(你可以在    
 63 nice级别的行为取决于 _绝对的_ nice    
 64 说是“相对”的:                          
 65                                                   
 66    int nice(int inc);                             
 67                                                   
 68    asmlinkage long sys_nice(int increment)        
 69                                                   
 70 (第一个是glibc的应用程序接口,    
 71 注意,“inc”是相对当前nice级别而    
 72 相对性应用程序接口的镜像。           
 73                                                   
 74 在旧的调度器中,举例来说,如果    
 75 另一个任务,这两个任务的CPU分配    
 76 nice -10,那么CPU的分配不同于+5或+10    
 77                                                   
 78 第三个关于Linux nice级别支持的抱怨    
 79 不得不诉诸于实时调度优先级来运    
 80 SCHED_FIFO。但这也造成了其它问题:    
 81 有问题的SCHED_FIFO应用程序也会锁住    
 82                                                   
 83 v2.6.23版内核的新调度器解决了这三    
 84                                                   
 85 为了解决第一个抱怨(nice级别不够    
 86 解耦(调度粒度被处理成一个和nice    
 87 更一致的nice +19支持:在新的调度    
 88 1.5%CPU使用率,而不是旧版调度器中    
 89                                                   
 90 为了解决第二个抱怨(nice各级别不    
 91 CPU利用率有相同的影响,无论其绝    
 92 nice +10和一个nice +11的任务会与运行    
 93 CPU利用率分割是相同的(一个会得    
 94 nice级别被改为“乘法”(或指数)    
 95 结果将总是一样的。                       
 96                                                   
 97 第三个抱怨(负数nice级别不够“有    
 98 SCHED_FIFO调度策略下运行)几乎被新    
 99 具有重新校正nice级别动态范围的自    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php