CentOS Cpu性能优化方法详解

调节CPU对应某个程序的使用:

一、使用taskset充分利用多核cpu,让cpu的使用率均衡到每个cpu上

#taskset
-p,    设定一个已存在的pid,而不是重新开启一个新任务
-c,    指定一个处理,可以指定多个,以逗号分隔,也可指定范围,如:2,4,5,6-8。

1,切换某个进程到指定的cpu上
taskset -cp 3 13290

2,让某程序运行在指定的cpu上
taskset -c 1,2,4-7 tar jcf test.tar.gz test

需要注意的是,taskset -cp 3 13290在设定一个已经存在的pid时,子进程并不会继承父进程的,
因此像tar zcf xxx.tar.gz xxx这样的命令,最好在启动时指定cpu,如果在已经启动的情况下,则需要指定tar调用的gzip进程。

二,使用nice和renice设置程序执行的优先级
格式:nice [-n 数值] 命令

nice 指令可以改变程序执行的优先权等级。指令让使用者在执行程序时,指定一个优先等级,称之为 nice 值。
这个数值从最高优先级的-20到最低优先级的19。负数值只有 root 才有权力使。
一般使用者,也可使用 nice 指令?碜鲋葱谐绦虻挠畔燃豆芾恚??荒芙?ice值越调越高。

可以通过二种方式来给某个程序设定nice值:
1,开始执行程序时给定一个nice值,用nice命令
2,调整某个运行中程序的PID的nice值,用renice命令
通常通过调高nice值来备份,为的是不占用非常多的系统资源。

例:
nice -n 10 tar zcf test.tar.gz test

由nice启动的程序,其子进程会继承父进程的nice值。

查看nice值
# nice -n -6 vim test.txt &
# ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 19427  2637  0  75   0 – 16551 wait   pts/6    00:00:00 bash
4 T     0 21654 19427  0  71  -6 – 23464 finish pts/6    00:00:00 vim

renice调整运行中程序的nice值
格式:renice [nice值] PID

三,使用ulimit限制cpu占用时间
注意,ulimit 限制的是当前shell进程以及其派生的子进程。因此可以在脚本中调用ulimit来限制cpu使用时间。
例如,限制tar的cpu占用时间,单位秒。
# cat limit_cpu.sh
ulimit -SHt 100
tar test.tar.gz test

如果tar占用时间超过了100秒,tar将会退出,这可能会导致打包不完全,因此不推荐使用ulimit对cpu占用时间进行限制。
另外,通过修改系统的/etc/security/limits配置文件,可以针对用户进行限制。

四,使用程序自带的对cpu使用调整的功能
某些程序自带了对cpu使用调整的功能,比如nginx服务器,通过其配置文件,可以为工作进程指定cpu,如下:
worker_processes  3;
worker_cpu_affinity 0001 0010 0100 1000;

这里0001 0010 0100 1000是掩码,分别代表第1、2、3、4颗cpu核心,这就使得cpu的使用比较平均到每个核心上。

查找某个CPU运行在某个进程:
ps命令的输出格式可以通过-o参数定制,可以使用如下命令显示进程所对应的执行CPU:

# ps -eo pid,args,psr
参数的含义:
pid – 进程ID
args – 该进程执行时传入的命令行参数
psr – 分配给进程的CPU

有关ps命令的其它信息请查阅ps手册:

# man ps

示例:
[root@www ~]# ps -eo pid,args,psr
………….
20965 /usr/local/php-fcgi/bin/php   1
21683 /bin/sh /usr/local/ddos/ddo   1
21684 sleep 600                     3
21746 /sbin/udevd -d                2
21832 /bin/sh /usr/local/ddos/ddo   1
21833 sleep 600                     0
21865 sshd: root@pts/0              3
21873 -bash                         1
21927 ps -eo pid,args,psr           1
23520 [pdflush]                     3
23744 nginx: master process /usr/   1
23745 nginx: worker process         3
23749 nginx: worker process         3
23753 nginx: worker process         3
23755 nginx: worker process         3

时间: 2024-07-30 13:30:31

