摘要: 前言 我们的分库分表中间件在线上运行了两年多,到目前为止还算稳定。在笔者将精力放在处理各种灾难性事件(例如中间件物理机宕机/数据库宕机/网络隔离等突发事件)时。竟然发现还有一些奇怪的corner case。现在就将排查思路写成文章分享出来。 Bug现场 应用拓扑 应用通过中间件连后端多个数据库,sq 阅读全文
posted @ 2020-06-28 12:56 无毁的湖光-Al 阅读(867) 评论(2) 推荐(0) 编辑
摘要: Linux作为一个强大的操作系统,提供了一系列内核参数供我们进行调优。光TCP的调优参数就有50多个。在和线上问题斗智斗勇的过程中,笔者积累了一些在内网环境应该进行调优的参数。在此分享出来,希望对大家有所帮助。 调优清单 好了,在这里先列出调优清单。请记住,这里只是笔者在内网进行TCP内核参数调优的 阅读全文
posted @ 2020-06-22 09:22 无毁的湖光-Al 阅读(5603) 评论(0) 推荐(2) 编辑
摘要: 从linux源码看epoll 前言 在linux的高性能网络编程中,绕不开的就是epoll。和select、poll等系统调用相比,epoll在需要监视大量文件描述符并且其中只有少数活跃的时候,表现出无可比拟的优势。epoll能让内核记住所关注的描述符,并在对应的描述符事件就绪的时候,在epoll的 阅读全文
posted @ 2020-06-19 10:43 无毁的湖光-Al 阅读(919) 评论(0) 推荐(3) 编辑
摘要: 从linux源码看socket(tcp)的timeout 前言 网络编程中超时时间是一个重要但又容易被忽略的问题,对其的设置需要仔细斟酌。在经历了数次物理机宕机之后,笔者详细的考察了在网络编程(tcp)中的各种超时设置,于是就有了本篇博文。本文大部分讨论的是socket设置为block的情况,即se 阅读全文
posted @ 2020-06-10 11:35 无毁的湖光-Al 阅读(3920) 评论(0) 推荐(0) 编辑
摘要: 从linux源码看epoll 前言 在linux的高性能网络编程中,绕不开的就是epoll。和select、poll等系统调用相比,epoll在需要监视大量文件描述符并且其中只有少数活跃的时候,表现出无可比拟的优势。epoll能让内核记住所关注的描述符,并在对应的描述符事件就绪的时候,在epoll的 阅读全文
posted @ 2020-06-08 14:59 无毁的湖光-Al 阅读(1071) 评论(4) 推荐(3) 编辑
摘要: 从linux源码看socket的阻塞和非阻塞 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 大部分高性能网络框架采用的是非阻塞模式。笔者这次就从linux源码的角度来阐述socket阻塞(block)和非阻塞(non_block)的区别。 本文源码均来自 阅读全文
posted @ 2020-06-04 12:42 无毁的湖光-Al 阅读(1655) 评论(3) 推荐(4) 编辑
摘要: 新冠疫情让笔者不禁回忆起10多年前甲流流行的那段过往。也就是那时,在封闭的大学宿舍里,笔者开启了自己的编程之旅。 初学汇编 初涉编程时那个C语言展示hello world的黑框并没有激起笔者的任何兴趣。为什么寥寥几句就可在屏幕上展示输出成为萦绕笔者心头的一个疑问。在全校封闭、无法组团dota、百无聊 阅读全文
posted @ 2020-06-04 12:23 无毁的湖光-Al 阅读(809) 评论(6) 推荐(2) 编辑