摘要: 难受,nginx worker进程内存持续飘升! 背景 前两篇文章讲了云主机上lua openresty项目容器化的历程,在测试环境经过一段时间的验证,一切都比较顺利,就在线上开始灰度。 但是,好景不长。灰度没多久,使用top pod查看时,发现内存满了,最开始怀疑k8s的resources lim 阅读全文
posted @ 2021-06-16 09:53 WilburXu 阅读(255) 评论(0) 推荐(1) 编辑
摘要: 原文地址:Lua OpenResty容器化(考古历程) 背景 公司有几个“远古时期”的项目,一直都相对较为稳定,但是项目每天总会在一些时段,请求每分钟QPS到达峰值800K左右,导致机器的性能出现了一些瓶颈,每到峰值时期,总会出现一个告警,实在是令人头疼。更糟糕的是这只是远古时期项目中的其中一个而且 阅读全文
posted @ 2021-04-21 15:00 WilburXu 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 日常的debug 当把一个本地项目部署到远程测试服务器后有可能出现意想不到错误,为了排查问题可能会变成: 这样: 然后这样: 最后就: 最可怕的是,由于堆栈的关系,很难在一次debug日志中拿到想要的信息,往往是一层层往下打日志,才能拿到想要的debug信息。 remote debug 本地服务器开 阅读全文
posted @ 2021-04-21 14:57 WilburXu 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 原文地址:https://github.com/WilburXu/blog/blob/master/kafka/Kafka基本架构和命令.md Kafka体系架构 Broker服务代理节点 服务代理节点。对于Kafka而言,Broker可以简单地看作一个独立的Kafka服务节点或Kafka服务实例。 阅读全文
posted @ 2020-12-30 23:27 WilburXu 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 问题背景 生产环境重要且复杂,许多的操作需要在任何场景都要保证正常运行。 如果我们对线上服务进行更新的步骤如下: kill -9服务 再启动服务 那么将不可避免的出现以下两个问题: 未处理完的请求,被迫中断,数据一致性被破坏 新服务启动期间,请求无法进来,导致一段时间的服务不可用现象 一般有三种方案 阅读全文
posted @ 2020-12-12 23:01 WilburXu 阅读(951) 评论(0) 推荐(0) 编辑
摘要: 如题,本章主要讲下当服务器出现 ERROR 1040: Too many connections错误时的一些处理心得。 max_connections查看 ## 查看最大连接数 SHOW VARIABLES LIKE "max_connections"; + + + | Variable_name 阅读全文
posted @ 2020-12-05 23:22 WilburXu 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 原文地址:MySQL 你好,死锁 前言 在日常的生活中,相信大家曾或多或少有这么一种体验:"每到下班高峰期的时候,原本宽坦的交通干道,一时间变得水泄不通,司机和乘客都烦躁不安,喇叭声响成一片,当车卡在十字路口中间,会很尴尬的发现,此时无论想走哪都…..."。对于这样的体验,大家都是十分的害怕接触和体 阅读全文
posted @ 2020-04-22 12:14 WilburXu 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 我是好人,一个大大的良民。 好与坏,关键在于使用者噢! Scrapy是一个常用的数据采集工具; Selenium是一个浏览器自动化测试工具; 结合Scrapy对数据的处理机制和Selenium模拟真实浏览器去获取数据(如:自动化登录,自动化翻页等)。可以更好的完成采集。 About Scrapy S 阅读全文
posted @ 2020-03-27 14:03 WilburXu 阅读(831) 评论(0) 推荐(0) 编辑
摘要: 高可用对于一个应用和API接口是至关重要的。如果我们提供一个接口,突然面临流量爆发式增长,对于这种情况,不仅会影响网站的访问速度,甚至可能会导致服务器崩溃,使得所有用户都无法正常访问。 对于这种情况,有的同学认为:“我们可以通过提高配置或者增加机器去解决这样的问题”。这在某些情况下,确实是一种选择。 阅读全文
posted @ 2020-03-23 16:00 WilburXu 阅读(825) 评论(0) 推荐(0) 编辑
摘要: Go 逃逸分析 堆和栈 要理解什么是逃逸分析会涉及堆和栈的一些基本知识,如果忘记的同学我们可以简单的回顾一下: 堆(Heap):一般来讲是人为手动进行管理,手动申请、分配、释放。堆适合不可预知大小的内存分配,这也意味着为此付出的代价是分配速度较慢,而且会形成内存碎片。 栈(Stack):由编译器进行 阅读全文
posted @ 2019-07-14 16:23 WilburXu 阅读(2039) 评论(1) 推荐(0) 编辑