OS配置–RHEL/CentOS

1.配置hosts

/etc/hosts
echo "192.168.1.71	ms01" >>/etc/hosts
echo "192.168.1.72	ms02" >>/etc/hosts
echo "192.168.1.73	ms03" >>/etc/hosts
echo "192.168.1.74	ms04" >>/etc/hosts

2.配置环境变量

echo "export LANG=en_US" >>~.bash_profile

3.配置资源限制

/etc/security/limits.conf

*	soft nproc 	65535
*	soft nofile	65535
*	soft stack 	65535
*	hard nproc 	65535
*	hard nofile	65535
*	hard stack 	65535
/etc/security/limits.d/90-nproc.conf
* - proc 65535

4.配置SELinux

/etc/selinux/config
SELINUX=disable

5.关闭防火墙

##RHEL6

service iptables stop
chkconfig iptables off

##RHEL7

systemctl stop firewalld
systemctl disable firewalld

6.配置登录验证

/etc/pam.d/login
session required pam_limits.so

7.关闭numa

NUMA(Non-Uniform Memory Access Architecture)即非一致性内存访问技术。NUMA系统有多个Node通过高速互连的网络联系起来的系统。物理内存被平均分配给不同的Node。同一Node中CPU能够较快的访问分配的内存,而同时对跨Node的内存访问较慢。
最为关键的是,当一个Node中的内存被使用完成时,系统会使用SWAP,即使其他Node中仍存在剩余内存。

查看是否支持NUMA

dmesg | grep -i NUMA

查看当前numa的节点情况:

numactl –hardware

NUMA的禁用
在groub.conf中的kernel参数中加入numa=off

8.开启HugePage

Linux默认情况下每页是4K,这就意味着如果物理内存很大,则映射表的条目将会非常多,会影响CPU的检索效率。因为内存大小是固定的,为了减少映射表的条目,可采取的办法只有增加页的尺寸。因此Hugepage便因此而来。也就是打破传统的小页面的内存管理方式,使用大页面2m,4m,16m等等。如此一来映射条目则明显减少。
HugePage能够提高内存的访问效率,简单内存交换次数,对于内存大于8G的服务器建议开启。

9.磁盘优化

cat /sys/block/sd*/queue/scheduler

/etc/rc.local

---SAS/STAT
echo 'deadline' >/sys/block/sd*/queue/scheduler

---SSD
echo 'NOOP' >/sys/block/sd*/queue/scheduler

echo '16' >/sys/block/sd*/queue/read_ahead_kb
echo '512' >/sys/block/sd*/queue/nr_requests

目前 Linux 上有如下几种 I/O 调度算法
1.noop(No Operation) – 通常用于内存存储的设备。
2.cfq(Completely Fair Scheduler ) – 完全公平调度器。进程平均使用IO带宽。
3.Deadline – 针对延迟的调度器,每一个 I/O,都有一个最晚执行时间。
4.Anticipatory – 启发式调度,类似 Deadline 算法,但是引入预测机制提高性能。 —减少预读 echo ‘1024’ > /sys/block/sda/queue/read_ahead_kb 这个参数对顺序读非常有用,意思是,一次提前读多少内容,无论实际需要多少.默认一次读 128kb
远小于要读的,设置大些对读大文件非常有用,可以有效的减少读 seek 的次数,这个参数可以使用 blockdev –setra
来设置,setra 设置的是多少个扇区,所以实际的字节是除以2,比如设置 512 ,实际是读 256 个字节.

—增加队列 echo ‘512’ >/sys/block/sda/queue/nr_requests 通过适当的调整nr_requests
参数可以大幅提升磁盘的吞吐量,缺点就是你要牺牲一定的内存。

10.SWAP优化

swapiness
确定了当物理内存使用率剩余多少时,开始使用swap,如果被设置成10,则当物理内存剩余使用率小于10%时,开始使用swap。
min_free_kbytes是系统保留内存,即留给操作系统使用的内存。防止内存耗尽时,系统都无法登录。

/etc/sysctl.conf
vm.swapiness=10
vm.min_free_kbytes=102400

sysctl -p