首页
学习
活动
专区
工具
TVP
发布

Linux问题笔记

专栏作者
22
文章
28941
阅读量
13
订阅数
一些常用场景的perf分析方法(笔记积累,持续更新)
perf record -ag -e irq:,sched:,probe:,timer:,irq_vectors:call_function*
johnazhang
2022-11-03
1.3K0
监控每个rps队列收包脚本
脚本来自于chudihuang#!/bin/bash#options# -r receivefield=10 cpunr=$(ls -d /sys/class/cpuid/cpu*|wc -l)old="$(awk -v ff=$field '{print strtonum("0x"$ff)}' /proc/net/softnet_stat)"while :do sleep 1 printf "%s " $(date '+%T.%N') new="$(awk -v ff=$field
johnazhang
2022-11-03
5390
云服务器 virtblk_ioctl gpf 内核crash问题分析
有客户反馈机器频繁出现重启,查看每次的堆栈都是virtio_check_driver_offered_feature访问非法地址的gpf报错,比较像是某个内核bug导致。
johnazhang
2022-11-03
8580
一个mutex引发的血案——3.10内核 mount -a hung住问题看到的ext4 lazyinit那些坑
接到一个问题,反馈D3.16XLARGE256(24块3T本地sata数据盘)机型,3.10内核,在初始化mkfs后mount -a,概率触发mount hung住,需要很长时间(半天左右)才能完成所有盘的挂载,需要排查根因。 本文记录复现场景分析的全过程,发现罪魁祸首源于一个mutex锁,而在高版本内核中对该锁的使用进行了优化,因此TencentOS 5.4内核可以根治这个问题。
johnazhang
2022-11-02
1.1K0
ext4 io hung模拟脚本
通过把jbd2不调度来实现,方式是把他和一个rt进程绑到一个cpu上。README该脚本利用ext4的日志功能模拟一个io hang的场景在使用该脚本前,请确保:1.机器上有盘是挂载为ext4的,可通过 mount | grep ext4 命令查看确认2.挂载点的ext4打开了日志功能,可通过 dumpe2fs /dev/vda1(这里是挂载为ext4的盘,上面mount命令可以看到)| grep features | grep has_journal 命令查看确认3./proc/sys/kernel/hu
johnazhang
2022-10-31
8440
vim+cscope看源码配置
配置vim可参考https://blog.csdn.net/ywgdk/article/details/53607874等博客。
johnazhang
2022-10-31
6060
3.10内核 vs 5.4内核——内存不足场景pk
由于早期的云服务器,大量存量3.10内核作为cvm的操作系统内核。3.10内核存在着很多已知问题,其中的常客之一便是内存不足场景下,内存回收引发的问题。 内存回收和OOM一直是Linux中一个饱受诟病的问题,其路径内核一直在优化,所以从理论上新版本内核一定是优于老版本。 本文通过构造用例测试,来针对3.10和5.4内核在内存不足场景下的表现进行分析对比,以说明5.4会在内存不足的场景下有更好的表现。
johnazhang
2022-09-29
2.2K0
tcp传输性能下降?也许是内核搞的鬼!
标题党勿喷,内核可以搞的鬼很多,本文只分析其中一种。 现网问题中,我们经常会遇到一种场景,带宽明明没超限,但是tcp传输性能却不符合预期,而且时快时慢?本文展开分析其中一种常见原因——tcp内存使用太高搞的鬼。
johnazhang
2022-09-27
1.5K0
tampercfg内核模块导致机器频繁crash
该问题,疑似rootkit或者哪个软件捆绑安装的模块(apache?),不过谷歌并搜不到相关信息。
johnazhang
2022-08-10
1.7K1
云服务器 virtblk_ioctl gpf 内核crash问题分析
有客户机器频繁出现重启,查看每次的堆栈都是virtio_check_driver_offered_feature访问非法地址的gpf报错,比较像是某个内核bug导致。
johnazhang
2022-08-10
7870
从一个抓包打满cpu问题理解内核soft lockup
一台线上服务器在流量大时挂掉,怀疑是大流量时的抓包行为导致,向我们给出了线索是当时可能存在的三个抓包组件:A、B、C,当三个组件全部开启时,将流量打上去进行压测,很快会报soft lockup错误,且机器会非常卡。但是只开启一个组件压测,则并没有相关soft lockup报错。看现象似乎不符合逻辑?本文记录该问题的分析过程。
johnazhang
2022-08-09
1.9K1
3.10内核TCP慢启动耗时问题分析——拥塞控制算法
TCP使用多种拥塞控制策略来避免雪崩式拥塞。TCP会为每条连接维护一个“拥塞窗口”来限制可能在端对端间传输的未确认分组总数量。这类似TCP流量控制机制中使用的滑动窗口。TCP在一个连接初始化或超时后使用一种“慢启动”机制来增加拥塞窗口的大小。它的起始值一般为最大分段大小(Maximum segment size,MSS)的两倍,虽然名为“慢启动”,初始值也相当低,但其增长极快:当每个分段得到确认时,拥塞窗口会增加一个MSS,使得在每次往返时间(round-trip time,RTT)内拥塞窗口能高效地双倍增长。
johnazhang
2022-07-21
1.9K0
通过vmlinuz定位到内核代码
脚本extract-vmlinux:https://github.com/torvalds/linux/blob/master/scripts/extract-vmlinux sh extract-vmlinux vmlinuz > vmlinux
johnazhang
2022-07-20
8920
stap命令行小技巧(笔记,持续更新)
stap -g -v --all-modules -B CONFIG_MODVERSIONS=y
johnazhang
2022-07-20
7170
crash中一些常用脚本(笔记,持续更新)
找出内存最大的几个进程(按名字统计,同名算一个,但是这么算出来的有可能加上了共享内存,不保证完全准确,要是想刨去共享内存一个办法就是统计时加上uniq): ps -G | sed 's/^>//' | awk '{ m[$9]+=$8/1024 } END { for (item in m) { printf "%20s %10s MiB\n", item, m[item] } }' | sort -k 2 -r -n | head
johnazhang
2022-07-20
8300
eBPF原理介绍与编程实践
注:本文包括了ebpf的原理介绍、流程分析、相关资料链接、工具编写实战等,可以选择感兴趣的部分直接阅读;鉴于作者语文水平有限,很多地方描述可能不清楚,有错误或疑问欢迎指出交流
johnazhang
2022-07-18
2.3K1
关于以ethtool为主的网络指标统计工具之间统计数据关系的研究
分析思路是,先可以用动态分析去初步分析,然后通过静态分析走读代码再从代码层面确认。
johnazhang
2022-07-18
1.9K0
crash浅析tasklist_lock与进程释放
本文通过crash分析一个hang在tasklist_lock上的soft lockup,透过表象,来分析内核在有大量进程释放时的表现
johnazhang
2021-07-05
1.4K0
从内核coredump中分析内存高问题
内存太高导致free内存低于水位时,会导致网络收包时因free 内存低于水位线频繁触发分配内存失败导致无法ssh登陆机器。 这时候如果发生了重启,或者是sysrq自己触发重启并生成了coredump,可以用来定位问题的原因。
johnazhang
2021-07-02
1.8K0
如何通过inode找到对应dentry
dentry中的d_alias对应的就是上面的成员,他的偏移量在0xb0,因此对应dentry的地址就是0xffff91617f8e9bf0
johnazhang
2021-05-28
2.3K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档