自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

peter_cloud的专栏

风轻云淡,笑看人生!

  • 博客(192)
  • 收藏
  • 关注

转载 性能测试:SequoiaDB vs. MongoDB vs. Cassandra vs. HBase

摘要:NoSQL通过弱化一部分关系型数据库特性(如一致性和关系模型)来提升其可扩展性及高可用性,弥补了关系型数据库在很多互联网类应用中的不足。因此,不同的NoSQL有着不同的杀手级应用,这里我们通过基准测试摸索。【编者按】在《先锋》系列的 事务、高性能,王涛谈打造超越MongoDB的NoSQL一文中,我们与王涛浅谈了高性能,拥有事务的SequoiaDB打造经验。应读者需求,从数据上解读

2014-09-25 10:10:32 5169

转载 ctags使用详解

一.        ctags是干什么的ctags的功能:扫描指定的源文件,找出其中所包含的语法元素,并将找到的相关内容记录下来。我用的是Exuberant Ctags,在Windows上使用,就一个可执行文件,非常绿色,可在sourceforge下载。二.        ctags可以识别哪些语言,是如何识别的ctags识别很多语言,可以用如下命令来查看:

2014-09-10 13:02:24 671

转载 vi/vim如何添加或删除多行注释

vi/vim如何添加或删除多行注释|浏览:1042|更新:2014-03-18 15:311234分步阅读在使用vi/vim编辑器对代码或者配置文件编辑的时候,我们经常会需要对多行添加注释或者删除多行的注释。工具/原料vi/vim编辑器

2014-09-06 10:35:35 832

转载 Glusterfs目录ls性能优化方案分析

Glusterfs目录ls性能优化方案分析目的和优化思路讨论了glusterfs对文件系统爬虫rsync/ls目录性能的现有优化措施和可能的进一步优化方案。优化思路是减少本地文件系统的元数据操作,减少fuse client的负载,减少req的网络轮询次数,减少一次网络通信时间,缓存预抓取,并发,异步,bulk 传输fuse readdirpluscentos 6.4最新内核,支持fuse re

2014-08-07 12:43:49 1005

原创 vmware 快照及克隆技术维护自己的虚拟机

目的: 由于开发云存储系统的需要,

2014-06-19 16:06:23 917

转载 Linux内核启动及文件系统加载过程

上接博文《u-boot之u-boot-2009.11启动过程分析》Linux内核启动及文件系统加载过程当u-boot开始执行bootcmd命令,就进入Linux内核启动阶段,与u-boot类似,普通Linux内核的启动过程也可以分为两个阶段,但针对压缩了的内核如uImage就要包括内核自解压过程了。本文以项目中使用的linux-2.6.37版源码为例分三个阶段来描述内核启动全过程。第一

2014-05-25 18:44:26 934

原创 简单理解DAS SAN NAS

对于一个做存储的人DAS, SAN,

2014-05-09 16:52:23 915

原创 OSI七层模型

OSI(Open system Interconnection)模型

2014-05-09 11:28:40 614

原创 谈谈RAID 技术

RAID 技术从开始到现在

2014-05-08 09:44:06 682

原创 glusterfs 与 hdfs对比

glusterfs

2014-05-06 10:26:52 5419

转载 linux查看网卡型号、驱动版本、队列数

分类: LINUX一、如何查看网卡生产厂家和型号? lspci命令  查看基本信息 lspci, 详细信息lspci -vvv  00:00.0 Host bridge: Intel Corporation 5520 I/O Hub to ESI Port (rev 13)00:01.0 PCI bridge: Intel Corporation 5520/

2014-04-18 12:25:26 5129

转载 文件系统性能测试

1、衡量指标 IOPS:随机小I/O读写能力 带宽:  顺序大I/O连续读写能力2、性能关键点 顺序/随机读写(sequential/random) 目录操作:文件创建/删除/查找/更新 大量小文件读写(Lots of small files)    大文件读写(large file)3、其他指标 CPU占用率 IOW

2014-03-27 17:20:04 953

