linux 系统硬件优化
来源:互联网 发布:罗马安全 知乎 编辑:程序博客网 时间:2024/05/20 14:40
/etc/do_some_checks.sh
#!/bin/sh
## This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
echo 10 >/sys/module/ipmi_si/parameters/kipmid_max_busy_us
bash /etc/do_some_checks.sh
/etc/balance_lvs_cpu.sh
bash /home/fastmedia/push_fastmedia.sh f01i01_fastmedia.conf start CLC
[root@cmb-cq-218-201-042-186 ~]# cat /etc/do_some_checks.sh
#!/bin/bash
# 本脚本用于优化系统
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
########## 基础信息获取 ##########
CORES=`awk '/processor/{p++};END{print p}' /proc/cpuinfo`
DISK_SYS=`mount |awk '$3=="/"{i=$1;gsub(/\/dev\//,"",i);gsub(/[0-9]/,"",i);}END{print i}'`
DISK_NUM=0
for i in sd{a..z}; do
if [ -b "/dev/$i" ]; then
let DISK_NUM++
last_disk=$i
[ "/dev/$DISK_SYS" == "/dev/$i" ] && continue # skip OS device.
# SSD?
if ( smartctl -i /dev/$i 2>/dev/null |grep -q "SSD\|Micron\|INTEL" ); then
SSDs[$DISK_NUM]=$i
continue
fi
if ( smartctl -i /dev/$i 2>/dev/null |egrep -q "(4[78][0-9]|800) GB" ); then
SSDs[$DISK_NUM]=$i
continue
fi
# DATA?
DISKs[$DISK_NUM]=$i
else
break
fi
done
########## 调整优化 ################
for disk in ${SSDs[*]} ; do echo noop > /sys/block/$disk/queue/scheduler; done
for disk in ${DISKs[*]}; do echo deadline > /sys/block/$disk/queue/scheduler; done
# fastcache启动项
if grep -q /usr/local/fastcache/sbin/fastcache /etc/rc.d/rc.local; then
sed -i -r 's!(nice -n -3 )?/usr/local/fastcache/sbin/fastcache!/etc/init.d/fastcache start!' /etc/rc.d/rc.local
fi
# tcp初始化窗口
ip route |grep default | while read p; do ip route change $p initcwnd 10 initrwnd 44; done; ip route
# 强制使用 cubic 拥塞控制算法
sysctl -w net.ipv4.tcp_congestion_control=cubic &>/dev/null
# 设置 CPU 始终工作在最高频率
for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done
# IPMI CPU高
[ -f /sys/module/ipmi_si/parameters/kipmid_max_busy_us ] && echo 10 >/sys/module/ipmi_si/parameters/kipmid_max_busy_us
#
# CPU
# 平均绑定CPU到网卡多个队列上,避免单核CPU跑满的问题
set_affinity()
{
if [ $VEC -ge 32 ]
then
MASK_FILL=""
MASK_ZERO="00000000"
let "IDX = $VEC / 32"
for ((i=1; i<=$IDX;i++))
do
MASK_FILL="${MASK_FILL},${MASK_ZERO}"
done
let "VEC -= 32 * $IDX"
MASK_TMP=$((1<<$VEC))
MASK=`printf "%X%s" $MASK_TMP $MASK_FILL`
else
MASK_TMP=$((1<<$VEC))
MASK=`printf "%X" $MASK_TMP`
fi
printf "%s mask=%s for /proc/irq/%d/smp_affinity\n" $DEV $MASK $IRQ
printf "%s" $MASK > /proc/irq/$IRQ/smp_affinity
}
if ( service irqbalance status &>/dev/null ); then
service irqbalance stop
chkconfig irqbalance off
fi
# Set up the desired devices.
for DEV in `ifconfig | awk '$0~/^(eth|em)[0-9] /{print $1}'`; do
for DIR in rx tx TxRx; do
MAX=`grep $DEV-$DIR /proc/interrupts | wc -l`
if [ "$MAX" == "0" ] ; then
MAX=`egrep -i "$DEV-" /proc/interrupts | wc -l`
fi
if [ "$MAX" == "0" ] ; then
MAX=`egrep -i "$DEV:.*$DIR" /proc/interrupts | wc -l`
fi
if [ "$MAX" == "0" ] ; then
echo no $DIR vectors found on $DEV
continue
fi
for VEC in `seq 0 1 $MAX`; do
IRQ=`cat /proc/interrupts | grep -i $DEV-$DIR-$VEC"$" | cut -d: -f1 | sed "s/ //g"`
if [ -z $IRQ ]; then
IRQ=`cat /proc/interrupts | grep -i $DEV-$VEC"$" | cut -d: -f1 | sed "s/ //g"`
fi
if [ -n "$IRQ" ]; then
set_affinity
else
IRQ=`cat /proc/interrupts | egrep -i $DEV:v$VEC-$DIR"$" | cut -d: -f1 | sed "s/ //g"`
if [ -n "$IRQ" ]; then
set_affinity
fi
fi
done
done
done
阅读全文
0 0
- linux 系统硬件优化
- Linux和系统硬件
- Linux内核-第一节:系统硬件
- Linux查看系统硬件信息
- Linux 查看系统硬件信息
- Linux查看系统硬件信息
- linux 查询系统硬件信息
- linux 查看系统硬件信息
- Linux 查看系统硬件信息
- Linux系统查看硬件配置
- 查看 linux 系统硬件配置
- Linux查看系统硬件信息
- Linux系统硬件信息查询
- Linux硬件IO的优化简介
- LInux系统时间和硬件时间
- Linux系统的硬件驱动程序编写原理
- Linux系统的硬件驱动程序编写原理
- linux系统下硬件文件名称对应关系
- 三维场景中的多边形表
- lowRISC添加tilelink master
- Android CollapsingToolbarLayout使用介绍
- Java 循环结构
- 关于SQL字符串拼接以及“+”代表意义
- linux 系统硬件优化
- unzip 解压windows上zip文件乱码的问题
- 简单的算法
- caffe中fine-tuning的那些事
- Java Socket简单实例
- mina心跳包:客户端发送心跳包,服务端响应心跳包
- php中利用curl访问接口、上传文件
- Linux 性能测试工具
- 阿里ARouter使用及原理详细介绍