
linux文件系统
badman250
专注分享IT知识技能
展开
-
blktrace工具源码
1.1.1 关于blktrace我们知道,在iostat工具中,await表示单个I/O所需的平均时间,但它同时包含了I/O Scheduler所消耗的时间和硬件所消耗的时间,所以不能作为硬件性能的指标,至于iostat的svctm更是一个废弃的指标。而blktrace可以在这种场合就能派上用场,从中可以分析是IO Scheduler慢还是硬件响应慢。Blktrace是一个用户态的工具,用来收集磁...原创 2018-04-13 23:55:17 · 1630 阅读 · 0 评论 -
linux文件系统系统调用实测的一个方法
通过几个C代码来检测一下文件系统相关系统调用时间,以及和标准I/O库函数的性能差异。主要以read和fread函数为例。1.1.1 read系统调用开销我们来模拟一下read系统调用的开销情况,代码如下:#include <unistd.h>#include <sys/stat.h>#include <fcntl.h>#include <stdlib.h&...原创 2018-04-23 23:03:38 · 632 阅读 · 0 评论 -
Linux磁盘高速缓存
磁盘高速缓存是一种软件机制,允许系统把通常存放的磁盘上的一些数据保留在RAM中。例如,目录项高速缓存(dentry cache),加速从文件路径名到最后一个路径分量的索引节点转换过程。Linux还有其他磁盘高速缓存,如页高速缓存、缓冲区高速缓存。这里需要注意缓存和缓冲的差异,缓冲是buffer,缓存是cache。2.4之前的内核中有两种缓存,一种是vfs的页高速缓存,另外一种是缓冲区高速缓存,缓冲...原创 2018-05-02 09:56:56 · 1365 阅读 · 0 评论 -
Linux块设备开发详解及代码(版本3.10.0)
不同于字设备,高效的块驱动对于性能至关重要,它是核心内存和二级存储之间的管道,所以块层的设计必定围绕性能。 找源码的,请直接往下翻(在3.10.0版本可编译使用)。1. 注册编号大部分块驱动采取的第一步是注册它们自己到内核. 这个任务的函数是 register_blkdev(在 <block/genhd. h> 中定义):int register_blkdev(unsigned ...原创 2018-05-03 11:34:06 · 1675 阅读 · 0 评论 -
Linux I/O Call Stack即 Linux I/O调用堆栈图
原创 2018-06-11 11:50:11 · 946 阅读 · 0 评论 -
Linux虚拟文件系统剖析: 文件打开、读、写逻辑
Linux虚拟文件系统剖析:文件打开、读、写逻辑perftrace@gmail.com Linux文件系统剖析:文件打开操作本文主要通过分析linux系统中的文件打开逻辑,来掌握linux虚拟文件系统相关的数据结构、函数等知识点,将之前的各个点的知识串联成一个整体。系统中给所有文件系统不但依赖VFS,而且...转载 2018-07-24 11:34:59 · 2746 阅读 · 0 评论 -
Linux文件系统剖析:文件打开逻辑
Linux文件系统剖析:文件打开逻辑perftrace@gmail.com本文主要通过分析linux系统中的文件打开逻辑,来掌握linux虚拟文件系统相关的数据结构、函数等知识点,将之前的各个点的知识串联成一个整体。文件系统简介系统中给所有文件系统不但依赖VFS,而且依靠VFS系统协同工作。使用VFS可以利用标准的Unix系统调用对不同的文件系统,甚至不同介质上的文件系统进行读写操作...原创 2018-07-22 19:51:45 · 894 阅读 · 0 评论