> CentOS > CentOS入门 >

Centos 调优 CPU优化

1 查看L1,L2...
    dmesg
    x86info  -c  (yum install x86info  -y)
2 命中率,丢失率查看:
    valgrind --tool=caohegrind  命令
3 查看进程优先级(一般默认为0)
    chrt -p 29022(进程号)
    top
三种优先级:SCHED_RR    1~99      调整方法:chrt  -r  50   命令
             SCHED_FIFO   1~99       调整方法:chrt  -f  50   命令
             SCHED_OTHER   100~139   (调整时的值为-20~19)调整方法:
                                                 nice -n -18  命令
                                                 renice  -18  -p 312(进程号)
4 平均负载率查看
     sar  -q  1 2  (每隔一秒显示一次,共显示两次)
     top
     uptime
5 使用率查看
     mpstat
     sar -P ALL 1 2
     iostat  -c  1 2
     more  /proc/stat
6 时钟频率 (xen上不可用)
     tick_divider=   (在/etc/grub.conf中kernel那行添加)
                   2    (=500Hz)
                   4    (=250Hz)
                   5    (=200Hz)
                   8    (=125Hz)
                   10   (=100Hz)
          tick_divider值越小  cpu消耗就高,性能就低,计时器准确度高
          tick_divider值越大  cpu消耗就低,性能就高,计时器准确度低
7 cpu频率电压
      /etc/init.d/cpuspeed  此进程可自动调节cpu频率电压的值
      /etc/sysconfig/cpuspeed  (此可手动配置cpu频率电压的值)
8 IRQ balancing 
       此机制可将进程按一定方法分配给不同cpu执行(默认每10秒分配一次)
       若想自己分配cpu任务进程:chkconfig  irqbalance  off  (将IRQ balancing 关闭)
                                ls /proc/irq  (查看当前有的IRQ中断)
                                      1  2  10 。。。。
                                ls /proc/irq/1/
                                      i8042      smp_affinity
                                cat smp_affinity
                                      00000001  (此为cpu编号)
                                echo 00000002 > /proc/irq/1/smp_affinity
9 将进程分配给cpu
       taskset  -p  0x00001  1  (将进程号为1的进程分配给0x00001cpu)
10 制定开机后运行哪几个cpu
       vim /etc/grub.conf
            isolcpus=0,1,2...
11 查看cpu与IRQ
       cat  /proc/cpuinfo
       cat /proc/interrupt
12 关闭cpu(无法关闭开机用cpu)
       echo 0 > /sys/devices/system/cpu/cpu1/online  (关闭cpu1)
       echo 1 > /sys/devices/system/cpu/cpu1/replaceable/online  (开启cpu1)
13 查看进程取得哪些资源
       cat  /proc/3213/status
14 将cpu分组(默认组为/)
     例(建立 /cpusets cpu组) 
       mkdir /cpusets
       grep  cpu  /proc/filesystems
       vim /etc/fstab
             mount -t cpuset nodev  /cpusets/
       mount -a
       ls /cpusets/
            .....cpus.....mem....tasks...
       echo 1 > /cpusets/cpus  (为/cpusets分配cpu)
       echo 0 > /cpusets/mems (为/cpusets分配mem)
       echo  3132 > /cpusets/tasks (进程号为3132的进程绑到cpusets组)
       cat /proc/3132/cpuset
            /cpusets (默认为/)
       (/cpusets/cpu_exclusive   此中的cpu只能在此cpu组运行)
       (/cpusets/notify_on_release  自动清理cpu组缓存开关) (责任编辑:IT)