GaussDB(DWS)-OS常见问题归档
一、常见参数配置
1.1 OS core配置
1.2 OS cache配置
free -g #检查当前内存状态
sync
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
如果依旧过高,则是因为脏页,正在回写的页,被共享文件映射的页,drop_caches都不会处理。那么则需要对于脏页进行配置:
#减少脏数据缓存相关参数
sysctl -w vm.dirty_ratio = 10
sysctl -w vm.dirty_background_ratio = 5
sysctl -p
相关链接:https://blog.csdn.net/iteye_16982/article/details/82642924
如果操作系统为eular,可以检查操作系统中是否存在cache_limit_mbytes
ll /proc/sys/vm/cache_limit_mbytes
如果存在,可使用如下命令对其进行限制(单位为MB):
echo 1024 > cache_limit_mbytes
1.3 OS 句柄配置
告警句柄使用超阈值,可通过以下命令进行检查当前句柄数与句柄数上限
cat /proc/sys/fs/file-nr
ulimit -n
现在所持有的句柄为21024,句柄最大值限制分别为640000与1000000,取最小值640000。
应急处理方案:【OS】文件句柄数占用率过高的处理方案。
修改句柄最大值操作:
#实时生效,需root权限
echo ulimit -HSn 65536> /proc/sys/fs/file-max
ulimit -HSn ulimit -HSn 65536
sysctl -p
#永久化生效,需要设置完重启服务器生效
sed -i '/^.*fs.*file-max.*$/d' /etc/sysctl.conf
echo "fs.file-max = 1000000" >> /etc/sysctl.conf
sed -i '/^.*hard.*nofile.*$/d' /etc/security/limits.conf
sed -i '/^.*soft.*nofile.*$/d' /etc/security/limits.conf
echo "* soft nofile 1000000" >> /etc/security/limits.conf
echo "* hard nofile 1000000" >> /etc/security/limits.conf
SUSE12.5以上操作系统单用户可创建线程需要特别设置。单用户可创建线程的上限受到以下三类参数的影响:
- 单用户可创建线程的上限要大于60000,那么此用户在/etc/security/limits.conf的nproc值必须大于60000,以dws用户为例,/etc/security/limits.conf的配置如下:
dws soft nproc 61000
dws hard nproc 61000
用户dws重新登录,limits.conf里的参数即可生效
- 单用户可创建线程的上限受内核参数vm.max_map_count影响,创建线程最大值为vm.max_map_count的一半,即大于120000,配置方法如下:
echo "vm.max_map_count = 122000" >> /etc/sysctl.conf
sysctl -p
- 单用户可创建线程的上限也受到/etc/systemd/logind.conf中的UserTasksMax影响,但此参数一旦调大(调整后重启生效),所有用户的task数均被调大,建议的配置方法是按用户来设置(以用户的uid为1001为例):
1)在目录/etc/systemd/system/中创建目录user-1001.slice.d
mkdir /etc/systemd/system/user-1001.slice.d
2)在新建目录中创建文件50-tasksmax.conf并写入以下内容:
vi /etc/systemd/system/user-1001.slice.d/50-tasksmax.conf
TasksMax=61000
完成之后,下次uid为1001的用户登录之后,他的TasksMax的值即调整为61000
如果uid为1001的用户处于登录状态,也可用以下命令调整TasksMax的值:
systemctl set-property user-1001.slice TasksMax=61000
uid为1001的用户的TasksMax的查询命令:
systemctl show user-1001.slice | grep -i TasksMax | grep -v DropInPaths
当且仅当上述三类参数均调整完成,SUSE12.5 版本上的单用户才可以创建大于60000的线程。
1.4 OS 网络参数配置
- unexpected EOF on GDS
原因分析:当集群中出现大量这种错误时候首先考虑GDS机器的网络参数设置是否符合要求。可以参考下面的参数
参数参考值:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_retries1 =5
net.ipv4.tcp_retries2 = 60
查看方法
cat /proc/sys/net/core/somaxconn
cat /proc/sys/net/ipv4/tcp_max_syn_backlog
cat /proc/sys/net/core/netdev_max_backlog
cat /proc/sys/net/ipv4/tcp_retries1
cat /proc/sys/net/ipv4/tcp_retries2
修改方法
修改对应参数:
vim /etc/sysctl.conf
永久生效:
sysctl -p
- 负载均衡有些服务器访问不到造成的问题,解决方法:
#检查当前参数是否存在及其现阶段值
cat /proc/sys/net/ipv4/conf/all/rp_filter
cat /proc/sys/net/ipv4/conf/br1/rp_filter
cat /proc/sys/net/ipv4/conf/br0/rp_filter
#临时修改参数
echo 0 /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 /proc/sys/net/ipv4/conf/br1/rp_filter
echo 0 /proc/sys/net/ipv4/conf/br0/rp_filter
#永久修改参数
cat /etc/sysctl.conf
修改
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.br0.rp_filter = 0
net.ipv4.conf.br1.rp_filter =0
sysctl -p
- LVS配置项检查
/sbin/sysctl -a | grep ip_forward
net.ipv4.ip_forward=1
/sbin/sysctl -a | grep arp_
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
二、GaussDB(DWS)-集群告警出现大量D/Z进程
https://bbs.huaweicloud.com/blogs/421174
三、GaussDB(DWS)-硬件-慢盘定位实践
https://bbs.huaweicloud.com/blogs/423497
四、异常重启
https://bbs.huaweicloud.com/forum/thread-0235114773299016034-1-1.html
五、Linux 性能监控 Sar (Sysstat) 辅助排查手段
https://bbs.huaweicloud.com/blogs/345343
- 点赞
- 收藏
- 关注作者
评论(0)