|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在学习初期,你一定会遇到很多困难,或者说各种困难,所以你最好先将你linux中的重要内容备份,因为,在你学习的过程中,很可能将系统搞废(eg:源混乱等);
我的Linode非常忙碌,在跑一些麋集操纵数据库的Rake义务时特别云云。但我察看发明,Linode服务器的4核CPU,只要第1个中心(CPU#0)十分忙,其他都处于idle形态。
不懂得Linux是怎样调剂的,但今朝明显有优化的余地。除处置一般义务,CPU#0还必要处置每秒网卡中止。因而,若能将CPU#0分管的义务分摊到其他CPU中心上,能够预感,体系的处置才能将有更年夜的提拔。两个名词
SMP(SymmetricalMulti-Processing):指在一个盘算机上搜集了一组处置器(多CPU),各CPU之间共享内存子体系和总线布局。[更多...]
CPUaffinity:中文唤作“CPU亲和力”,是指在CMP架构下,可以将一个或多个历程绑定到一个或多个处置器上运转。[更多...] 1、在Linux上修正历程的“CPU亲和力”
在Linux上,能够经由过程taskset命令举行修正。以Ubuntu为例,运转以下命令能够安装taskset工具。- #apt-getinstallschedutils
复制代码 对运转中的历程,文档上说能够用上面的命令,把CPU#1#2#3分派给PID为2345的历程:但我实验没见效,因而我关失落了MySQL,并用taskset将它启动:- #taskset-c1,2,3/etc/init.d/mysqlstart
复制代码 关于其他历程,也可云云处置(nginx除外,详见下文)。以后用top检察CPU的利用情形,本来余暇的#1#2#3,已在勤劳事情了。
<br>
2、设置nginx绑定CPU
方才说nginx除外,是由于nginx供应了更准确的把持。
在conf/nginx.conf中,有以下一行:这是用来设置nginx启动几个事情历程的,默许为1。而nginx还撑持一个名为worker_cpu_affinity的设置项,也就是说,nginx能够为每一个事情历程绑定CPU。我做了以下设置:- worker_processes3;worker_cpu_affinity001001001000;
复制代码 这里001001001000是掩码,分离代表第2、3、4颗cpu中心。
重启nginx后,3个事情历程就能够各自用各自的CPU了。
3、寻根究底
- 假如本人写代码,要把历程绑定到CPU,该怎样做?能够用sched_setaffinity函数。在Linux上,这会触发一次体系挪用。
- 假如父历程设置了affinity,以后其创立的子历程是不是会有一样的属性?我发明子历程的确承继了父历程的affinity属性。
4、Windows?
在Windows上修正“CPU亲和力”,能够经由过程义务办理器弄定。
<br>
<br>
*团体感到,Windows体系中翻译的“处置器干系”比“CPU亲和力”简单了解点儿
—————–
举行了如许的修正后,即便体系负载到达3以上,不带缓存翻开blogkid.net首页(有40屡次查询)仍然顺畅;之前一旦负载凌驾了1.5,呼应就很慢了。效果很分明。
为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的。 |
|