2017年6月19日
摘要: 目前得分布式系统中,对于资源管理都采用动态资源划分来取代静态资源划分。它有如下好处: 1. 集群资源利用率高 2. 增加数据共享能力,可以多种计算框架公用一份分布式存储数据。 资源管理抽象模型 概念模型 常见得资源主要是CPU,内存,网络资源,磁盘IO。主要概念模型有3类:资源组织模型,调度策略,任 阅读全文
posted @ 2017-06-19 15:54 bitError 阅读(3954) 评论(0) 推荐(2) 编辑
摘要: 目标文件 Linux系统的目标文件格式都遵循ELF格式,目标文件一共分为四类 ELF文件类型 | 文件类型 | 可重定位文件 | Linux的.o 可执行文件 | a.out 共享目标文件 | Linux的 .so 核心转储文件 | coredump文件 目标文件有什么 目标文件主要分为两个部分:代 阅读全文
posted @ 2017-06-19 15:41 bitError 阅读(596) 评论(0) 推荐(0) 编辑
  2017年5月27日
摘要: 简介 PostgreSQL查询优化器执行过程 1. 语法分析:生成查询树 2. 语义检查:对SQL表达的语义进行检查 3. 查询优化 1. 视图重写 2. 逻辑优化:子查询优化,条件化简,等价谓词重写,连接消除,得到逻辑计划 3. 物理优化:基于代价优化,得到物理计划。PostgreSQL主要采用动 阅读全文
posted @ 2017-05-27 15:57 bitError 阅读(4425) 评论(0) 推荐(0) 编辑
摘要: 其实对于一个标准的STL 容器,当vector vec 的真实语句应该是 vetor vec,allocator是一个标准的配置器,其作用就是为各个容器管理内存。这里需要注意的是在SGI STL中,有两个配置器:allocator(标准的)和alloc(默认的配置器) 注意:alloc(带poll) 阅读全文
posted @ 2017-05-27 15:54 bitError 阅读(451) 评论(0) 推荐(0) 编辑
摘要: jemalloc支持SMP系统和并发多线程,多线程的支持是依赖于多个‘arenas’,并且一个线程第一次调用内存mallocer,与其相关联的是一个特殊的arena。 线程分配arena只有三种可能的算法: 1. TLS启用的情况下就是线程ID的哈希值 2. TLS不可用并定义MALLOC_BALA 阅读全文
posted @ 2017-05-27 15:54 bitError 阅读(1019) 评论(0) 推荐(0) 编辑
摘要: 内存管理的一般方法 1. C 风格的内存管理程序主要实现 malloc()和 free()函数。 2. 内存池是一种半内存管理方法。Apache 使用了池式内存(pooled memory),将其连接拆分为各个阶段,每个阶段都有自己 的内存池。在结束每个阶段时,会一次释放所有内存。 3. 引用计数 阅读全文
posted @ 2017-05-27 15:53 bitError 阅读(3856) 评论(0) 推荐(0) 编辑
摘要: 逻辑优化 逻辑查询优化主要工作是:找到SQL语句的等价变换方式,使SQL执行更高效。关系代数等价变换对查询优化是有指导意义的 查询重写规则 传统的OLTP使用选择(From),投影(select, project),连接操作(join)相结合,成为SPJ查询 1. 选择操作 通过选择操作下推,目的是 阅读全文
posted @ 2017-05-27 15:52 bitError 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 交换空间 交换技术就是将一页内存复制到预先设定的硬盘上的交换空间,来释放该页占用内存。物理内存和交换空间的和就是可提供的虚拟内存的总量。Linux有两种形式的交换方式,分别是交换分区,交换文件。 优点:可以把空闲的内存页写入磁盘,把空出的内存给进程使用。 缺点:交换发生越多,速度越慢。 交换空间的大 阅读全文
posted @ 2017-05-27 15:50 bitError 阅读(1391) 评论(0) 推荐(0) 编辑
  2017年5月26日
摘要: 内存寻址 内存地址 当使用80x86处理器时,必须区分三个地址 1. 逻辑地址:每个逻辑地址包括一个段和偏移,偏移指从段起始地址到实际地址的偏移。 2. 线性地址:一个32位无符号整数,可以用来表示高达4GB的地址,通常用十六进制表示,范围从0x00000000到0xffffffff 3. 物理地址 阅读全文
posted @ 2017-05-26 18:15 bitError 阅读(384) 评论(0) 推荐(0) 编辑
摘要: Linux文件系统分为多层,从上到下分别为用户层、VFS层、文件系统层、缓存层、块设备层、磁盘驱动层、磁盘物理层 1. 用户层:最上面用户层就是我们日常使用的各种程序,需要的接口主要是文件的创建、删除、打开、关闭、写、读等。 2. VFS层:我们知道Linux分为用户态和内核态,用户态请求硬件资源需 阅读全文
posted @ 2017-05-26 18:14 bitError 阅读(4442) 评论(0) 推荐(0) 编辑