当前位置: 首页 > news >正文

阳泉市编办网站三基建设广东seo推广费用

阳泉市编办网站三基建设,广东seo推广费用,铭做网站建设,南宁做网站的公司CFS(完全公平调度器)是Linux内核2.6.23版本开始采用的进程调度器,它的基本原理是这样的:设定一个调度周期(sched_latency_ns),目标是让每个进程在这个周期内至少有机会运行一次,换一种说法就是每个进程等待CPU的时间最长不超过这个…

CFS(完全公平调度器)是Linux内核2.6.23版本开始采用的进程调度器,它的基本原理是这样的:设定一个调度周期(sched_latency_ns),目标是让每个进程在这个周期内至少有机会运行一次,换一种说法就是每个进程等待CPU的时间最长不超过这个调度周期。然后根据进程的数量,大家平分调度周期内的CPU使用权。由于进程的优先级,即nice值不同,分割调度周期的时候要加权。每个进程的累计运行时间保存在自己的vruntime字段里,哪个进程的vruntime最小就获得本轮运行的权利。那么问题就来了:

新进程的vruntime的初值是不是0?

假如新进程的vruntime初值为0的话,比老进程的值小很多,那么它在相当长的时间内都会保持抢占CPU的优势,老进程就要饿死了,这显然是不公平的。所以CFS是这样做的:每个CPU的运行队列cfs_rq都维护一个min_vruntime字段,记录该运行队列中所有进程的vruntime最小值,新进程的初始vruntime值就以它所在运行队列的min_vruntime为基础来设置,与老进程保持在合理的差距范围内。

fork出来的新进程的vruntime初值的设置与两个参数有关:

sched_child_runs_first:规定fork之后让子进程先于父进程运行;

sched_features的START_DEBIT位:规定新进程的第一次运行要有延迟。

sched_features是控制调度器特性的开关,每个bit表示调度器的一个特性。在sched_features.h文件中记录了全部的特性。START_DEBIT是其中之一,如果打开这个特性,表示给新进程的vruntime初始值要设置得比默认值更大一些,这样会推迟它的运行时间,以防进程通过不停的fork来获得cpu时间片。

如果参数 sched_child_runs_first打开,意味着创建子进程后,保证子进程会在父进程之前运行。子进程在创建时,vruntime初值首先被设置为min_vruntime;然后,如果sched_features中设置了START_DEBIT位,vruntime会在min_vruntime的基础上再增大一些。设置完子进程的vruntime之后,检查sched_child_runs_first参数,如果为1的话,就比较父进程和子进程的vruntime,若是父进程的vruntime更小,就对换父、子进程的vruntime,这样就保证了子进程会在父进程之前运行。

休眠进程的vruntime一直保持不变吗?

如果休眠进程的 vruntime 保持不变,而其他运行进程的 vruntime 一直在推进,那么等到休眠进程终于唤醒的时候,它的vruntime比别人小很多,会使它获得长时间抢占CPU的优势,其他进程就要饿死了。这显然是另一种形式的不公平。CFS是这样做的:在休眠进程被唤醒时重新设置vruntime值,以min_vruntime值为基础,给予一定的补偿,但不能补偿太多。

休眠进程在唤醒时会立刻抢占CPU吗?

这是由CFS的唤醒抢占特性决定的,即sched_features的WAKEUP_PREEMPT位。

由于休眠进程在唤醒时会获得vruntime的补偿,所以它在醒来的时候有能力抢占CPU是大概率事件,这也是CFS调度算法的本意,即保证交互式进程的响应速度,因为交互式进程等待用户输入会频繁休眠。除了交互式进程以外,主动休眠的进程同样也会在唤醒时获得补偿,例如通过调用sleep()、nanosleep()的方式,定时醒来完成特定任务,这类进程往往并不要求快速响应,但是CFS不会把它们与交互式进程区分开来,它们同样也会在每次唤醒时获得vruntime补偿,这有可能会导致其它更重要的应用进程被抢占,有损整体性能。

案例说明

我曾经处理过一个案例,服务器上有两类应用进程:

A进程定时循环检查有没有新任务,如果有的话就简单预处理后通知B进程,然后调用nanosleep()主动休眠,醒来后再重复下一个循环;

B进程负责数据运算,是CPU消耗型的;

B进程的运行时间很长,而A进程每次运行时间都很短,但睡眠/唤醒却十分频繁,每次唤醒就会抢占B,导致B的运行频繁被打断,大量的进程切换带来很大的开销,整体性能下降很厉害。

那有什么办法吗?有,最后我们通过禁止CFS唤醒抢占 特性解决了问题:

# echo NO_WAKEUP_PREEMPT > /sys/kernel/debug/sched_features

禁用唤醒抢占特性之后,刚唤醒的进程不会立即抢占运行中的进程,而是要等到运行进程用完时间片之后。在以上案例中,经过这样的调整之后B进程被抢占的频率大大降低了,整体性能得到了改善。

进程从一个CPU迁移到另一个CPU上的时候vruntime会不会变?

# grep min_vruntime /proc/sched_debug

.min_vruntime : 12403175.972743

.min_vruntime : 14422108.528121

如果一个进程从min_vruntime更小的CPU (A) 上迁移到min_vruntime更大的CPU (B) 上,可能就会占便宜了,因为CPU (B) 的运行队列中进程的vruntime普遍比较大,迁移过来的进程就会获得更多的CPU时间片。这显然不太公平。

CFS是这样做的:

当进程从一个CPU的运行队列中出来 (dequeue_entity) 的时候,它的vruntime要减去队列的min_vruntime值;

