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