Golang实战群:日志的处理机制


本文摘自网络,作者,侵删。


日志的处理机制

1 golang日志库可以考虑 tmlog https://github.com/heiyeluren/go-tmlog --黑夜路人@北京

2 老谢,你这个是异步库,一旦log gr 出问题不就坑爹了 可以考虑加上阻塞方式的,效率低点,但是安全 log库不必也没必要追求效率 --于雨@北京

3 行啊,回头再考虑实时写入临时日志 --黑夜路人@北京

4 一般的逻辑处理,瓶颈不可能在log上,务求不丢不乱就行了 --于雨@北京

5 前阵子看过一篇文章,一个老外做的分析,系统性能消耗有不少的部分浪费在同步log上 --郭军@360

6 主要是磁盘io慢啊慢 --黑夜路人@北京

9 确实,我们client的log都出于效率原因从同步实时改成异步分批写入了 --类库@上海-意励

8 log太多了吧,会对io造成压力 --kyle@成都-风际游戏

9 异步的本质都是为了不阻塞当前执行协程 --黑夜路人@北京

10 瓶颈还真有可能在log上 --Xargin@北京-didi

11 可以开启raid卡wb,对比下,如果差异巨大,可能是log导致的 --谭俊青@途牛

12 去年写proxy 日志info级别性能下降蛮多的 还是要少打日志的。业务对性能要求不苛刻就无所谓了 --董泽润@北京-nice

13 不要用文本日志,改成二进制代号 --kingsword@广州-kg

14 采用文本大多是还是为了日志可读,排查问题方便,快吧 --郭军@360

15 有运维朋友原来在微信的,说他们为了解决这个问题,强制要求所有业务都改成代号,解释器啊 --kingsword@广州-kg

16 日志阻塞很严重 --金灶沐@北京-康复中心

17 qq邮箱时期的事情,后来微信也沿用了 异步解决不了io问题,系统io阻塞一样会影响业务线程 --kingsword@广州-kg

18 瓶颈出现在log上是很常见的 鞋日志不能同步写啊 --神仙@上海|杭州-有赞

19 buf啊 批量刷 不行再分桶 批量。。尽量做大不影响flush --金灶沐@北京-康复中心

20 必须有buf --神仙@上海|杭州-有赞

21 buf只能缓冲写 --郭军@360

22 鹅厂日志量大的系统都通过网络发到专门的日志系统 日志量大为啥还要扔给磁盘? --于雨@北京

23 网络io优于磁盘io? --类库@上海-意励

24 我们的系统日志很容易成为瓶颈。所以日志系统有一个逻辑,日志如果太频繁,会折叠成一条 --Tiger张虎@深圳-云巴

25 有个想法是,程序里继续写,做个扫描器在编译的时候把所有日志汇总生成日志解释库,然后代码替换了 --kingsword@广州-kg

26 如果不是不能丢的日志,网络上有udp发 --神仙@上海|杭州-有赞

27 我们现在开了三条通道,http,udp,tcp --Tiger张虎@深圳-云巴

28 强制要求所有业务都改成代号,有点不解,求解释下。 --飞蓬@杭州

29 打成代号,是不是像http的200 404这种? 把错误归类? --于雨@北京

30 udp会不会像我们做多终端消费那样。 打上唯一递增消息。 服务端接受看信息完整不完整,如果完整就继续接受,不完整就回馈消息。 --金灶沐@北京-康复中心

31 可以这么干 这种就是udp上做可靠传输了 --神仙@上海|杭州-有赞

32 Io带来的开销和延迟,在调用密集型影响巨大 最优是异步加udp,同时考虑上层交换延迟和流量,控制pipeline避免丢包 而且大部分日志库都是同步加锁,异步也有队列争用 --毛剑@上海-bilibili

33 360的视频云就是udt udx fast udx好像 --周洋@北京-360

34 非关键日志,udp直接扔 --谭俊青@途牛

35 写磁盘,靠异步这神油不可能解决根本问题 --于雨@北京

36 是啊,异步加个队列只是缓解峰值写造成的堵塞 --神仙@上海|杭州-有赞

37 udp->udp server(开大点的buffer,也可以做负载均衡)->mq->… --谭俊青@途牛

38 udp->udp server->kafka->es --于雨@北京

39 udp扔过去注意下Incast Congestion --毛剑@上海-bilibili

40 不行的,需要udp server 可以极大程度降低丢包率 --谭俊青@途牛

41 upd最大的问题就是buf要开大 否则就丢包。 --金灶沐@北京-康复中心

42 uber那个log库不错,就是写法太别扭 --于雨@北京

43 可以在发送端做winodow size,类似tcp流控 --毛剑@上海-bilibili

44 我这边有用udp server,几乎不丢包,buffer够大 udp packet -> udp server -> nsq -> ... --谭俊青@途牛

45 tcp的华东窗口就是保证数据可靠性。retry --金灶沐@北京-康复中心

阅读剩余部分

相关阅读 >>

了解Go 扁平化项目结构

模块三 Go语言实战与应用-测试的基本规则和流程(上)

聊聊promtail的client

Golang 快餐 - 环境变量

手撸Golang Go与微服务 grpc

asta:是什么终结了我的鸽王生涯?Go 1.13 发布!

Go - 变量声明

now-Go时间百宝箱

Golang语言学习之Go语言变量

教你使用Golang实现redis服务器

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...