熟悉linux服务常用配置和安装,gdb调试进程和进程core问题定位,系统crash定位,jprobe和crash调试内核。有能力使用c语言编写用户态程序和内核模块、有能力书写shell脚本,从事过网络可视化开发,对网络数据包分析有独特见解
某知名大厂某产品线自研linux操作系统全栈维护,主要使用gdb、crash和strace定位进程与内核问题,使用top、sar和iostat等工具定位性能问题
通过crash工具现场了解到由于cd命令一直获取不到读写锁导致处于D状态,通过该锁own找到已获取的进程,并通过proc下该进程内核调用栈,通过调用栈了解到此进程一直在cgroup申请内存一直申请不到导致,基本可以确定是由于cgroup内存分配不足导致,调整该cgroup内存即可
使用x/400gx $rsp打印出栈顶自上3200字节信息,由于栈底在栈数据中很容易就可分析多个可疑栈,而rip在栈顶数据边上,通过x/i 很容易找到调用函数,通过反汇编查看每个函数的栈扩张情况,从而得出可疑栈