Redis开发运维的陷阱及避坑指南 (2)

对于某些发行版本(例如红帽6以上)配置文件不在这个位置(在 /sys/kernel/mm/redhat_transparent_hugepage/enabled),但是 Redis 检查 THP 是写死的此位置,所以虽然这么修改后 Redis 不报警然而实际是没有作用的,需要注意。应该改动对应位置的值

使用NTP 同步时间

在集群或哨兵环境中,多台服务器使用相同的网络时间协议同步时间能更方便的阅读日志,排查问题

可以设置定时任务同步时间

crontab -u //设定某个用户的cron服务 crontab -l //列出某个用户cron服务的详细内容 crontab -r //删除某个用户的cron服务 crontab -e //编辑某个用户的cron服务 crontab -i //打印提示,输入yes等确认信息

添加每小时执行一次的任务

0 * * * * /usr/sbin/ntpdate cn.pool.ntp.org > dev/null 2>&1 最大连接数限制

通过 ulimit -a 命令查看和设置当前用户进程的资源数,其中包含 open files 参数,是单个用户同时打开的最大文件描述符个数。虽然 Redis 中可以配置最大的客户端连接数(默认 10000) 。Redis 内部最多使用 32 个文件描述符。当 open files = 4096 时,Redis 最大提供 4096-32=4064 个连接。因为它不能突破操作系统的限制。如果需要,使用如下命令修改:

ulimit -Sn {max-open-files} TCP backlog

tcp backlog 配置的是 tcp 握手时候的队列大小。如果该值过小。会导致高并发场景下部分连接第三次握手ACK被丢弃。关于 backlog

The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

Redis 启动时,会告诉我们系统配置中该值是 128,而 Redis 511。这个 511 是没用的,因为系统比这个小。需要修改系统 backlog 的值

echo 511 > /proc/sys/net/core/somaxconn

参考文献:

《Redis开发与运维》 --- 付 磊 张益军

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjjzp.html