随笔分类 -  programming c linux

上一页 1 ··· 5 6 7 8 9
摘要:今天看公司代码时,发现代码里面都是使用epoll,有的备注 epoll 效率比poll 高!!! 所以就得说一说了;宏观看一看epoll 和select的实现: select原理概述 调用select时,会发生以下事情: 从用户空间拷贝fd_set到内核空间; 注册回调函数__pollwait; 遍 阅读全文
posted @ 2020-07-28 20:30 codestacklinuxer 阅读(2263) 评论(0) 推荐(2) 编辑
摘要:今天查问题时, ssh 登录后台发现 需要输入密码,输入密码后弹出一个二维码, 然后扫码获取秘钥。输入秘钥登陆!!! 真是恶心了一把,找手机都花了不少时间!!!! 那么怎样干掉输入密码这些操作呢??? 所以需要思考一番!!!! man 文档中有 When bash is invoked as an 阅读全文
posted @ 2020-06-18 23:55 codestacklinuxer 阅读(238) 评论(0) 推荐(0) 编辑
摘要:在内存发生panic时,需要把panic的日志保存下来。以方便日后进行分析。 一般主机为x86的时候,panic 使用 kdump保存log。由于它使用占用大量内存和硬盘。所以当磁盘空间不够时,就会遇到问题。 所以此时使用crashlog. carshlog在内核中有一个叫crashlog的东东,它 阅读全文
posted @ 2020-06-10 12:49 codestacklinuxer 阅读(496) 评论(0) 推荐(0) 编辑
摘要:这几天多个版本出现了多个内存泄漏问题 怎么办???? Q1:进程调用某库函数分配内存不释放, 但是在进程退出时,统一释放内存,valgrind 检查不出来,但是频繁调用库函数会耗尽内存。怎么快速定位那个库函数导致!!!!!除了看源码这种sa办法 Q2:某些设备不支持跑valgrind 怎么办??- 阅读全文
posted @ 2020-06-02 00:31 codestacklinuxer 阅读(1470) 评论(0) 推荐(0) 编辑
摘要:Q:今天有人问我lsof是怎么实现的? 然后当时在想要是我应该怎么实现? 通过每个进程的file_table list 出来!!! 实际上怎么出来的呢??strace lsof 结果可知 就是通过读取 /proc/pid/fdinfo 。。。。。。。。。。。。。。平时会用到proc/pid/ 却没有 阅读全文
posted @ 2020-05-15 23:10 codestacklinuxer 阅读(538) 评论(0) 推荐(0) 编辑
摘要:今天处理一个cpu标高的bug,原因:在poll 返回后将error事件当做POLLIN事件处理,fd 一直都在唤醒线程处理,但是rcv的时候没有数据; unsigned int datagram_poll(struct file *file, struct socket *sock, poll_t 阅读全文
posted @ 2020-05-07 20:19 codestacklinuxer 阅读(363) 评论(0) 推荐(0) 编辑
摘要:Q1:线上问题的process 都为release版本!不带调试信息怎么查?(目前有时需要查线上问题, 不得不解决这个问题) 之前查问题都是编译环境编译一个带有debug信息的版本进行替换来调试,但是这是对必现问题,使用gdb调试没问题,如果是非必现问题呢?替换进程重新运行现象就会消失! 解决方法: 阅读全文
posted @ 2020-05-05 13:37 codestacklinuxer 阅读(676) 评论(0) 推荐(1) 编辑
摘要:static int lock_pidfile__(FILE *file, int command, struct flock *lck) { int error; lck->l_type = F_WRLCK; lck->l_whence = SEEK_SET; lck->l_start = 0; 阅读全文
posted @ 2020-04-24 15:47 codestacklinuxer 阅读(235) 评论(0) 推荐(0) 编辑
摘要:eBPF实质上是一个内核注入技术 用户态可以用C来写运行的代码,再通过一个Clang&LLVM的编译器将C代码编译成BPF目标码; 用户态通过系统调用bpf()将BPF目标码注入到内核当中,并创建必要的eBPF-maps。eBPF具有用作socket filter,kprobe处理器,流量控制调度, 阅读全文
posted @ 2020-04-19 21:16 codestacklinuxer 阅读(1031) 评论(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 阅读(380) 评论(0) 推荐(0) 编辑
摘要:昨天帮人查bug,发现了一个vfork fork exit _exit不分导致的问题。 使用vfork 后调用exit导致的问题。 主要需要弄清楚他们之间的区别: 1. fork ():子进程拷贝父进程的数据段,代码段 vfork ( ):子进程与父进程共享数据段2. fork ()父子进程的执行次 阅读全文
posted @ 2020-03-29 22:10 codestacklinuxer 阅读(153) 评论(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 阅读(543) 评论(0) 推荐(0) 编辑
摘要:gdb调试不管是本地调试还是远程调试,都是基于ptrace系统调用来实现。 ptrace系统调用提供了一种方法,让父进程可以观察和控制其它进程的执行,检查和改变其核心映像及寄存器。主要用来实现断点调试和系统调用跟踪可通过man手册查看具体使用:man ptrace SYSCALL_DEFINE4(p 阅读全文
posted @ 2020-03-23 17:59 codestacklinuxer 阅读(734) 评论(0) 推荐(0) 编辑
摘要:void event_warnx(const char *fmt, ...) EV_CHECK_FMT(1,2); #define EV_CHECK_FMT(a,b) __attribute__((format(printf, a, b))) void event_debugx_(const cha 阅读全文
posted @ 2020-03-23 14:45 codestacklinuxer 阅读(561) 评论(0) 推荐(0) 编辑
摘要:对coredump的分析中,是依赖于core文件的,而core文件中也几乎包含了程序当前的所有状态(堆栈、内存、寄存器等)。然而在实际的线上环境中,由于core文件太大、保存core文件耗时太久,出于线上系统的稳定性与快速恢复考虑,我们往往不会保留core文件。同时,程序堆栈被破坏的情况下,即使我们 阅读全文
posted @ 2020-03-08 15:32 codestacklinuxer 阅读(997) 评论(0) 推荐(2) 编辑
摘要:查看二进制文件的编译器版本 strings info.o |grep GCCGCC: (crosstool-NG linaro-1.13.1-2012.02-20120222 - Linaro GCC 2012.02) 4.6.3 20120201 (prerelease) 查看依赖的共享库read 阅读全文
posted @ 2020-01-13 17:47 codestacklinuxer 阅读(1387) 评论(0) 推荐(0) 编辑
摘要:ECONNABORTED 该错误被描述为“software caused connection abort”,即“软件引起的连接中止”。原因在于当服务和客户进程在完成用于 TCP 连接的“三次握手”后,客户 TCP 却发送了一个 RST (复位)分节,在服务进程看来,就在该连接已由 TCP 排队,等 阅读全文
posted @ 2020-01-08 10:37 codestacklinuxer 阅读(3212) 评论(0) 推荐(0) 编辑
摘要:wchan表示导致进程睡眠或者等待的函数 SS iproute2,nslookup,dig 从某种意义上说,iproute工具集几乎可以替代掉net-tools工具集,具体的替代方案是这样的:用途 net-tool(被淘汰) iproute2地址和链路配置 ifconfig ip addr, ip 阅读全文
posted @ 2020-01-06 22:03 codestacklinuxer 阅读(151) 评论(0) 推荐(0) 编辑
摘要:转载自: http://www.cnhalo.net/2016/08/13/linux-tcp-nagle-cork/ http://abcdxyzk.github.io/blog/2018/07/08/kernel-nodelay_cork/ 糊涂窗口综合症(Silly Windw Syndrom 阅读全文
posted @ 2019-11-23 22:13 codestacklinuxer 阅读(1658) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9
点击右上角即可分享
微信分享提示