阿罗

天高任鸟飞,海阔凭鱼跃

排序:
默认
按更新时间
按访问量

Zookeeper C Client分析

每个zookeeper API必须有一个zhandle。当初始化一个zhandle时(zookeeper_init)首先初始化zhandle的相应字段然后创建两个线程:do_io,do_completion;并且等待这两个线程初始化完成后才返回,这两个线程也要等待彼此初始化完成后,才提供服务(no...

2013-06-28 17:56:27

阅读数:9571

评论数:0

innodb学习(一)——innodb如何使用aio

Innodb从5.5开始使用linux的Native AIO(后面简称N-AIO),告别之前仿真的方式。我们下面从5.6.10的源码分析Innodb的Native AIO使用架构。        Innodb有N个io handler threads(N=1个ibuf_io_thread + 1...

2013-03-07 17:23:29

阅读数:5219

评论数:1

innodb事务隔离级别

事务隔离级别 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 Read Uncommitted(读取未提交内容)       在该隔离级别,所有事务都可以看到其他未提交事务的执...

2013-02-28 20:15:08

阅读数:7167

评论数:0

linux调度器(十)——调度器/proc信息解读

注下面的时间或时刻都是从rq->clock中获得的,而这个值是由update_rq_clock底层cpu来更新的。并且很多信息是需要内核配置CONFIG_SCHEDSTATS才有。 /proc//sched $cat /proc/28733/sched     cpu...

2013-02-06 20:46:16

阅读数:13805

评论数:0

linux调度器(九)——调度器的配置参数

调度器的配置参数 /proc/sys/kernel/sched_min_granularity_ns(4000000ns):sysctl_sched_min_granularity,表示进程最少运行时间,防止频繁的切换,对于交互系统(如桌面),该值可以设置得较小,这样可以保证交互得到更快的响应(...

2013-02-06 20:44:45

阅读数:11380

评论数:0

linux调度器(八)——实时调度与SMP

实时调度器类 实时调度类有两类进程: 循环进程SCHED_RR:循环进程有时间片,随着进程的运行时间会减少。当时间片用完时又将其置为初值,并将进程置于队列末尾。 先进先出SCHED_FIFO:没有时间片调度,运行后可执行任意长时间直到自己放弃CPU。 实际上两类进程在相同优先级队列上都是先...

2013-02-06 20:42:45

阅读数:6646

评论数:0

linux调度器(七)——other cfs class api and functions

OTHER CFS CLASS API set_curr_task_fair(rq):将cpu运行队列里的当前运行进程设置为cfs运行队列里当前运行的进程(set_curr_task_fair),对于组调度则必须把它上级的se也设置为相应cfs_rq的当前运行进程。该接口主要用于修改某个进程的调...

2013-02-06 20:41:37

阅读数:4633

评论数:0

linux调度器(六)——应用层理解CFS及组调度

上面我们介绍了CFS及组调度相关的主要内容,但可能很多人还跟我一样有点云里雾里的,下面我们直接从应用层面上也查看CFS及组调度的效果。首先对于非组调度,决定它们运行时间的唯一因素就是weight,也就是我们知道的nice,我们可以通过renice来重新调整进程的优先级,然后再使用taskset将它...

2013-02-06 20:38:57

阅读数:7547

评论数:0

linux调度器(五)——进程管理与CFS

进程调度初始化          由于该过程涉及到进程的管理模块,这个模块的详细过程我们将在以后的机会介绍,所以这里,我们主要扣出与调度相关的内容。进程的创建内核入口为do_fork,首先我们简单的看一下它的主要行为: 图 do_fork与CFS的交互          上图我们只是...

2013-02-06 20:36:24

阅读数:5766

评论数:0

linux调度器(四)——主调度器与CFS

当内核从系统调用返回,或者从中断处理程序返回,内核都会检查当前进程是否设置了TIF_NEED_RESCHED标志;或者进程主动放弃CPU时(sched_yield,sleep或者收到SIGSTOP,SIGTTOP信号)都会进入主调度器。同样的我们先看一下主调度的框架部分,该部分就是sched.c:...

2013-02-06 20:33:44

阅读数:5629

评论数:1

linux调度器(三)——周期性调度器与CFS

注:这里并没有详细分析到每个内部函数,如果要了解这些细节的话,可以看后面的OTHER CFS CLASS API及CFS主要的内部函数。     周期性调度器在调度框架上由scheduler_tick完成:在每一个cpu的时钟周期都触发一次该函数调用,它更新运行队列的时钟及load,然后调用当前...

2013-02-06 20:29:54

阅读数:6126

评论数:0

linux调度器(二)——CFS模型

本系列文章阅读的core是:2.6.32-220 这里使用“模型”而不是“算法”是因为这东西实在不好用算法描述(但是它却运行得很好,包括性能)。          核心思想: 把CPU总时间按运行队列的所有se的权重分配给每个se。每个se使用cpu的顺序由它们已使用的cpu虚拟时间(vrun...

2013-02-06 20:23:30

阅读数:6657

评论数:0

linux调度器(一)——概述

本次分析的kernel代码为2.6.32-220。并且我们先不考虑SMP。当前linux的调度程序由两个调度器组成:主调度器,周期性调度器(两者又统称为核心调度器);并且每个调度器包括两个内容:调度框架(其实质就是两个函数框架)及调度器类。调度器类是实现了不同调度策略的实例,如 CFS、RT cl...

2013-02-06 14:08:06

阅读数:14105

评论数:0

cgroup学习(八)——CPUSET子系统

对于CPUSET子系统我们主要解释对cpuset.cpus的操作。Read操作根据《cgroup学习(三)——伪文件》可以很容易的跟踪到代码,并解读,所以我们这里就不赘述,直接解释write及attach操作。首先我们看一下write操作的bt(使用systemtap见《使用systemtap获得...

2013-01-09 18:23:57

阅读数:6287

评论数:0

cgroup学习(七)——cpu子系统

CPU子系统         对于CPU子系统最常见的参数就是cpu.shares,我们来通过《cgroup学习(三)——伪文件》的表格来跟踪一下对该参数的读写操作。         通过systemtap我们可以看到读的bt:(cat cpu.shares) 2327 (cat) cpu_...

2013-01-06 21:01:48

阅读数:6176

评论数:0

cgroup学习(六)——attach task

attach task         该过程对应于我们上面的实例操作的:echo 512 > tasks的过程,其实质就是先对cgroup下tasks文件进行写操作,建立该进程新的css_set与所有管理它的cgroup的关系;然后再根据各个子系统自己的attach函数进行attach操...

2013-01-06 20:46:45

阅读数:5269

评论数:0

cgroup学习(五)—— create new cgroup

create new cgroup         该过程就是mkdir/cgroup/cpu/test_cpu:在一个/cgroup/cpu hierarchy上创建一个cgroup,下面的bt是创建一个cpu hierarchy下的cgroup: mkdir /cgroup/cpu/t...

2013-01-06 20:38:17

阅读数:4265

评论数:0

cgroup学习(四)——mount hierarchy

mount hierarchy         该过程对应于mount -t cgroup -o cpu,cpuset cpuandset /cgroup          首先它解析mount参数-o ***:parse_cgroupfs_option,创建一个新的cgroupfs_root...

2013-01-06 20:24:36

阅读数:5932

评论数:1

cgroup学习(三)——伪文件

伪文件         cgroup是通过VFS与上层进行交互的,它定义了自己的cgroup文件系统,同时也定义了哪些文件,这些文件也是最终影响着cgroup行为,这一节我们介绍一下,每个子系统的伪文件定义在哪里?以及内核如何去操作这些伪文件。下面我们通过一张表来展示这些关系: ...

2013-01-06 20:13:59

阅读数:5350

评论数:0

cgroup学习(二)——cgroup框架结构

cgroup框架结构 这一章里,我们先整体介绍一个cgroup的框架结构,以及cgroup文件系统的相应文件定义。这里我们先看一下cgroup的主要结构关系:   图2 主要数据结构关系 该图包含了cgroup的所有主要数据结构及它们的关系。其中cgroupfs_root相当于我们mo...

2013-01-06 19:48:33

阅读数:8462

评论数:1

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