Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1898914
  • 博文数量: 211
  • 博客积分: 464
  • 博客等级: 下士
  • 技术积分: 3794
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-24 18:25
个人简介

阿弥陀佛

文章分类

全部博文(211)

文章存档

2020年(2)

2019年(3)

2018年(5)

2017年(6)

2016年(10)

2015年(9)

2014年(73)

2013年(90)

2012年(13)

发布时间:2013-01-13 20:53:21

    zfs是有两个缓冲区的。首先是dmu buffer,如果dmu buffer中没有数据再找arc buffer,如果找到了,那么就直接调用回调函数,将arc buffer的内容传给dmu buffer。如果再找不到就找磁盘。具体的实现细节如下:  dbuf_read 首先会看 dmu buffer的状态,如果是UNCACHED。就会调用 dbuf_read_impl函数。dbuf_read_impl函数会调用dsl_read,进而从arcbuffer中找数据。找的方法是根据db的db_blkptr来查找。 点击(此处)折叠或打开(voi......【阅读全文】

阅读(1598) | 评论(0) | 转发(0)

发布时间:2013-01-11 16:55:22

在对zfs的介绍当中,会提到他会对读写请求排序,然后再合并相邻的请求。这也是可以理解的。通过阅读代码发现,实际上对请求的排序工作都是在avl树当中进行的。 点击(此处)折叠或打开struct vdev_queue {????avl_tree_t????vq_deadline_tree;????avl_tree_t????vq_read_tree;????avl_tree_t??......【阅读全文】

阅读(2163) | 评论(0) | 转发(0)

发布时间:2013-01-11 14:12:28

http://www.makelinux.net/books/lkd2/ch11lev1sec5vmalloc 函数常常和kmalloc作为内核申请内存的主要函数,vmalloc申请的内存是内存的虚拟地址是连续的,而kmalloc申请的内存的物理地址是连续的。而内核大多采用kmalloc,主要的原因是由于kmalloc申请的内存是物理上连续的,效率高,而vmalloc申请的内存虚拟地址连续,但是使用的时候需要经过一个页表转换,有开销,效率低。而且某些硬件设备是不经过内存管理单元的。vmalloc的使用场合是内核模块动态的加载进内核的时候,使用vmalloc,而不是使用kmalloc,或者是需要......【阅读全文】

阅读(2649) | 评论(0) | 转发(0)

发布时间:2013-01-08 19:32:51

   zfs的写性能很差,zfs on linux 上的写性能个人感觉更差。 而且这种差很难修改,原因是由于在linux内核当中,在zfs当中,对于一个4k块大小的块设备,如果你要重写一个2k的块,你可以发现大量的读操作从内核的上层发起。操作如下$dd if=/dev/zero of=/dev/zd0 bs=2k count=10000造成大量的读的原因很简单 由于你要2k,2k的写,而真正的zfs 的块设备块大小为4k,所以他会发起一个读取整个块的操作,从磁盘上读一个4k上来,然后将2k的数据写入这个块上,然后将这个新的4k,封装好bio,以request的形式往底层传递......【阅读全文】

阅读(3928) | 评论(0) | 转发(0)
给主人留下些什么吧!~~

shenyanxxxy2016-01-14 13:19

少林功夫好:楼主能分析一下如何修改源码,然后从内部实现每天生成一个带日期的日志么?

修改源码非一日之功,多阅读开源项目,你说的这个功能用shell + date命令就可以。

回复  |  举报

少林功夫好2016-01-13 15:56

楼主能分析一下如何修改源码,然后从内部实现每天生成一个带日期的日志么?

回复  |  举报

shenyanxxxy2015-05-20 21:25

回复  |  举报
留言热议
请登录后留言。

登录 注册