linux系统日志__ratelimit: N callbacks suppressed
报错
今天线上遇到故障,php进行因为段错误退出了,系统日志中的kernel报错如下:
Feb 25 22:25:11 web_server_01 kernel: __ratelimit: 250 callbacks suppressed
Feb 25 22:25:11 web_server_01 kernel: php-fpm[25942]: segfault at 2c6 ip 00000000000002c6 sp 00007fffdcf9e798 error 14 in php-fpm[400000+a3b000]
查询
对于__ratelimit: 250 callbacks suppressed的报错的原因不是很理解,遂做了一番查询,记录一下:
__ratelimit: N callbacks suppressed表示内核阻止了N条syslog消息,这是因为系统重复的日志过多(频率过高),太快输出,被内核中的net_ratelimit()限制了syslog消息。
源码参考:http://fxr.watson.org/fxr/source/lib/ratelimit.c?v=linux-2.6
这个rate limit也是Linux为了避免DoS攻击的一种机制,避免每个消息都被记录(会导致存储空间撑爆)。当内核记录消息,使用printk()通过这种机制来检查是否输出日志。
这个限制可以通过/proc/sys/kernel/printk_ratelimit和/proc/sys/kernel/printk_ratelimit_burst来调优。默认配置(RHEL6)分别是5和10。也就是说,内核允许每5秒记录10条消息。超过这个限制,内核就会抛弃日志,并记录ratelimit N: callbacks suppressed。
[root@web_server_01 ~]# cat /proc/sys/kernel/printk_ratelimit
5
[root@web_server_01 ~]# cat /proc/sys/kernel/printk_ratelimit_burst
10
[root@web_server_01 ~]#
然而,在内核的网络代码中有自己的限制配置(逻辑相同,但是是独立的配置) /proc/sys/net/core/message_cost和/proc/sys/net/core/message_burst,默认配置也是5和10。这里message_cost也是日志采样时间。
[root@web_server_01 ~]# cat /proc/sys/net/core/message_cost
5
[root@web_server_01 ~]# cat /proc/sys/net/core/message_burst
10
[root@web_server_01 ~]#
如果要关闭ratelimit机制,也就是允许每个消息都记录下来,则可以设置message_cost值为0
sysctl -w net.core.message_cost=0
不过,一旦关闭ratelimit,系统就可能存在被日志攻击的风险。
参考链接:https://huataihuang.gitbooks.io/cloud-atlas/content/os/linux/kernel/log/ratelimit.html
linux系统日志__ratelimit: N callbacks suppressed的更多相关文章
- Linux系统日志及日志分析
Linux系统日志及日志分析 Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息. 大部分Linux发行版默认的日志守护进程为 syslog,位 ...
- rsync命令 续集 、linux系统日志、screen工具
1.rsync 通过服务进行监听同步: 开启服务:rsync --daemon (默认开启873端口) 需要编辑配制文件:/etc/rsyncd.conf port=873log file=/var ...
- rsync 通过服务的方式同步 linux系统日志 screen工具
rsync 通过服务的方式同步 俩台机器传文件IP地址交叉编写. 主机1: 要编辑配置文件 /etc/rsyncd.conf rsyncd.conf样例 port=873 ...
- rsync通过服务同步、Linux系统日志、screen工具 使用介绍
第8周5月15日任务 课程内容: 10.32/10.33 rsync通过服务同步10.34 linux系统日志10.35 screen工具 扩展1. Linux日志文件总管logrotate http ...
- Linux CentOS7 rsync通过服务同步、linux系统日志、screen工具
一.rsync通过服务同步 rsyncd.conf配置文件详解 port:指定在哪个端口启动rsyncd服务,默认是873端口. log file:指定日志文件. pid file:指定pid文件,这 ...
- Linux系统日志清除实验
实验目的 1.了解Linux日志的作用. 2.掌握删除Linux日志的方法. 实验原理 所谓日志(Log)是指系统所指定对象的某些操作和其操作结果按时间有序的集合.每个日志文件由日志记录组成,每条日志 ...
- Linux系统日志
日 志 文 件 说 明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 /va ...
- linux系统日志使用
FROM:http://blog.csdn.net/zzxian/article/details/7905964 Part I: syslogd & klogd ---------/etc ...
- 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全
日志分类: 1. 连接时间的日志 连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,不过这 两个文件无法直接cat查看,并且该文件由系统自动更新,可以通过如下: ...
随机推荐
- Django + Ansible 主机管理(有源码)
本文给大家介绍如何利用 Django + Ansible 进行 Web 项目管理. Django介绍 一个可以使 Web 开发工作愉快并且高效的 Web 开发框架,能够以最小的代价构建和维护高质量 ...
- node.js学习笔记(一)——创建第一个应用
巧妇难为无米之炊.要学习node.js,当然必须先有node.js环境(可以去官网 http://nodejs.cn/ 下载安装),如果还是不懂怎么配置开发环境,度娘会告诉你一切. 安装完成环境之后, ...
- Qt-网易云音乐界面实现-8 主导航的实现-QtabWidget
哎呀,堕落了,快有小两周没哟更新了,是在是没有动力了,浏览量连三位数都没有,是在是没有写下去的信心. 还有就是这个网易云音乐的代码量绝对是不可小视的,完全低估了这个软件的能量.昨天仔细想了一下,写不下 ...
- 基于Centos7的比特币源码编译
因为一直比较熟悉Windows平台的开发,本来打算在windows下进行编译,但查了一些文章,发现还是在linux下编译成本最低,所以这里就以手头现有的Centos7环境进行代码编译. 一.代码获 ...
- websocket protocal
same-orgins:浏览器同源策略的安全模型 持久化协议 双向双工 多路复用, 同时发信息 区别HTTP连接特点: http只能由客户端发起,一个request对应一个respon ...
- IEEE1588 ( PTP ) 协议简介
IEEE1588 协议,又称 PTP( precise time protocol,精确时间协议),可以达到亚微秒级别时间同步精度,于 2002 年发布 version 1,2008 年发布 vers ...
- Django中的Project和App的区别
Django是一个非常流行的用python编写的Web框架,在使用Django之前,我们需要了解一些基本的概念,这样可以在使用Django的时候对其有一个更加深入的把握.本文主要介绍Django中两个 ...
- NO.2:自学tensorflow之路------BP神经网络编程
引言 在上一篇博客中,介绍了各种Python的第三方库的安装,本周将要使用Tensorflow完成第一个神经网络,BP神经网络的编写.由于之前已经介绍过了BP神经网络的内部结构,本文将直接介绍Tens ...
- Android工程导入Unity3D(避坑版)
最近与各种牛逼的项目管理软件打交道,比如SourceTree,要看英文版的才看得懂,中文反而不会用!... 这篇博客适合没怎么接触过安卓的小伙伴们,网上也有很多相关的教程,但是大多都没有具体的操作或则 ...
- 关于SQL while 循环嵌套 外部循环数据无法进入内部循环
下面一般是,作为SQL新手第一次写循环嵌套的办法,但是大家会发现一个问题,那就是变量@i总是不能进入第二个循环. declare @i int ,@j int, @k int set @j = 1 - ...