日志超限引起的hilog丢日志问题解决方案
进程超限只对应用类型(LOG_APP)日志生效,domain超限只对系统类型(LOG_CORE, LOG_INIT)日志生效 如果看到类似日志,说明该日志打印超标(10KB/s)被超限了: LOGLIMIT: ==LOGS OVER PROC QUOTA, 2849 DROPPED== 调试过程中可以通过: hilog –Q
进程超限只对应用类型(LOG_APP)日志生效,domain超限只对系统类型(LOG_CORE, LOG_INIT)日志生效
如果看到类似日志,说明该日志打印超标(10KB/s)被超限了:
LOGLIMIT : ==LOGS OVER PROC QUOTA, 2849 DROPPED ==
调试过程中可以通过:
hilog –Q pidoff 关闭进程超限
hilog -Q domainoff 关闭domain超限
但如果系统中日志量过大(当前整改后已有很大改善),仍然会在socket写入时直接失败导致日志丢弃,可以通过hilog –b X来关闭所有领域的日志打印(小部分特殊日志无法关闭),然后通过hilog –b <level> -D <domain>来打开自己领域的日志
有低概率看到类似这样的日志:
00000/HiLog: ========Slow reader missed log lines: 120
这是因为日志服务缓存满了要清理部分空间出来,但客户端(hilog命令或落盘任务)还没来得及读到被清理的日志,本质上仍然是系统里日志打印频率太高了,这种可以通过hilog –G <size>来增加缓存大小(默认大小256K, 一般调整到2M就足够了)
总结,应对日志丢失的情况,通过如下几步基本都可以解决:
应用开发者: hilog –b X; hilog –b <level> -D <domain>; hilog –Q pidoff;
系统开发者: hilog –b X; hilog –b <level> -D <domain>; hilog –Q domainoff; hilog –G 2M
更多推荐
所有评论(0)