草庐IT

Kubernetes 集群中 Ingress 故障的根因诊断

作者:scwang18,主要负责技术架构,在容器云方向颇有研究。前言KubeSphere是青云开源的基于Kubernetes的云原生分布式操作系统,提供了比较炫酷的Kubernetes集群管理界面,我们团队用KubeSphere来作为开发平台。本文记录了一次KubeSphere环境下的网络故障的解决过程。现象开发同学反馈自己搭建的Harbor仓库总是出问题,偶尔会报net/http:TLShandshaketimeout,通过curl的方式访问harbor.xxxx.cn,也会随机频繁挂起。但是ping的反馈一切正常。原因分析接到错误报障后,经过了多轮分析,才最终定位到原因,应该是安装Kube

Kubernetes 集群中 Ingress 故障的根因诊断

作者:scwang18,主要负责技术架构,在容器云方向颇有研究。前言KubeSphere是青云开源的基于Kubernetes的云原生分布式操作系统,提供了比较炫酷的Kubernetes集群管理界面,我们团队用KubeSphere来作为开发平台。本文记录了一次KubeSphere环境下的网络故障的解决过程。现象开发同学反馈自己搭建的Harbor仓库总是出问题,偶尔会报net/http:TLShandshaketimeout,通过curl的方式访问harbor.xxxx.cn,也会随机频繁挂起。但是ping的反馈一切正常。原因分析接到错误报障后,经过了多轮分析,才最终定位到原因,应该是安装Kube

一次k8s docker下.net程序的异常行为dump诊断

背景昨天,一位朋友找到我寻求帮助。他的项目需要调用一个第三方项目的webAPI。这个webAPI本身可从header,querystring中取相关信息,但同事发现他在调用时,无法按期望的那样从querystring中传参数给到第三方webAPI(webAPI仿佛忽略了从querystring过来的信息),朋友不知道是这个webAPI的问题,还是自己调用代码的问题了。。由于这个webAPIservice是他们公司内部的某team的项目,所以朋友虽然可以看到源码,但他并不能快速确定原因,维护项目的人又不好找。通过webAPIservice代码他自己找到了可疑的原因是webAPI中的这个方法有可能

一次k8s docker下.net程序的异常行为dump诊断

背景昨天,一位朋友找到我寻求帮助。他的项目需要调用一个第三方项目的webAPI。这个webAPI本身可从header,querystring中取相关信息,但同事发现他在调用时,无法按期望的那样从querystring中传参数给到第三方webAPI(webAPI仿佛忽略了从querystring过来的信息),朋友不知道是这个webAPI的问题,还是自己调用代码的问题了。。由于这个webAPIservice是他们公司内部的某team的项目,所以朋友虽然可以看到源码,但他并不能快速确定原因,维护项目的人又不好找。通过webAPIservice代码他自己找到了可疑的原因是webAPI中的这个方法有可能

Redis变慢?深入浅出Redis性能诊断系列文章(二)

(本文首发于“数据库架构师”公号,订阅“数据库架构师”公号,一起学习数据库技术)本篇为Redis性能问题诊断系列的第二篇,本文主要从应用发起的典型命令使用上进行讲解,由于Redis为单线程服务架构,对于一些命令如果使用不当会极大的影响Redis的性能表现,这里也会对不合理的使用方式给出优化解决方案。 一、Redis慢日志功能分析Redis访问变慢,其中有个最基础的方法就是先去看Redis是否有慢日志【就像MySQL的慢SQL一样】。Redis提供了一个简单的慢命令统计记录功能,它会记录有哪些命令在执行时耗时较长。Redis慢日志功能由两个核心参数控制:slowlog-log-slower-th

Redis变慢?深入浅出Redis性能诊断系列文章(二)

(本文首发于“数据库架构师”公号,订阅“数据库架构师”公号,一起学习数据库技术)本篇为Redis性能问题诊断系列的第二篇,本文主要从应用发起的典型命令使用上进行讲解,由于Redis为单线程服务架构,对于一些命令如果使用不当会极大的影响Redis的性能表现,这里也会对不合理的使用方式给出优化解决方案。 一、Redis慢日志功能分析Redis访问变慢,其中有个最基础的方法就是先去看Redis是否有慢日志【就像MySQL的慢SQL一样】。Redis提供了一个简单的慢命令统计记录功能,它会记录有哪些命令在执行时耗时较长。Redis慢日志功能由两个核心参数控制:slowlog-log-slower-th

公司某资料子系统定期cpu过高的诊断

背景公司里的某负责保存用户文档的子系统有时会忽然cpu很高,过了大约5分钟后又恢复正常水平。领导协调让我帮看一下(我心里是:不熟悉这个子系统里面的代码,我尽力哈?)其实确实是这样的,如果熟悉出问题的系统的代码,会对诊断问题起到很大的帮助,否则就需要更多的利用对底层的理解了。分析打听后知道了这个子系统用.netcore写的,可以运行在windows和linuxdocker上,且这次的cpu高的问题,他们在windows运行也可复现。于是,我让他们在windows上运行,发现cpu高的时候dump一下。(然后windbg就可以准备下地干活了?)在用windbg看了大部分threadpoolwork

公司某资料子系统定期cpu过高的诊断

背景公司里的某负责保存用户文档的子系统有时会忽然cpu很高,过了大约5分钟后又恢复正常水平。领导协调让我帮看一下(我心里是:不熟悉这个子系统里面的代码,我尽力哈?)其实确实是这样的,如果熟悉出问题的系统的代码,会对诊断问题起到很大的帮助,否则就需要更多的利用对底层的理解了。分析打听后知道了这个子系统用.netcore写的,可以运行在windows和linuxdocker上,且这次的cpu高的问题,他们在windows运行也可复现。于是,我让他们在windows上运行,发现cpu高的时候dump一下。(然后windbg就可以准备下地干活了?)在用windbg看了大部分threadpoolwork

Redis变慢?深入浅出Redis性能诊断系列文章(四)

(本文首发于“数据库架构师”公号,订阅“数据库架构师”公号,一起学习数据库技术,助力职业发展) 本篇为Redis性能问题诊断系列的第四篇,也是最后一篇,主要从应用程序、系统、服务器硬件及网络系统等层面上进行讲解,重点分享了哪些配置需要重点关注和调整优化,才能最大程度的发挥Redis的处理能力; 一、服务器预留足够内存,监控SWAP使用Swap是操作系统层面行为,指当服务器内存不足时,会将原本在内存中的一部分数据拿出放入磁盘,如果再次访问这部分数据就会响应很慢,因为磁盘的访问速度是远远不如内存的。Redis作为内存数据库,有个常识一定要记住:所有的数据默认都是在内存中,不存在一部分在内存一部分在

Redis变慢?深入浅出Redis性能诊断系列文章(四)

(本文首发于“数据库架构师”公号,订阅“数据库架构师”公号,一起学习数据库技术,助力职业发展) 本篇为Redis性能问题诊断系列的第四篇,也是最后一篇,主要从应用程序、系统、服务器硬件及网络系统等层面上进行讲解,重点分享了哪些配置需要重点关注和调整优化,才能最大程度的发挥Redis的处理能力; 一、服务器预留足够内存,监控SWAP使用Swap是操作系统层面行为,指当服务器内存不足时,会将原本在内存中的一部分数据拿出放入磁盘,如果再次访问这部分数据就会响应很慢,因为磁盘的访问速度是远远不如内存的。Redis作为内存数据库,有个常识一定要记住:所有的数据默认都是在内存中,不存在一部分在内存一部分在