全球主机交流论坛
标题:
让VPS更好的支持多核心CPU
[打印本页]
作者:
hkin
时间:
2010-6-3 13:12
标题:
让VPS更好的支持多核心CPU
[size=1em]包括Apache在内的很多程序,都是早期开发的软件,没有默认对多核心的支持。自己看了下我的8核VPS,确实如此。怎么办呢?问题当然要有解决的办法,而且不算太麻烦。
[size=1em]根据自己的需要,我修改了MySQL、Apache和Nginx,开启多核心支持,使它们获得更好的性能。
开启多核心方法如下:
[size=1em]
1、安装“taskset工具”:
yum install schedutils
[size=1em]使用方法:
taskset -cp 1,2,3 567
[size=1em]网上介绍的命令,“1,2,3”是CPU核数,分配给PID为“567”的进程。
[size=1em]这样的命令太麻烦,有些程序PID很多,难道一个个找?下面介绍简单的方法~
[size=1em]
2、关闭Mysql,并以多核心模式启动:
/etc/init.d/mysql stop
taskset -c 1,2 /etc/init.d/mysql start
[size=1em]
注:
设置Mysql占用CPU1、2核
[size=1em]对于Mysql,还有另一个关于核心的优化设置,在“my.cnf ”文件中找到以下代码:
thread_concurrency=
[size=1em]后面的数字建议为CPU核心数的2倍,这样可以试Mysql更好的利用多核心资源
[size=1em]
3、关闭Apache,并以多核心模式启动:
/etc/init.d/httpd stop
taskset -c 3,4,5,6 /etc/init.d/httpd start
[size=1em]
注:
设置Apache占用CPU3、4、5、6核
[size=1em]
4、设置Nginx开启多核心模式:
[size=1em]Nginx开启多核心支持与上述两个程序不同,Nginx内部提供了更精确的控制。
[size=1em]编辑修改“/etc/nginx/nginx.conf ”,找到以下代码:
worker_processes 1;
[size=1em]1代表1核,根据需要修改就可以了,不一定要写满核心数。我设置了3核:
worker_processes 3;
[size=1em]在其下方添加一行代码:
worker_cpu_affinity 0010 0100 1000;
[size=1em]这里0010 0100 1000是掩码,分别代表第2、3、4颗cpu核心。
[size=1em]
5、查看CPU使用情况:
[size=1em]在SSH下输入命令“top”,然后按“1”,可以看CPU每个核心的使用情况了吧?
[size=1em]
作者:
cs19861010
时间:
2010-6-3 13:13
自己写的还是COPY的?
作者:
gdtv
时间:
2010-6-3 13:18
好像有人发过了
作者:
hkin
时间:
2010-6-3 13:18
原帖由
cs19861010
于 2010-6-3 13:13 发表
自己写的还是COPY的?
不管黑猫白猫抓到老鼠就是好猫
作者:
kok
时间:
2010-6-3 13:24
收藏........
作者:
mslxd
时间:
2010-6-3 13:27
真的有用不?记录一下
作者:
ajdits
时间:
2010-6-3 13:38
收藏........
作者:
winsock
时间:
2010-6-3 14:48
没必要的,apache,mysql这些都是基于fork进程的,本来就能用到多核
作者:
monface
时间:
2010-6-3 15:35
我用top然后按1,发现nginx直接都能识别多核呢
作者:
monface
时间:
2010-6-3 15:44
详细了解了一下,nginx的worker_cpu_affinity配置只是绑定nginx使用cpu核的个数和具体哪一个,默认都是支持多核的
例如worker_cpu_affinity 0010 0100 1000;表示使用2,3,4的核心运行nginx.
欢迎光临 全球主机交流论坛 (https://sunk.eu.org/)
Powered by Discuz! X3.4