CentOS Cpu性能优化方法详解的相关文章

浅谈TCP/IP优化方法详解

很多人常常对TCP优化有一种雾里看花的感觉,实际上只要理解了TCP的运行方式就能掀开它的神秘面纱.Ilya Grigorik 在「High Performance Browser Networking」中做了很多细致的描述,让人读起来醍醐灌顶,我大概总结了一下,以期更加通俗易懂.   流量控制 传输数据的时候,如果发送方传输的数据量超过了接收方的处理能力,那么接收方会出现丢包.为了避免出现此类问题,流量控制要求数据传输双方在每次交互时声明各自的接收窗口「rwnd」大小,用来表示自己最大能保存多少

CentOS6.3下nginx性能优化配置详解(1/2)

一.NGINX优化配置 1.主配置文件优化: # vi /usr/local/nginx/conf/nginx.conf ----------------------------------------- user nginx nginx; worker_processes 8; worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000; error_log  /usr/local/ngi

Wordpress 网站搭建及性能监控方法详解!

前言 说到 Wordpress,大家往往想到的是博客,其实,如今的 WordPress 已经成为全球使用量最多的开源 CMS 系统.并且,如果你有一定的技术基础稍加改动,就可以搭建出新闻网站.企业网站.电影网站,甚至是商城系统等.据维基百科两年前的统计,已经有超过 2 千万的网站使用了 Wordpress 搭建自己的系统. Wordpress 官网上有这么一句话:WordPress is both free and priceless at the same time. 说到价格无法衡量,有这么

nginx或tomcat的性能优化调整详解

最近花了一点时间进行了NGINX加TOMCAT7集群压力测试,下面通过对一些常见问题的回答来说明如何调优服务器的性能,是自己的一些经验,且无实际数据,如有纰漏请见谅. 背景: TOMCAT7已加APR或者NIO.已装简单监控JCONSOLE,监控服务器内存,线程等基本情况. 问题1  一个Tomcat他的maxThreads到底配置多少合适? 一个好的maxThreads的配置就是达到资源的合理化应用. 资源池: 在讲其它东西之前,我们先引入一个概念,就是资源池.tomcat7中,他对http请

Android ListView适配器(Adapter)优化方法详解

Android ListView的优化,在做Android项目的时候,在用到ListView 界面及数据显示,这个时候如果资源过大,对项目来说,用户体验肯定是不好的,这里就对如何优化做了详细介绍: Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View.想过没有? 在我们的列表有1000000项时会是什么样的?是不是会占用极大的系统资源? ListView的Adapter的作用如下图所示: 先看看下面

CentOS下SSH配置方法详解

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议. 传统的网络服务程序,如FTP.POP和Telnet其本质上都是不安全的:因为它们在网络上用明文传送数据.用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击.就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器. 而 SSH 是目前

centos增加mysql连接数方法详解

MySQL 默认的最大连接数为 100,可以在 mysql 客户端使用以下命令查看 mysql> show variables like 'max_connections'; 此命令将得到类似以下的输出结果: +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 2000 | +-----------------+-------+ 1 row in

CentOS系统编译tmux方法详解

两个依赖包 ncurses-devel 和 libevent (2.0.10 版本以上):  代码如下 复制代码 yum install -y ncurses-devel wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz tar xzf libevent-2.0.21-stable.tar.gz cd libevent-2.0.21-stable ./configure make &

mysql表优化、分析、检查和修复的方法详解_Mysql

本文实例讲述了mysql表优化.分析.检查和修复的方法.分享给大家供大家参考,具体如下: 这里介绍对数据库的管理常规就是进行预防性的维护,以及修复那些出现问题的内容. 进行检查和修复通常具有四个主要的任务: 1. 对表进行优化 2. 对表进行分析(分析并存储MyISAM和BDB表中键的分布) 3. 对表进行检查(检查表的错误,并且为MyISAM更新键的统计内容) 4. 对表进行修复(修复被破坏的MyISAM表) 一.对表进行优化 优化表有很多方式实现: OPTIMIZE TABLE语句.mysq