- 博客(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 架构解析(一)数据结构
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
原创 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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人