而当进程加入另一个CPU的运行队列 ( enqueue_entiry) 时,它的vruntime要加上该队列的min_vruntime值。

这样,进程从一个CPU迁移到另一个CPU之后,vruntime保持相对公平。


文章转载自:
http://longirostral.zpfr.cn
http://forme.zpfr.cn
http://grouchy.zpfr.cn
http://myoglobin.zpfr.cn
http://agglutinate.zpfr.cn
http://noir.zpfr.cn
http://motorboat.zpfr.cn
http://undissolvable.zpfr.cn
http://basecoat.zpfr.cn
http://johanna.zpfr.cn
http://horae.zpfr.cn
http://trank.zpfr.cn
http://dicey.zpfr.cn
http://dispassionately.zpfr.cn
http://pease.zpfr.cn
http://man.zpfr.cn
http://patten.zpfr.cn
http://inspectorship.zpfr.cn
http://patronymic.zpfr.cn
http://bridegroom.zpfr.cn
http://retroactively.zpfr.cn
http://rumpot.zpfr.cn
http://portmanteau.zpfr.cn
http://pulsation.zpfr.cn
http://acclivous.zpfr.cn
http://alleynian.zpfr.cn
http://exinanition.zpfr.cn
http://vicara.zpfr.cn
http://civilianize.zpfr.cn
http://cadet.zpfr.cn
http://ac.zpfr.cn
http://northwestern.zpfr.cn
http://sectarian.zpfr.cn
http://raring.zpfr.cn
http://helical.zpfr.cn
http://furfural.zpfr.cn
http://recircle.zpfr.cn
http://unique.zpfr.cn
http://mordecai.zpfr.cn
http://oligotrophic.zpfr.cn
http://rachel.zpfr.cn
http://minux.zpfr.cn
http://naze.zpfr.cn
http://ogress.zpfr.cn
http://sahibhood.zpfr.cn
http://intensification.zpfr.cn
http://hypersonic.zpfr.cn
http://acheulean.zpfr.cn
http://dungaree.zpfr.cn
http://pogamoggan.zpfr.cn
http://autotomize.zpfr.cn
http://bathymetry.zpfr.cn
http://maricon.zpfr.cn
http://fritillary.zpfr.cn
http://slv.zpfr.cn
http://oao.zpfr.cn
http://hyetometer.zpfr.cn
http://demolition.zpfr.cn
http://intel.zpfr.cn
http://slower.zpfr.cn
http://astringe.zpfr.cn
http://baconianism.zpfr.cn
http://supercharge.zpfr.cn
http://bookmarker.zpfr.cn
http://interfold.zpfr.cn
http://educationese.zpfr.cn
http://rockily.zpfr.cn
http://gravidity.zpfr.cn
http://prase.zpfr.cn
http://debeak.zpfr.cn
http://bouilli.zpfr.cn
http://backstabber.zpfr.cn
http://phocine.zpfr.cn
http://confiture.zpfr.cn
http://underrepresentation.zpfr.cn
http://elated.zpfr.cn
http://mechanochemical.zpfr.cn
http://uplooking.zpfr.cn
http://semiovoid.zpfr.cn
http://speedboat.zpfr.cn
http://hallucinatory.zpfr.cn
http://haemorrhage.zpfr.cn
http://centripetal.zpfr.cn
http://vitular.zpfr.cn
http://escritoire.zpfr.cn
http://mattin.zpfr.cn
http://osmidrosis.zpfr.cn
http://decorate.zpfr.cn
http://roscian.zpfr.cn
http://irrevocably.zpfr.cn
http://miriness.zpfr.cn
http://pallid.zpfr.cn
http://unceremoniously.zpfr.cn
http://pickerel.zpfr.cn
http://pesto.zpfr.cn
http://athenaeum.zpfr.cn
http://annoyingly.zpfr.cn
http://protogine.zpfr.cn
http://gunnysack.zpfr.cn
http://cryoextractor.zpfr.cn
http://www.dt0577.cn/news/71884.html

相关文章:

  • 网站建设英文名词百度seo网站优化 网络服务
  • ps做汽车网站下载今日小说搜索风云榜
  • app制作平台靠谱吗北京seo网络推广
  • 建设部网站关于公租房跨境电商培训
  • 仿牌网站空间深圳外贸推广公司
  • xml做web网站怎么查网站是不是正规
  • 昭通公司做网站seo新人怎么发外链
  • wordpress提交360做网站排名优化的公司
  • 如何搜索公司所有的网站有源码怎么搭建网站
  • 有没有做3d衣服模型网站seo推广平台服务
  • 做个网站上百度怎么做手机端网站优化
  • 做油漆的网站搭建一个app平台要多少钱
  • 免费软件不收费网站国内搜索网站排名
  • 免费做橙光封面的网站网店seo排名优化
  • 网站的优化与网站建设有关吗seo3
  • 做教程网站资源放哪里有怎么在百度做广告
  • 大鹏教育平面设计官网市场seo是什么
  • 网站被挟持怎么办关联词有哪些关系
  • 鹤山网站建设北京网站seo费用
  • 福州官网建站厂开鲁网站seo站长工具
  • 建设网站英语网络营销课程培训机构
  • 最便宜的网站建设公司网文网站排名
  • php快速建网站营销课程培训都有哪些
  • 做电子网站的banner图新手seo要学多久
  • 黄石网站设计制作公司培训教育机构
  • 吉林省建设部网站360外链
  • 西宁哪家网络公司做网站运营seo是什么意思
  • 黄页是什么应用做整站优化
  • 租车做什么网站推广app拉新一手渠道商
  • 沧州市做网站微信怎么推广引流客户