转载 FastDFS分布式文件系统点滴记录6 -- download下载机制剖析

关于下载,其实和上传文件很相似。这里我们暂时先不考虑nginx httpd的方式,只通过client api 方式与FastDFS 交互。首先,我们看fdfs_download_file.c ,这个文件下载文件的客户端例子,直接看71行:    result = storage_download_file_to_file1( \            pTr

2014-03-11 15:50:49 738

转载 FastDFS分布式文件系统点滴记录5 -- upload上传机制剖析3

有了tracker 分析的基础,我们直接进入storage 的任务处理函数 int storage_deal_task(struct fast_task_info *pTask);storage_service.c 6473行:case STORAGE_PROTO_CMD_UPLOAD_FILE:            result = storage_up

2014-03-11 15:48:00 1077

转载 FastDFS分布式文件系统点滴记录5 -- upload上传机制剖析2

首先分析下 tracker , tracker_service.c 3137行:int tracker_deal_task(struct fast_task_info *pTask)对TRACKER_PROTO_CMD_SERVICE_QUERY_STORE_WITHOUT_GROUP_ONE命令的处理是case TRACKER_PROTO_CMD_SERVIC

2014-03-11 15:42:22 790

转载 FastDFS分布式文件系统点滴记录5 -- upload上传机制剖析1

FastDFS 文件上传机制,涉及到cient API、tracker、storage,所以这篇文章的思路是从client 执行upload 的流程说起,逐步深入到 tracker 、storage 的内部。fdfs_upload_file.c 是上传的一个客户端,通过调用api实现上传文件至FastDFS。首先看一下代码内容,fdfs_upload_file.

2014-03-11 15:40:33 1436

转载 FastDFS分布式文件系统点滴记录4 -- tracker 、storage 入口分析

tracker 的入口在 fdfs_trackerd.c, 而 storage 的入口在fdfs_storaged.c.下面首先分析tracker的,我们从main 函数开始。 fdfs_trackerd.c 109 行:    conf_filename = argv[1];    memset(bind_addr, 0, sizeof(b

2014-03-11 15:36:55 910

转载 FastDFS分布式文件系统点滴记录3 -- 网络模型、libevent框架使用

FastDFS v3.0 版本以后,使用到了libevent库来处理网络连接请求。 其实,FastDFS 中 tracker、storage 的网络架构基本一样。下面以tracker 为例子介绍。fdfs_trackerd.c 是 tracker 中main 函数的所在文件。fdfs_trackerd.c  137行:    sock = s

2014-03-11 15:36:07 1407

转载 FastDFS分布式文件系统点滴记录2 -- 架构概述

FastDFS是一个开源的轻量级分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。Fast

2014-03-11 15:26:24 571

转载 FastDFS分布式文件系统点滴记录1 -- 目录

最近一直在研究FastDFS的架构,作为学习成果的一部分,准备利用接下来的一段时间把一些心得点滴记录下来,为FastDFS社区贡献点力量。当然,这里要感谢的是 FastDFS作者fishman,感谢他为我们带来了适合互联网公司的分布式存储解决方案,也希望更多的朋友参与到 FastDFS社区中来。        这篇blog首先作为开篇,准备梳理下思路,对FastDFS的架构剖析列个提纲,大

2014-03-11 15:22:37 724

转载 用gdb调试子进程

缺省gdb是调试主进程的,可是现在采用daemon模式工作的程序那么多,主进程通常很快就结束了,子进程才是真正干活的。怎么跟踪调试子进程呢?在gdb里面执行:set follow-fork-mode child 则gdb就可以调试子进程了。感谢互联网,感谢google。

2014-03-10 16:31:06 533

转载 sync/fsync/fdatasync的简单比较

之前在研究MySQL的一个参数innodb_flush_method时,就涉及到了fsync/fdatasync这些系统调用[system call](什么是系统调用?它与库函数的区别在哪?参见这里)。接下来就简单的分析一下sync/fsync/fdatasync的区别。        sync():int sync( void )这就是它的原型,A call to this functi

2014-01-10 13:40:19 562

转载 利用posix_fadvise清理系统中的文件缓存

利用posix_fadvise清理系统中的文件缓存leoncom c/c++,unix2011-08-03当我们需要对某段读写文件并进行处理的程序进行性能测试时,文件会被系统cache住从而影响I/O的效率,必须清理cache中的对应文件的才能正确的进行性能测试。通常清理内存可以采用下面的这条命令,但这条命令只有root才能使用,另外一方面这个会清理所有的cache,也

2014-01-10 13:29:30 672

转载 RHEL 4 性能优化详述(/proc/sys/kernel/优化)

一、前言本文档针对OOP8生产环境,具体优化策略需要根据实际情况进行调整;本文档将在以下几个方面来阐述如何针对RedHat Enterprise Linux进行性能优化。1)      Linux Proc文件系统,通过对Proc文件系统进行调整,达到性能优化的目的。2)      Linux性能诊断工具,介绍如何使用Linux自带的诊断工具进行性能诊断。加粗斜体表示可以直接运

2013-12-27 15:57:18 951

转载 采用gerrit进行code review实现continuous deployment

在公司的开发过程中,以前代码开发,发布流程如下:=======================公司内部有个svn作为central repository,每个工程师checkout代码,并每天多次checkin(commit)没有分支管理,大家都工作在trunk下,实际上大家在比谁手快,因为后面的人要处理conflict公司内部用php开发了一个发布上线系统:每个人通过该系统发布代

2013-10-09 16:32:28 140

原创 查看linux系统名称

cat /etc/redhat-release

2013-09-24 15:55:35 2432

转载 Linux IO Scheduler--CFQ(下)

前文介绍了CFQ调度器的一些概念和结构之间的关系,这里再结合实际的代码,来分析CFQ的工作流程。CFQ调度器的定义如下:[cpp] view plaincopyprint?static struct elevator_type iosched_cfq = {.ops = { .elevator_merge_fn = cfq_merge, .elevator_merg

2013-09-24 14:57:28 975

转载 Linux I/O Scheduler--CFQ(上)

CFQ,即Completely Fair Queueing绝对公平调度器,力图为竞争块设备使用权的所有进程分配一个等同的时间片,在调度器分配给进程的时间片内,进程可以将其读写请求发送给底层块设备,当进程的时间片消耗完,进程的请求队列将被挂起,等待调度。相对于Noop和Deadline调度器,CFQ要复杂得多,因此可能要分几次才能将其分析完。优先级每个进程都会有一个IO优先级,CFQ调度

2013-09-24 14:55:45 794

转载 Linux I/O Scheduler--Deadline

一、原理 Deadline调度器对一个请求的多方面特性进行权衡来进行调度,以期即能满足块设备扇区的顺寻访问又兼顾到一个请求不会在队列中等待太久导致饿死。试想当应用程序频繁访问文件的一部分而此时如果有另一个远端的请求,那么这个请求将会在很长一段时间内得不到响应,这显然是不合理的。Deadline调度器为了兼顾这两个方面,引入了四个队列,这四个队列可分为两类,每一类都由读和写两种队列组成。一类队列

2013-09-24 14:53:50 803

转载 Linux I/O Scheduler--Noop

每个块设备或者块设备的分区,都对应有自身的请求队列(request_queue),而每个请求队列都可以选择一个I/O调度器来协调所递交的request。I/O调度器的基本目的是将请求按照它们对应在块设备上的扇区号进行排列,以减少磁头的移动,提高效率。在前面讨论递交I/O请求的时候可以发现,每个request_queue都有一个request的队列,队列里的请求将按顺序被响应。实际上,除了这个队列,

2013-09-24 14:52:17 665

转载 linux内核源码阅读之facebook硬盘加速flashcache之八

前面我们的分析中重点关注正常的数据流程,这一小节关注如果有异常,那么流程是怎么走完的呢?1)创建新任务时kcached_job申请不到2)读写命中时cache块为忙3)系统关机时处理,系统开机时处理,系统异常掉电后的处理首先来看第1种情况,申请kcached_job是在函数flashcache_lookup中,[cpp] view plaincopyprint?

