1. Ulimit配置
操作系統(tǒng)默認(rèn)只能打開1024個(gè)文件竭恬,打開的文件超過這個(gè)數(shù)發(fā)現(xiàn)程序會(huì)有“too many open files”的錯(cuò)誤,1024對(duì)于大數(shù)據(jù)系統(tǒng)來說顯然是不夠的熬的,如果不設(shè)置痊硕,基本上整個(gè)大數(shù)據(jù)系統(tǒng)是“不可用的”,根本不能用于生產(chǎn)環(huán)境押框。
配置方法如下:
echo "* soft nofile 128000" >> /etc/security/limits.conf
echo "* hard nofile 128000" >> /etc/security/limits.conf
echo "* soft nproc 128000" >> /etc/security/limits.conf
echo "* hard nproc 128000" >> /etc/security/limits.conf
【修改建議:強(qiáng)烈建議修改岔绸,無影響】
2、swap 問題
讓系統(tǒng)盡量不使用swap橡伞,如果按照默認(rèn)配置為60盒揉,則容易導(dǎo)致內(nèi)存還夠的情況下使用swap,有可能導(dǎo)致jvm的gc回收處于swap的內(nèi)存兑徘,造成一系列超時(shí)問題刚盈。
不是不能再使用swap,只是盡量不使用swap道媚。
echo "vm.swappiness=1" >> /etc/sysctl.conf
sysctl -p
sysctl -a|grep swappiness
【修改建議:強(qiáng)烈建議修改,無影響】
3翘县、內(nèi)存映射數(shù)量限制問題
如果solr內(nèi)存映射過多最域,會(huì)超出系統(tǒng)限制的個(gè)數(shù)65530,導(dǎo)致solr問題锈麸。
vi /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p
【修改建議:強(qiáng)烈建議修改镀脂,無影響】
4、 監(jiān)聽隊(duì)列大小
tcp連接的時(shí)候 listen監(jiān)聽隊(duì)列的大小默認(rèn)為128.
echo " net.core.somaxconn = 32768 " >> /etc/sysctl.conf
sysctl -p
sysctl -a|grep somaxconn
【修改建議: 一般忘伞,無影響】
5薄翅、透明大頁問題
在centos7的系統(tǒng)版本中,透明大頁這種本來為提高性能的手段氓奈,會(huì)系統(tǒng)負(fù)載高的時(shí)候翘魄,造成系統(tǒng)反復(fù)重啟。
所以建議關(guān)閉舀奶。
1)查看是否啟用:
[root@localhost ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
[always]為啟動(dòng)暑竟。
2)停止方法:
1、第一種方法:對(duì)于centos7來說:【臨時(shí)修改可以直接用下面兩條命令】
更改:/etc/rc.d/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
修改權(quán)限: chmod +x /etc/rc.d/rc.local
2育勺、第二種方法:
修改 /etc/grub.conf 重啟后生效但荤。
添加:transparent_hugepage=never
舉個(gè)例子:
For example:
title Oracle Linux Server (2.6.32-300.25.1.el6uek.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-300.25.1.el6uek.x86_64 ro root=LABEL=/ transparent_hugepage=never
initrd /initramfs-2.6.32-300.25.1.el6uek.x86_64.img
【修改建議:建議修改,對(duì)系統(tǒng)性能有點(diǎn)影響】
6涧至、內(nèi)存分配策略 overcommit_memory
[root@localhost ~]# cat /proc/sys/vm/overcommit_memory
0
內(nèi)核參數(shù)overcommit_memory 它是 內(nèi)存分配策略 可選值:0腹躁、1、2南蓬。
0纺非, 表示內(nèi)核將檢查是否有足夠的可用內(nèi)存供應(yīng)用進(jìn)程使用哑了;如果有足夠的可用內(nèi)存,內(nèi)存申請(qǐng)?jiān)试S铐炫;否則垒手,內(nèi)存申請(qǐng)失敗,并把錯(cuò)誤返回給應(yīng)用進(jìn)程倒信。
1科贬, 表示內(nèi)核允許分配所有的物理內(nèi)存,而不管當(dāng)前的內(nèi)存狀態(tài)如何鳖悠。
2榜掌, 表示內(nèi)核允許分配超過所有物理內(nèi)存和交換空間總和的內(nèi)存
【建議設(shè)置為0,目前環(huán)境為0 不用修改】
7乘综、NUMA參數(shù)問題
numa為一種架構(gòu)模式憎账,就是內(nèi)存和cpu組綁定,提升總線通信帶寬卡辰。
配置不當(dāng)容易造成明明內(nèi)存很多胞皱,但是卻在使用swap問題。
1九妈、查看是否開啟NUMA
通過命令: grep -i numa /var/log/dmesg
如果輸出:No NUMA configuration found 則沒有開啟反砌,否則是開啟了NUMA
我們主機(jī)顯示:
[ 3.175740] pci_bus 0000:00: on NUMA node 0
[ 3.180438] pci_bus 0000:10: on NUMA node 1
[ 3.185192] pci_bus 0000:20: on NUMA node 2
[ 3.189191] pci_bus 0000:30: on NUMA node 3
[ 3.191694] pci_bus 0000:40: on NUMA node 4
[ 3.194062] pci_bus 0000:50: on NUMA node 5
[ 3.198240] pci_bus 0000:60: on NUMA node 6
[ 3.200434] pci_bus 0000:70: on NUMA node 7
表明開啟了NUMA。
2萌朱、查看分配策略
cat /proc/sys/vm/zone_reclaim_mode
目前環(huán)境為0 宴树,建議為0 不用修改。
當(dāng)某個(gè)節(jié)點(diǎn)可用內(nèi)存不足時(shí):
1晶疼、如果為0的話酒贬,那么系統(tǒng)會(huì)傾向于從其他節(jié)點(diǎn)分配內(nèi)存
2、如果為1的話翠霍,那么系統(tǒng)會(huì)傾向于從本地節(jié)點(diǎn)回收Cache內(nèi)存多數(shù)時(shí)候
8锭吨、時(shí)鐘同步
建議使用 chronyc 進(jìn)行時(shí)鐘同步,目前已經(jīng)做了寒匙。
9耐齐、關(guān)閉SELINUX
1)查看:
/etc/selinux/config
2)修改
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
10、禁用IPV6
echo -e "NETWORKING_IPV6=no" >> /etc/sysconfig/network
echo -e "alias net-pf-10 off\noptions ipv6 disable=1" > /etc/modprobe.d/disable_ipv6.conf
service network restart