自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chenglinhust的专栏

分布式系统 基础架构 中间件系统 安全领域 容器技术 人工智能

  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

转载 OOM原理分析

OOM原理分析 OOM全称是Out Of Memory,指的是kernel因分配不出内存而报的错误,同时会触发kernel调用OOM killer杀进程来解除这种状况。 OOM发生的条件一般有两个: 1. VM里面分配不出更多的page(注意linux kernel是延迟分配page策略,及用到的时候才alloc;所以malloc + memset才有效)。 2. 用户地址

2015-10-30 14:07:19 2227

转载 大型网站系统架构演化之路

大型网站系统架构演化之路 前言 一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,

2015-10-30 11:28:26 529

转载 浅析SkipList跳跃表原理及代码

浅析SkipList跳跃表原理及代码 SkipList在leveldb以及lucence中都广为使用,是比较高效的数据结构。由于它的代码以及原理实现的简单性,更为人们所接受。我们首先看看SkipList的定义,为什么叫跳跃表? “     Skip lists  are data structures  that use probabilistic  balancing

2015-10-29 00:42:13 1190 1

原创 LevelDB整体架构分析

LevelDB整体架构分析 1.   整体架构 2.   简要分析             具体参见:http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html

2015-10-25 15:09:24 1817

原创 LSM树设计思想以及存储模型

                                                                               LSM树设计思想以及存储模型   一. LSM树的设计思想     1. 哈希存储系统         哈希表的持久化实现,支持增、删、改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-val...

2015-10-25 12:42:10 3438

原创 linux oprofile解析

linux oprofile解析       oprofile利用cpu硬件层面提供的性能计数器(performance counter),通过计数采样,帮助我们从进程、函数、代码层面找出占用cpu的"罪魁祸首"。下面我们通过实例,了解oprofile的具体使用方法。   常用命令 使用oprofile进行cpu使用情况检测,需要经过初始化、启动检测、导出检测数据、查看检测结果

2015-10-23 22:49:20 750

原创 让机器所有的cpu核打满

让机器所有的cpu核打满        下面的程序可以将一个机器所有的cpu核打满:        #include #include #include #define __USE_GNU #include #include #include #include void thread_func(int n) { cpu_set_t mask; CPU_Z

2015-10-19 20:40:59 2805

原创 条件变量之倒计时(CountDownLatch)

条件变量之倒计时(CountDownLatch)      倒计时是一种常用且易用的同步手段,其用途是:      主线程发起多个多个子线程,等这些子线程各自都完成一定的任务之后,主线程才继续执行。通常用于主线程等待子线程完成初始化。      主线程发起多个子线程,子线程都等待主线程,主线程完成其他一些任务之后通知所有子线程开始执行。通常用于多个子线程等待主线程发出“起跑”命令。

2015-10-18 18:39:04 850

原创 Linux IO协议栈框图

Linux IO协议栈框图 来源 http://www.thomas-krenn.com/en/oss/linux-io-stack-diagram/linux-io-stack-diagram_v0.1.pdf

2015-10-17 23:37:27 3389

转载 blktrace 深度了解linux系统的IO运作

blktrace 深度了解linux系统的IO运作       我们在Linux上总是要保存数据的,数据要么保存在文件系统里(如ext3),要么就在裸设备里面。我们在使用这些数据的时候都是通过文件这个抽象来访问的,操作系统会把我们需要的数据给我们,我们通常无需和块设备打交道。       从下图我们可以很清楚的看到:                   

2015-10-17 22:54:11 1053

转载 频繁分配释放内存导致的性能问题的分析

频繁分配释放内存导致的性能问题的分析 现象 1 压力测试过程中,发现被测对象性能不够理想,具体表现为: 进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约70 2 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒增量大于10000。 初步分析 majflt代表ma

2015-10-17 00:20:25 1318

原创 ptmalloc分析之基础二

ptmalloc分析之基础二       内存管理器为什么难写?在设计内存管理算法时,要考虑什么因素?管理内存这是内存管理器的功能需求。正如设计其它软件一样,质量需求一样占有重要的地位。分析内存管理算法之前,我们先看看对内存管理算法的质量需求有哪些:       1. 最大化兼容性       要实现内存管理器时,先要定义出分配器的接口函数。接口函数没有必要标新立异,而是要遵循现有标

2015-10-16 00:35:54 829

原创 ptmalloc分析之基础一

ptmalloc分析之一 一. 内存布局      下面给出32位模式下进程默认内存布局:         从上图可以看到,栈至顶向下扩展,并且栈是有界的。堆至底向上扩展,mmap 映射区域至顶向下扩展,mmap 映射区域和堆相对扩展,直至耗尽虚拟地址空间中的剩余区域,这种结构便于 C 运行时库使用 mmap 映射区域和堆进行内存分配。上图的布局形式是在内核2.6.

2015-10-16 00:19:38 694

原创 libev ev_io源码分析

libev ev_io源码分析 1. ev_watcher和ev_loop ev_watcher: libev中所有事件的基础类型ev_watcher,所有的事件都可以通过(W)watcher转换成ev_watcher,大写的W在libev定义的是ev_watcher *。抽象出ev_watcher作用是所有的watcher都可以共用ev_start、ev_stop函

2015-10-14 22:42:38 1682

原创 Libev源码分析—常用watcher

Libev源码分析—常用watcher 在上一篇文章里,我们分析了libev整体设计思想和主循环的工作原理,也提到了watcher是衔接开发者代码的主要入口。watcher与开发者最接近,也与具体事件处理逻辑最接近。所以,watcher的具体实现,与性能的关系也相当密切。下面,我们就来分析一下,libev中常用的几种watcher的设计与实现。 ev_io ev_io

2015-10-14 22:07:07 1509

原创 如何将GDB中需要的调试信息输出到文件

如何将GDB中需要的调试信息输出到文件 # (gdb) set logging file # (gdb) set logging on # (gdb) thread apply all bt # (gdb) set logging off # (gdb) quit 详细说明: 1、# (gdb) set logging file 设置输出的文件名称

2015-10-08 21:10:05 4783

原创 深刻认识CGI

深刻认识CGI 1.  cgi是什么             最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html。事物总是不断发展,网站也越来越复杂,所以出现动态技术。但是服务器并不能直接运行 php,asp这样的文件,自己不能做,外包给别人吧,但是要与第三做个约定,我给你什么,然后你给我什么,就是握把请求参数发送给

2015-10-08 16:20:10 2017

走向分布式基础学习

是学习分布式的好资料,里面的内容讲解的非常详细,是一个台湾人下载的

2015-03-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除