Elivs Blog

ENNERVATE

Go-proformance-tool

Go性能分析工具

Go常用的性能分析工具: ​ pprof: On-Cpu Profile Memory GoRoutine ​ fgprof: On-Cpu/Off-Cpu ​ trace: For trace RunTime bugs ​ perf: when no pprof pprof 支持什么使用模式 Report generation:报告生成 Inte...

Golang-Routine

G-P-M

Goroutine基础知识: 并发: 逻辑上具有处理多个同时性任务的能力。 并行: 物理上同一时刻执行多个并发任务。 通常所说的并发编程,也就是说它允许多个任务同时执行,但实际上并不一定在同一时刻被执行。在单核处理器上,通过多线程共享CPU时间片串行执行(并发非并行)。而并行则依赖于多核处理器等物理资源,让多个任务可以实现并行执行(并发且并行)。 多线程或多进程是并行的基本条件,但...

Go并发哲学:不要通过共享内存进行通信; 相反,通过沟通分享记忆。

channel

channel的作用 众所周知,Go依赖于称为CSP(Communicating Sequential Processes)的并发模型,通过Channel实现这种同步模式。 Go并发的核心哲学是不要通过共享内存进行通信; 相反,通过沟通分享记忆。 DO NOT COMMUNICATE BY SHARING MEMORY; INSTEAD, SHARE MEMORY BY COMM...

Linux存储基础知识 CPU寄存器 L1(CPU-Cache) L2(CPU-Cache) L3(CPU-Cache) 物理内存 硬盘等辅助存储设备 鼠标等外接设备 虚拟内存 虚拟内存是对于进程来说的,屏蔽了底层的RAM和硬盘,提供了进程的运转的可靠保证。我们来看一下虚拟内存的分层设计。 上图展...

Prometheus-Install

主流开源监控框架应用

Prometheus Install 引言 Prometheus 是一个开源的监控解决方案,是一套开源的系统监控和报警框架,它能够提供监控指标数据的采集、存储、查询以及监控告警等功能。作为云原生基金会(CNCF)的毕业项目,Prometheus 已经在云原生领域得到了大范围的应用,并逐渐成为了业界最流行的监控解决方案之一。 安装部署Prometheus Linux安装Promethe...

Prometheus-Apply

主流开源监控框架应用

Prometheus Apply 1. Prometheus Metrics 有四种基本的 type: Counter: 只增不减的单变量 Gauge:可增可减的单变量 Histogram:多桶统计的多变量 Summary:聚合统计的多变量 此外,Prometheus Metrics 中有一种将样本数据以标签(Label)为维度作切分的数据类型,称为向量(Vecto...

MongoDB-Tiger-Flow

Mongo


MongoDB-Server-Migration

Mongo

Mongo服务器迁移,单机To副本集,不停机 # 背景: 线上多个应用运用同一个数据库,数据库采用主从架构,因为历史原因,使用了普通硬盘,并且线上A应用最近用户急增,读写总量曾高达150万qps,所以急需做横向扩容,并且写入更新量较高,所以采用双主方案。导致IO持续100%,所以数据库不能停机迁移数据。 # 方案: 用mongoShake做线上服务器数据动态迁移,三台SSD搭建副...

Golang-Map-Analysis

golang

map基础结构 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 // A header for a Go map. type hmap struct { buckets unsafe.Pointer // array of 2^B Buckets. may be nil if count==0. oldbuck...

MongoDB-University-Elvis-请求处理流程

mongo

mongodb处理客户端请求的模型 Mongod在启动时会调用createServer创建一个PortMessageServer对象,其继承MessageServer和Listener两个类,并依赖MyMessageHandler来处理请求。 PortMessageServer 那PortMessageServer主要完成了什么功能? 主要为以下三点: 为mongod配置...