自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 网络中断 rps & xps 调优记录

线上设备偶尔会出现各cpu softirq消耗不均的情况,有的cpu甚至被softirq打满,成为性能瓶颈。主要原因是网络软中断分布不均,计划用rps & xps 尝试优化。但线上设备配置多样,需要针对不同软硬件配置的机器适配好配置策略,确保不会产生负面影响。这里记录一些遇到的问题。原理及分析rps 这一特性早在2.6.38就进入内核,与其相关的rss rfs xps 等技术的原理及实现已有大量资料,这里仅简单梳理一下。rps 概括来说是通过软件方法模拟多队列处理网络收包,减缓单cpu的

2021-03-17 20:00:01 1462

原创 memory watermark 调节

线上设备经常会遇到一类故障,系统突然出现大量直接内存回收导致load飙升,影响业务稳定性。处理思路基本上是调整内存watermark使系统内存回收平滑,尽量避免触发直接内存回收。实际调整中往往会遇到一些问题,导致效果事与愿违。如:/proc/zoneinfo 中min为何远大于min_free_kbytes;改变min_free_kbytes,/proc/zoneinfo中min,与low , high的变化不符合预期;提高watermark导致MemAvailable减少,反而造成内存紧张

2021-02-02 17:48:11 3848

原创 基于ebpf统计docker容器网络流量

Linux下统计网络带宽的工具很多,但大部分是按网卡、进程、IP维度进行统计。统计容器维度的网络流量,虽然可在容器的namespace查看,或者由cgroup提供的net_cls做标记再配合iptable统计,但使用起来并不方便,这里介绍一种基于ebpf来统计容器维度网络流量的办法,以及使用时遇到的坑。原理与实现ebpf的原理不再介绍了,用来做流量统计,最大的优势是十分灵活,能够根据需求对统计项目进行定制。基本原理就是记录内核中各网络相关函数的参数,再按不同维度,如 cgroupID, 进程,IP地

2020-12-10 14:05:57 4924 2

原创 Linux 文件系统解析(四)IO模式

文件系统是IO流程的起点,为了满足应用程序对IO操作的各种需求,在文件系统层设计了多种IO模式,上一篇介绍的bufferIO是最常见的一种,本篇来梳理一下其他IO模式,它们的作用,流程以及是如何实现的。DirectIODAX异步IOaioiouring多路复用selectpollepollmmap...

2020-08-02 21:42:01 5480

原创 Linux 文件系统解析(三)cache

内存数据结构Dentry CacheInode CachePage Cache文件系统驱动中的CacheCache的设置接口vm,swappinesscgroup

2020-06-30 20:57:19 1933 2

原创 Linux 文件系统解析(二)fs驱动实现

文件系统类型关键接口mountdir_inode->lookupdir_inode->mkdirdir_inode->creatfile->read_iterfile->write_iteraddress_space->readpageaddress_space->writepageaddress_space->directioEXT4历史介绍数据结构关键函数ext4_igetext4...

2020-06-19 22:39:00 2192 1

原创 Linux 文件系统解析(一)VFS

文件系统功能分块vfs: superblock,inode,dentry,file管理, pagecache,icache,dcachefs实现:普通文件系统,nfs,内存文件系统,特殊文件系统(procfs, debugfs,devtmpfs,sysfs)IO模型:bufferrIO,directIO,同步,异步(aio io_uring),mmap,select,e_poll...

2020-06-12 16:56:58 1545

原创 Block multi-queue 架构解析(二)流程与机制

总体流程plug/unplugIO 合并软硬件队列映射调度器

2020-06-01 21:08:17 4322 1

原创 Block multi-queue 架构解析(一)数据结构

biorequestrequest_queueelevator_queueblk_mq_ctxblk_mq_hw_ctx

2020-05-27 19:28:21 4882 3

原创 《system performance》&《BPF PerformanceTools》读书笔记(六)Disks

背景及概念1.Block I/O stack2.I/O schedulers3.Disk I/O performance4.IOwait分析方法及策略监测工具调整方法

2020-05-21 20:28:13 539

原创 《system performance》&《BPF PerformanceTools》读书笔记(五)File System

背景及概念分析方法及策略监测工具调整方法

2020-05-19 20:11:24 480

原创 《system performance》&《BPF PerformanceTools》读书笔记(四)Memory

背景及概念1.虚拟内存及映射2.Paging3.内存分配器4.内存页的生命周期5.pagecache & swap device6.OOM7.内存回收8.内存回收触发路径分析方法及策略监测工具调整方法

2020-05-12 21:30:47 501

原创 《system performance》&《BPF PerformanceTools》读书笔记(三)CPU

背景及概念1.指令与指令周期2.CPU cache3.CPU Performance counters4.User-time/Kernel-time5.CPU scheduler分析方法及策略1.USE2.负载描述3.采样分析(perf)4.关注硬件中断5.指令周期分析监测工具调整方法...

2020-05-08 20:41:52 468

原创 《system performance》&《BPF PerformanceTools》读书笔记(二)策略及方法论

性能问题分析思路在复杂环境下面对性能问题,第一个挑战就是从哪里开始分析,书中列举的一系列策略,展示了从哪里开始,以什么步骤开始一次性能分析,给性能分析提供了大量思路。从看到性能问题到最终解决同样是一个漫长的过程,有时候是需要一些灵感的,两本书都深入各个子系统,给出了大量可造作的分析建议,当问题一筹莫展时候回顾一下这些内容,往往能有些新的思路和灵感。1.问题陈述2.USE分析法...

2020-05-06 20:02:30 411

原创 《system performance》&《BPF PerformanceTools》读书笔记(一)概述

《system performance:Enterprise and the Cloud》&《BPF PerformanceTools》,性能调优大神Brendan Gregg写的两本书。前者

2020-05-02 09:25:21 2038

原创 一次PM_RUNTIME引起IO性能问题的排查记录

问题描述设备进行内核从3.x升级至5.x后,同样的系统配置,磁盘,用fio测试时发现IO性能有明显下降,在ssd上体现尤为明显。用blktrace+btt 分析,对比旧内核,新内核在D2C过程有较大延时,初步定位是新内核驱动侧的差异导致。磁盘驱动流程梳理blktrace的D2C,表示IO请求从block层提交给驱动到数据返回IO请求结束的过程,Ftrace分析...

2020-04-28 19:02:11 686 3

原创 /proc/diskstats还准吗?

问题https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.6.y&id=5b18b5a737600fd20ba2045f320d5926ebbf341a

2020-04-26 19:58:10 994

原创 EXT4分区mount状态下也可以用tune2fs修改属性吗?

问题描述tune2fs常用于修改ext234文件系统各种属性及参数。实际使用中可能会碰到这种情况,由于应用在使用磁盘分区无法正常卸载,那可以在分区mount的状态直接用tune2fs修改属性吗? 经测试是可以的,并且修改的属性会立即生效,这是为什么呢?tune2fs文件系统superblock总结...

2020-04-22 20:01:07 656

原创 Loop 设备IO放大问题

111

2020-04-20 19:25:45 748

原创 Cgroup mem 对IO性能的影响

问题描述及分析问题发现自一次对业务的性能分析中,发现add_to_page_cache_lry()->__add_to_page_cache_lock()->mem_cgroup_try_charge()->try_charge().... 调用栈存在较大CPU消耗。初步判断是cgroup对pagecache的管理带来了开销,影响IO性能。cgroup mem 对pa...

2020-04-18 18:13:16 787 10

原创 IOwait 到底在wait什么

Iowait

2020-04-17 19:57:08 2682 1

空空如也

空空如也

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

TA关注的人

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