上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 70 下一页
摘要: eBPF实质上是一个内核注入技术 用户态可以用C来写运行的代码,再通过一个Clang&LLVM的编译器将C代码编译成BPF目标码; 用户态通过系统调用bpf()将BPF目标码注入到内核当中,并创建必要的eBPF-maps。eBPF具有用作socket filter,kprobe处理器,流量控制调度, 阅读全文
posted @ 2020-04-19 21:16 codestacklinuxer 阅读(1086) 评论(0) 推荐(0)
摘要: 之前聊过tcpdump 抓包原理,tcpdump使用packet 抓包,使用packet_map 完成零拷贝。但是这个零拷贝也有点假,何为假呢?从网卡到内存走的dma,哪能不能直接从dma拷贝到用户空间呢?? 使用dpdk直接从网卡中轮询数据? 如果使用现有的tcpip协议栈,反正内核态需要处理网络 阅读全文
posted @ 2020-04-17 23:06 codestacklinuxer 阅读(2851) 评论(0) 推荐(0)
摘要: 在对 socket 绑定和监听前经过了以下设置 无阻塞(O_NONBLOCK) TCP 无延时(TCP_NODELAY) 可重用地址(SO_REUSEADDR) 对于 clien server需要设置: 无阻塞 server -->无延时 1、SO_REUSEADDR选项: 在服务器程序中,SO_R 阅读全文
posted @ 2020-03-29 23:01 codestacklinuxer 阅读(452) 评论(0) 推荐(0)
摘要: 昨天帮人查bug,发现了一个vfork fork exit _exit不分导致的问题。 使用vfork 后调用exit导致的问题。 主要需要弄清楚他们之间的区别: 1. fork ():子进程拷贝父进程的数据段,代码段 vfork ( ):子进程与父进程共享数据段2. fork ()父子进程的执行次 阅读全文
posted @ 2020-03-29 22:10 codestacklinuxer 阅读(162) 评论(0) 推荐(0)
摘要: 查线上问题: 1、cpu idle 为0 ,I/O高, pidstat 发现进程io 不高,那就是cache mem引起系统io高了 没有vmstat,只能使用sar工具了,使用sar -r 查看buddyinfo 发现内存碎片化严重。同时drop_cache值为3一直在释放cache , eg:对 阅读全文
posted @ 2020-03-26 21:49 codestacklinuxer 阅读(582) 评论(0) 推荐(0)
摘要: 线上问题 ./pidstat -w Linux 3.6.5-Broadcom Linux ((none)) 03/21/20 _armv7l_ (1 CPU) 15:04:17 UID PID cswch/s nvcswch/s Command 15:04:17 0 1 0.03 0.00 busy 阅读全文
posted @ 2020-03-26 20:41 codestacklinuxer 阅读(270) 评论(0) 推荐(0)
摘要: top , pidstat(sysstat) pid -p PID -t 1 10 vmstat 1 CPU上下文切换、运行队列、利用率 ps Hh -eo tid pcpu 查看具体线程的CPU消耗 ps -eLo pid,lwp,pcpu | grep 9140命令查看进程号为9140的进程中各 阅读全文
posted @ 2020-03-25 21:54 codestacklinuxer 阅读(195) 评论(0) 推荐(0)
摘要: 1.目前valgrind 、 memleak 、free 、top 、ps 中vsz Rss 、 buddy、 slab 这些用的比较多,一般用于处理内存紧张问题 共享内存是通过 tmpfs 实现的,所以它的大小也就是 tmpfs 使用的内存大小。tmpfs 其实也是一种特殊的缓存。 可用内存是新进 阅读全文
posted @ 2020-03-25 21:44 codestacklinuxer 阅读(212) 评论(0) 推荐(0)
摘要: I/O:某网上问题通过top iotop pidstat vmstat 工具定位出io高原因,内存不够。 iotop iostat -d 1 -x iostat 的两部分核心输出: CPU 使用率 (avg-cpu) %user: 用户空间程序占用的 CPU 百分比。 %system: 内核空间占用 阅读全文
posted @ 2020-03-23 23:27 codestacklinuxer 阅读(233) 评论(0) 推荐(0)
摘要: 一、编译阶段 nm 获取二进制文件包含的符号信息 strings 获取二进制文件包含的字符串常量 strip 去除二进制文件包含的符号 readelf 显示目标文件详细信息 objdump 尽可能反汇编出源代码 addr2line 根据地址查找代码行 二、运行阶段 gdb 强大的调试工具 ldd 显 阅读全文
posted @ 2020-03-23 23:18 codestacklinuxer 阅读(319) 评论(0) 推荐(0)
上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 70 下一页