0xFE

运维之道 本站总阅读量

置顶 身份认证和HTTPS证书校验

通过例子告诉你https证书的校验过程,原创 HTTPS解决什么问题 HTTPS解决两个问题: 加密传输 保证客户端和服务器之间的信息不是明文传输,保证信息的机密性 身份认证 HTTPS协议能够证明服务端的身份,防止假冒网站冒充自己的身份。 对称加密算法 这一部分需要密码学的基础,本段仅做相关总结。 对称加密因为密钥只有一个,存在密钥被枚举出来的问题,加密安全性不够高......

2020总结

今天3号,元旦假期的最后一天结束。明天迎来2021年的第一个工作日,今晚探亲回家路上,回忆一年来的经历,以简笔记之,供日后回忆。 读书和电影 书籍: 《非暴力沟通》 《苏东坡传》 《性能之巅》 今年预计多花点时间看看书~ 电影和电视剧: 《八佰》 《1917》 《金刚川》 《一秒钟》 《隐秘的角落》 今年的电影和电视剧相对来说比较经典,上面的几部都是比较好看的电视剧~ 购物 主要记下今年购买......

凌晨一小case排查心路历程-CPU相关

现象 有几个cpu.core idle 两分钟从100直接降到0 机器ssh登陆hung死,无法进入机器查看 cpu.load 很高,几乎到200多,cpu才20core,远远超过CPU core num. 故障时现象监控图: 几个core的idle直接降为0 通过查看iowait,时间点能对应,也就是因为iowait被占用100% 查看下机器全局load: 经验分析 出现CP......

值得研读的一些文章集合

持续更新中,本页面仅供参考。 kernel 设计 文章链接 内容简介 推荐原因 Linux I/O 原理和 Zero-copy 技术全面揭秘 Zero-copy的方案介绍 介绍了mmap,sendfile等技术的发展 内存 文章链接 内容简介 推荐原因 Hack The Virtual Memory: C strings & /proc malloc......

[转载]告警的哲学

原文 审核和编写报警规则时,需要考虑以下的这些原则: 报警的(电话,短信)触达应当是紧急的,重要的,可行动的,真实的。 规则应当表示是你的服务处于过程中或者即将发生的问题。 为了保持报警项的精确,有效;宁可过度移除报警噪音。因为过度监控比监控不足更难解决 你应该总是能够将问题分为以下几种:基本功能的可用性问题;延迟;正确性(数据的完整性、新鲜性和持久性);以及特定功能问题。 ......

使用ftrace获取函数调用图

使用ftrace获取函数调用图 1$ trace-cmd list -f #获取可用函数名 记录tcp_v4_connect函数的调用路径: 12$ trace-cmd record -p function_graph -g tcp_v4_connect$ trace-cmd report trace.dat |awk -F "|" '{print $2}' >......

awk使用笔记

awk使用笔记 编者按 本篇为编者阅读博客[笔记] The AWK Programming Language(ADDISON-WESLEY, 1988)做的笔记,跟着博客把awk编程相关的内容进行梳理以及少数地方的勘误,如果有需要请阅读原文。 1.AWK 入门教程(AN AWK TUTORIAL) 1.1 Getting Started Awk 程序一般都很简短,只有一两行。通用格式为: 1......

TCP握手,客户端第三次ack比数据包晚到会发生什么事情?

问题 知乎上看到的一个有意思的问题,TCP握手中,客户端第三次ack比数据包晚到会发生什么事情?下面的回答中看出部分答者对TCP协议理解的不够深入,作者通过packetdrill工具模拟重现这一现象,看看系统中是怎么实现的! 先看结论 结论:只要第三个包的ack序列号正确(即和不带数据的第三次ack序列号相同)的话,可以正常连接 packetdrill复现 下面是使用packetdrill......

内核内存分配的基础分析

内核内存分配的基础分析 通常,内存泄漏会发生在用户态,比如开发者使用malloc()分配一部分空间后,使用完后没有通过free()进行回收,那么就会出现内存泄漏问题,导致内存占用越来越大。 如果内存泄漏发生在内核或者设备驱动中,可能应用开发者排查起来相对陌生,那么怎么分析内存泄漏是否是内核或者设备驱动导致的呢? 本文将会通过简单的实验测试流程为你分析内核中内核泄漏,通过systemstap等......

你对指针理解了吗?

想知道对指针的理解怎样?试着看下这道题吧。这个题是我在学习指针的时候测试的,包括指针运算,指针数组,数组指针等易混淆的概念,如果这题能想出结果的话,基本就过关啦! 123456789int main(){ int a = 0; int b = 1; int *c[2] = {&a, &b}; int *(*pc)[2] =......