探究Load Average

翻译http://www.brendangregg.com/ ​ 平均负载是一项行业关键指标,我的公司根据这些指标和其他指标花费了数百万个自动扩展云实例,但在Linux上却存在一些神秘之处。Linux平均负载不仅跟踪可运行的任务,而且还跟踪处于不间断睡眠状态的任务。为什么?我从未见过任何解释。在这篇文章中,我将解决这个奥秘,并总结平均负载作为每个尝试解释平均负载的参考。 ​ Linux平均负载是“系统平均负载”,它显示系统上正在运行的线程(任务)需求为正在运行的平均数量加上等待的线程数量。这可以衡量需求,该需求可能大于系统当前正在处理的需求。大多数工具在1分钟,5分钟和15分钟内显示三个平均值: 正常运行时间 16时48分24秒达4:11,1个用户,加载平均:25.25,23.40,23.46 顶部-16:48:42向上4:12,1个用户,平均负载:25.25、23.14、23.37 $ cat / proc / loadavg 25.72...

4 minute read

分布式事务

分布式事务架构设计原理 分布式事务,因什么背景而产生?必须要分布式事务才能解决吗? (基础问题) 如果没有本地事务,是否存在分布式事务? (基础问题) 分布式背景环境 分布式环境下的微服务模型 聚合模式 链式模式 数据共享模式 代理模式 分支模式 异步消息模式 微服务架构下为什么需要分布式事务,单体下是否需要分布式事务呢? 单体多数据源...

37 minute read

架构思想(不断总结,持续更新)

架构思想 架构真经 Scalability Rules AKF Scale Cube AKF 扩展立方体把单体应用扩展到可扩展架构的方式的过程划分为3个正交维度 x 轴:水平复制 通过复制节点,实现多个节点同时提供服务,从而大大提高系统的总体容量、解决单点问题等。 典型的例子是数据库的主从复制和读写分离。负载均衡 以 mysql...

2 minute read

Linux性能分析

Linux性能 推荐《性能之巅》这本书 CPU CPU利用率:CPU的使用情况。 用户时间(User time) :表示CPU执行用户进程的时间,包括nices时间。通常期望用户空间CPU越高越好。 系统时间(System time) :表示CPU在内核运行时间,包括IRQ和softirq时间。系统CPU占用率高,表明系统某部分存在瓶颈。通常值越低越好。 等待时间(Waiting time) :CPU在等待I/O操作完成所花费的时间。系统不应该花费大量时间来等待I/O操作,否则就说明I/O存在瓶颈。 空闲时间(Idle time)...

3 minute read

ISTIO

ISTIO 它是一个完全开源的服务网格,作为透明的一层接入到现有的分布式应用程序里。它也是一个平台,拥有可以集成任何日志、遥测和策略系统的 API 接口。Istio 多样化的特性使您能够成功且高效地运行分布式微服务架构,并提供保护、连接和监控微服务的统一方法。 架构与原理 流量管理组件 基于IPTABLES IN 15006 OUT 15001 管理端口 15090 提供接口,从controlplane拉取最新配置...

2 minute read

Service Mash

Service Mash 定义 A service mesh, like the open source project Istio, is a way...

4 minute read

K8S基础

K8S,必知必会 Docker 和容器技术:在学习 Kubernetes 之前,你需要了解 Docker 和容器技术。Docker 是一种流行的容器化平台,它允许你将应用程序和服务打包成轻量级的容器。学习 Docker 将帮助你理解 Kubernetes 的基本概念和工作原理。 Linux 基础知识:Kubernetes 运行在...

12 minute read

K8S进阶

K8S 进阶 资源负载,进阶实战 Pod Pause容器 每个Pod里运行着一个特殊的被称之为Pause的容器,其他容器则为业务容器,这些业务容器共享Pause容器的网络栈和Volume挂载卷. 原则上,任何人只需要创建一个父容器就可以配置docker来管理容器组之间的共享问题。这个父容器需要能够准确的知道如何去创建共享运行环境的容器,还能管理这些容器的生命周期。为了实现这个父容器的构想,kubernetes中,用pause容器来作为一个pod中所有容器的父容器。这个pause容器有两个核心的功能: 第一,它提供整个pod的Linux命名空间的基础。 第二,启用PID命名空间,它在每个pod中都作为PID为1进程,并回收僵尸进程。 在ghost容器中同时可以看到pause和nginx容器的进程,并且pause容器的PID是1。而在kubernetes中容器的PID=1的进程即为容器本身的业务进程。 纽带,将所有容器连接起来 最先启动 暂停 为pod内的容器创建共享的网络/存储 只允许...

2 minute read