技术沉淀分享

Thinking will not overcome fear but action will.

一次linux服务器异常重启分析

一次linux服务器异常重启分析

2020年4月10日晚上7点09分左右,运维群反馈大盘视图跌落,并且有机器异常重启。 随即,查看异常重启的机器监控数据,发现包量涨了,从而导致内存占用涨了 按照排查套路,登录机器查看dmesg和/var/log/message,看不出问题来。 那就看下有没有vmcore产生。进入/var/crash发下确实有core文件生成 先看下vmcore-dmesg.txt信息 从v...

一次linux下ps卡住问题分析

一次linux下ps卡住问题分析

2020年4.7号晚上10点左右,有同事反馈有台zk机器出现执行命令卡住的问题,从监控视图看对应实例的负载和总进程数监控图,发现进程总数已经到了1万多个。 我看到群里消息后,立马登录到机器上查看对应指标信息,发现可以执行top,并且基础指标也正常。 然后就执行了一下Ps先看下,可惜卡住了,也就是ps执行不了。 那从/proc下去查看把,从proc看下最远时间的几个PID信息,列出其...

linux内核5.6版本发布之解决2038问题

linux内核5.6版本发布之解决2038问题

1970年是Unix系统诞生年,因此1970年被定义为Unix或类Unix系统的元纪。所有系统都以1970年1月1日 0点0分0秒作为时间的基准点,用秒数来表示系统时间,也即当前系统时间是从基准时间(1970年1月1日 0点0分0秒)走过多少秒之后的时间。 用简单公式来表即:系统时间 = 基准时间 + 秒数 在POSIX标准中,将表示秒数的类型定义为time_t,而它是32位有符号整数类...

说一说对称和非对称加密

说一说对称和非对称加密

加解密早在计算机没出现之前就已经存在了,并且加解密在计算机领域也普遍使用。为什么要有加解密,因为在互联网通信中,明文传输不安全,可能会被坏人利用从而导致问题。 现代计算机系统将加密分为对称加密和非对称加密。 对称加密(Symmetric Cryptography) 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(sec...

深入理解linux load average

深入理解linux load average

不管是运维还是开发,平时在排查问题系统问题时,经常会使用top命令,top会展示系统当前cpu负载、内存使用等基本信息。其中有一个load average指标,分别表示最近1分钟、5分钟和15分钟的cpu平均负载情况。 这个数据是从/proc/loadavg获取的,看下/proc/loadavg里面的内容。 前三列分别表示最近1分钟、5分钟和15分钟的cpu平均负载(top中的l...

k8s网络插件cni工作原理

k8s网络插件cni工作原理

本文从kubelet调用cni插件入手,分析cni插件工作原理 首先进入到kubelet的main入口 Docker运行时NewDockerService 以上主要是CNI获取当前网络环境 接着执行RunDockershim函数 这里可以总结一下 CNI 的第二步就是:kubelet启动时会根据插件名执行对应插件的init函...

linux内核fork剖析

linux内核fork剖析

Linux后台开发的同学应该都使用过多进程或多线程来实现服务的开发,对于使用c/cpp的程序,一般通过fork/pthread_create等方式创建子进程或线程,今天就详细分析fork的具体实现细节。 首先,我们写个简单的例子,通过fork创建子进程,文件名叫p.c吧,代码如下: #include <stdio.h> #include <unistd.h> ...

linux内核hung task机制

linux内核hung task机制

今天说下内核的hung task机制。 有时在/var/log/messages会看到这样的提示: kernel: INFO: task xxx blocked for morethan 120 seconds kernel: “echo 0 >/proc/sys/kernel/hung_task_timeout_secs” disables this message. ker...

OpenStack初探

OpenStack初探

这几天无心研究内核,因此就去看了看OpenStack相关内容,和之前看K8S类似,先从整体架构去看,然后拆分每个组件的去看。毕竟一个大项目短期内不可能吃透,所以先有整体把握,再逐个深入。好了,废话少说,先说下什么是OpenStack。 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。 Ope...

linux内核协议栈之路由选择

linux内核协议栈之路由选择

之前在分析TCP内核协议栈的3次握手过程中涉及到了路由选择,也就是TCP在连接建立过程中会选择下一跳地址,今天就详细阐述下内核是怎么进行路由选择的。 首先,进入到内核代码的tcp_v4_connect函数,这里是client在调用connect时触发的内核部分代码 其中,ip_route_connect是路由选择核心部分。 对于熟悉linux下socket编程的同学都清楚,clie...