自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 vmtouch工具--查看文件是否缓存命中

前言 本文为原创,可能会存在一些知识点或理解上的问题,欢迎切磋和交流 ^_^1. vmtouch工具介绍因为在分析文件系统页缓存和块缓存区别时,发现有这么一个命令工具,觉得很小巧,就总结一下,应用不深。man手册里描述vmtouch工具用于轻便灵活的文件系统缓存的诊断和控制,其实我的理解,它就是一个检查文件系统文件的数据是否缓存命中的小巧神器。2. 获取vmtouch工具...

2020-01-12 12:34:02 1733

原创 radix-tree算法浅析--从不懂到装懂

前言 本文为原创,可能会存在一些知识点或理解上的问题,欢迎切磋和交流 ^_^1. 为什么要研究radix-tree算法?(脑残吗)存储的核心就是I/O流,不懂I/O流就不要说自己会存储;而最近一直研究和分析文件系统I/O流,说到I/O瓶颈和提升性能,缓存读写显然是重中之重。在分析ceph文件系统写I/O流程中,比如调用ceph_write_iter接口,如果过缓存,必调用generi...

2020-01-11 15:01:27 3869 4

原创 一个cifs获取文件属性导致getattr请求数变多【网上问题】的定位过程

前言 本文为原创,可能会存在一些知识点或理解上的问题,欢迎切磋和交流 ^_^特此说明:以下内容是我在攻关定位某局点问题时的一些思路,不涉及实际具体业务、实际具体问题、实际具体代码流程,仅仅是个人的一点心得和总结。1、问题背景这周客户现场设备升级版本后,客户cifs访问共享目录出了一个性能问题,通过cifs访问NAS共享目录时,mds日志getattr请求数剧增,导致mds出现...

2020-01-05 10:56:04 358

原创 linux IO存储堆栈图

这张图描述的是linux 用户态到内核态的存储堆栈,即IO栈,可以帮助理解存储IO栈流程。该图来源于以下官网图片(非本文作者原创)地址:https://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram...

2020-01-01 10:13:28 607

原创 umount不掉问题解决方案和思路

前言 本文为原创,可能会存在一些知识点或理解上的问题,欢迎切磋和交流 ^_^前面写过一篇文章,是定位某种业务场景下,因为umount命令失败导致业务中断的问题。如果是极其少的情况下,出现这种内核问题,很有可能是自己代码出的问题,比如操作未释放文件系统引用计数。但是占用文件系统上层服务太多,场景复杂,情况太多,不太可能穷举。针对这种情况,该如何完全解决。这就要考虑两种解决问题的思路:解...

2019-12-15 11:12:23 863

原创 ceph文件系统内核客户端和用户态客户端IO框架

前言 本文为原创,可能会存在一些知识点或理解上的问题,欢迎切磋和交流 ^_^ceph文件系统内核客户端和用户态客户端IO框架

2019-12-15 10:15:53 497

翻译 Radix-tree算法--函数API翻译

前言 本文为原创,可能会存在一些知识点或理解上的问题,欢迎切磋和交流 ^_^原英文链接:https://lwn.net/Articles/175432/内核包含了很多库例程,用于实现一些有用的数据结构。其中就有两种类型的树结构:radix-tree和rb-tree。本文主要是介绍一下radix-tree树API接口。维基百科上有一篇关于radix-tree树的文章,但是那篇文章并...

2019-12-12 22:08:46 603

原创 字典树浅析

前言 本文为原创,可能会存在一些知识点或理解上的问题,欢迎切磋和交流 ^_^1. 字典树原理有关字典树原理分析和介绍,网上铺天盖地的一大堆,这里不再赘述,仅说说自己对字典树应用场景和原理的理解。比如电子词典,可以用来查单词,几千个单词,长度不同,如何设计一个数据结构,来存放并且查找这些单词,来使得时间复杂度和空间复杂度为最低呢?以前在学校时,写过一个小项目,实现的功能就是电子词典,输...

2019-12-10 00:28:11 269

原创 内核热探测工具--kprobe

前言 本文为原创,可能会存在一些知识点或理解上的问题,欢迎切磋和交流 ^_^1. 为什么要用kprobe调试工具定位和复现内核挂死问题,如果要分析内核vfs层代码,需要在函数接口中添加一些调试日志,如果只是单纯的使用printk、pr_info或dout这些打印函数来打印相关参数值,需要重编内核,从时间成本、定位根因上考虑,该方法不利于快速定位问题。Kprobe作为一种内核热补丁...

2019-11-01 08:29:45 811

原创 定位一个ceph文件系统umount不掉的问题

前言 本文为原创,可能会存在一些知识点或理解上的问题,欢迎切磋和交流 ^_^虽然我很想说我就是这两个攻关问题的定位人,但很遗憾并不是我。既然不如人,就要多总结经验教训,虚心向高手请教和学习,在此记录自己的成长经历。看看时间,2019年已经接近了尾声,如果盘点一下今年跳的坑,那么文件系统umount提示target is Busy,这一类问题绝对是放在最前面的,因为这一类问题对产品版本...

2019-10-30 00:49:03 1123

翻译 iov_iter结构体--翻译

前言 本文为原创,可能会存在一些知识点或理解上的问题,欢迎切磋和交流 ^_^我是在分析ceph文件系统写流程generic_perform_write接口时,对其中传参 struct iov_iter *i看不懂,于是针对 struct iov_iter *i进行分析,该接口如下:ssize_t generic_perform_write(struct file *file,st...

2019-10-17 01:21:11 3491

翻译 文件扩展属性xattr系统调用浅析 --翻译

前言 本文为原创,可能会存在一些知识点或理解上的问题,欢迎切磋和交流 ^_^1、listxattr/llistxattr/flistxattr系统调用名称Listxattr/llistxattr/flistxattr作用:列出扩展属性名称1.1概要#include <types.h>#include <sys/xattr.h>ssize_t...

2019-10-13 17:36:43 2365

原创 内核跟踪调试工具--ftrace案例使用

前言 本文为原创,可能会存在一些知识点或理解上的问题,欢迎切磋和交流 ^_^一、简单聊聊ftrace在定位内核问题时,往往需要深入到代码层面进行分析。在使用ftrace之前,我往往采用的是最笨的方法,即在认为可能走到的函数接口里打点,重新编包,进行替换验证,看函数是否有走到打点的流程里,通过这种添加调试日志方法进行分析函数调用关系,效率不能太低!编译一把内核包所花费的时间是是可想而知...

2019-10-13 11:51:21 1219

原创 文件系统 I/O浅析

前言 本文为原创,可能会存在一些知识点或理解上的问题,欢迎切磋和交流 ^_^1、块设备访问方式Linux块设备访问方式有两种:1、dd if=/dev/sda12、mount -o loop /dev/sda1 /mnt第一种方式,直接dd方式访问裸设备,底层直接和vfs层接口打交道, 直接调用fs/block_dev.c里的函数操作集,而第二种方式则是某种文件系统调用f...

2019-10-07 23:24:50 658

空空如也

空空如也

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

TA关注的人

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