2013-09-24 11:21:34 687

转载 linux内核源码阅读之facebook硬盘加速flashcache之七

这一节讲缓存的写回磁盘流程。这里隆重介绍一下两位幕后的英雄:[cpp] view plaincopyprint?1724/* 1725 * Sync all dirty blocks. We pick off dirty blocks, sort them, merge them with1726 * any contigous blocks we can wi

2013-09-24 11:20:35 571

转载 linux内核源码阅读之facebook硬盘加速flashcache之六

其实到目前为止,如果对读流程已经能轻松地看懂了,那么写流程不需要太多脑细胞。我觉得再写下去没有太大的必要了,后面想想为了保持flashcache完整性,还是写出来吧。接着到写流程:[cpp] view plaincopyprint?1530static void1531flashcache_write(struct cache_c *dmc,struct b

2013-09-24 11:18:41 616

转载 linux内核源码阅读之facebook硬盘加速flashcache之五

正常流程到flashcache_map的1623行或1625行,按顺序先看读流程:[cpp] view plaincopyprint?1221static void1222flashcache_read(struct cache_c *dmc,struct bio *bio) 1223{ 1224 int index; 1225 int res; 122

2013-09-24 11:18:22 653

转载 linux内核源码阅读之facebook硬盘加速flashcache之四

这一小节介绍一下flashcache读写入口和读写的基础实现。首先,不管是模块还是程序,必须先找到入口,用户态代码会经常去先看main函数,内核看module_init,同样看IO流时候也要找到入口。flashcache作为一个dm_target,入口就是struct target_type 的map函数,对应的是flashcache_map函数:[cpp] view pl

2013-09-24 11:17:04 592

转载 linux内核源码阅读之facebook硬盘加速flashcache之三

上一节讲到在刷缓存的时候会调用new_kcahed_job创建kcached_job,由此我们也可以看到cache数据块与磁盘数据的对应关系。上一篇:http://blog.csdn.net/liumangxiong/article/details/11726651现在继续从new_kcached_job函数中挖掘有用的信息。那就是cache块跟磁盘上扇区是怎么对应起来的?即329行的为什么要

2013-09-24 11:15:54 629

转载 linux内核源码阅读之facebook硬盘加速flashcache之二

flashcache数据结构都在flashcache.h文件中,但在看数据结构之前,需要先过一遍flashcache是什么,要完成哪些功能?如果是自己设计这样一个系统的话,大概要怎么设计。前面讲过,flashcache主要用途还是在写缓存上,要写入磁盘的IO先写入速度较快的SSD盘,随后再由单独的线程将SSD盘中脏数据块同步到磁盘中。这样看来,SSD就是一个缓存,有缓存的基本特性如命中、脏、水

2013-09-24 11:14:26 730

转载 linux内核源码阅读之facebook硬盘加速利器flashcache之一

从来没有写过源码阅读,这种感觉越来越强烈,虽然劣于文笔,但还是下定决心认真写一回。源代码下载请参见上一篇flashcache之我见 http://blog.csdn.net/liumangxiong/article/details/11643473下面代码对应的是tag下面的1.0版本的。看内核模块源码,闭着眼睛打开flashcache_init函数,区区百来行代码何足惧也。

2013-09-24 11:12:43 856

转载 linux内核源码阅读之facebook硬盘加速利器flashcache之初

这个星期偷着点闲看下flashcache,所谓知其然知其所以然,本着程序员追根抛底的职业素养,看看flashcache究竟是何等的三头六臂。一、flashcache是什么flashcache是一个linux内核模块,主要目的是用SSD加速块设备,相当于用SSD盘作为块设备的缓存。二、flashcache在内核的哪一层位于内核的dm层(device mapper),在块设备之上,在V

2013-09-24 11:10:45 1216

原创 dstat 使用

dstat -tpcndrmlsyig

2013-08-29 00:07:37 644

空空如也

空空如也

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

TA关注的人

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