系统架构
文章平均质量分 94
fx_bull
这个作者很懒,什么都没留下…
展开
-
并发编程底层
本文从操作系统层面和硬件层面介绍了并发编程需要了解的一些底层内容,知道底层知识对理解并发和写好多线程程序有较大的帮助,做到知其然并知其所以然。 操作系统 任务类型 任务可以划分为I/O消耗性和处理器消耗型: I/O消耗型是指进程大部分时间用来提交I/O请求或者等待I/O请求,这样的进程经常处于可运行状态,但是通常都是运行短短的一会儿,因为他在等待更多的I/O请求时最后会阻塞。 ...原创 2016-04-18 15:38:47 · 80 阅读 · 0 评论 -
test2
原创 2016-05-05 10:23:48 · 87 阅读 · 0 评论 -
test4
原创 2016-05-05 10:23:12 · 77 阅读 · 0 评论 -
test3
原创 2016-05-05 10:22:51 · 119 阅读 · 0 评论 -
netty高性能之道
Netty是一个NIO框架,使用它可以简单快速地开发网络应用程序,以较低成本交付来换取更大的吞吐量和可用性。原创 2016-04-27 15:05:56 · 94 阅读 · 0 评论 -
异步I/O编程
场景:9点上班时,发现9点半有一个需求评审会 场景 理解JAVA NIO之前先了解下Linux IO类型是非常有帮助的。 缓存 I/O 缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中,操作系统会将 I/O 的数据缓存在文件系统的页缓存( page cache )中,也就是说,数据会先被拷贝到操作系统内核的缓...原创 2016-04-21 14:05:08 · 198 阅读 · 0 评论 -
分布式系统基础
所谓分布式系统简单来说就是通过一些手段将计算能力以及存储能力分散到多台服务器上面,随之带来了一些问题涉及数据分布、数据复制、一致性、容错等。 分布式系统面临的第一个问题就是数据分布,即将数据均匀地分布到多个存储节点。另外,为了保证可靠性和可用性,需要将数据复制多个副本,这就带来了多个副本之间的数据一致性问题。 分布式系统中的服务器故障率很高,要求系统能够在软件层面实现自动容错。比如当存储节...原创 2016-04-21 11:55:06 · 214 阅读 · 0 评论 -
java多线程
现在的计算机,cpu在计算的时候,并不总是从内存读取数据,它的数据读取顺序优先级是:寄存器-高速缓存-内存。线程耗费的是CPU,线程计算的时候,原始的数据来自内存,在计算过程中,有些数据可能被频繁读取,这些数据被存储在寄存器和高速缓存中,当线程计算完后,这些缓存的数据在适当的时候应该写回内存。当多个线程同时读写某个内存数据时,就会产生多线程并发问题,涉及到三个特性:原子性,有序性,可见性。 支...原创 2016-04-19 09:54:21 · 150 阅读 · 0 评论 -
mysql索引解析
在mysql中,索引是存储引擎用于快速查找到目标记录的一种数据结构。常见的索引类型包含B树索引、哈希索引、空间索引(R-Tree)、全文索引等。 索引是在存储引擎层实现的,不同的存储引擎对索引的工作方式并不一样。 下面重点介绍B树索引以及innodb和myisam存储引擎。 选择B树的原因 读写磁盘代价最高的环节是寻道,按照顺序访问范围数据是很快的,这有两个原因: 顺序I/O不需要...原创 2016-04-19 09:53:07 · 100 阅读 · 0 评论 -
linux性能监测
一个完整运行的 Linux 系统包括很多子系统(介绍,CPU,Memory,IO,Network,…),监测和评估这些子系统是性能监测的一部分。我们往往需要宏观的看整个系统状态,也需要微观的看每个子系统的运行情况。 系统由若干子系统构成,通常修改一个子系统有可能影响到另外一个子系统,甚至会导致整个系统不稳定、崩溃。所以说优化、监测、测试通常是连在一起的,而且是一个循环而且长期的过程,通常监测...原创 2016-04-18 15:40:39 · 114 阅读 · 0 评论 -
lsm tree@hbase
众所周知传统磁盘I/O是比较耗性能的,优化系统性能往往需要和磁盘I/O打交道,而磁盘I/O产生的时延主要由下面3个因素决定 寻道时间(将磁盘臂移动到适当的柱面上所需要的时间,寻道时移动到相邻柱面移动所需时间1ms,而随机移动所需时间位5~10ms) 旋转时间(等待适当的扇区旋转到磁头下所需要的时间) 实际数据传输时间(低端硬盘的传输速率为5MB/ms,而高速硬盘的速率是10MB/ms)...原创 2016-05-06 15:35:55 · 174 阅读 · 0 评论