04 2020 档案

摘要:上一篇文章写道了udp 使用reuseport 多线程编程!!! 但是有几个问题需要考虑一下: 之前hash使用sip sport dip dport为key, 很正常同一个客户端回hash到同一个socket上。。但是其中一个线程挂了呢????????????对于TCP而言,hash的不一致仅仅影 阅读全文
posted @ 2020-04-25 22:02 codestacklinuxer 阅读(255) 评论(0) 推荐(0)
摘要:目前昨天查一个线上问题:“”dns服务器在我们的设备, 有大量的终端到设备上请求解析域名,但是一直是单线程,dns报文处理不过来”, 然而设备是多核,dns服务器一直不能利用多核资源,所以能不能使用多线程进行处理呢? udp不像tcp那样,udp没有连接的概念,也就是没有通过建立多个连接来提高对dn 阅读全文
posted @ 2020-04-25 19:54 codestacklinuxer 阅读(716) 评论(0) 推荐(0)
摘要: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 阅读(240) 评论(0) 推荐(0)
摘要:eBPF实质上是一个内核注入技术 用户态可以用C来写运行的代码,再通过一个Clang&LLVM的编译器将C代码编译成BPF目标码; 用户态通过系统调用bpf()将BPF目标码注入到内核当中,并创建必要的eBPF-maps。eBPF具有用作socket filter,kprobe处理器,流量控制调度, 阅读全文
posted @ 2020-04-19 21:16 codestacklinuxer 阅读(1082) 评论(0) 推荐(0)
摘要:之前聊过tcpdump 抓包原理,tcpdump使用packet 抓包,使用packet_map 完成零拷贝。但是这个零拷贝也有点假,何为假呢?从网卡到内存走的dma,哪能不能直接从dma拷贝到用户空间呢?? 使用dpdk直接从网卡中轮询数据? 如果使用现有的tcpip协议栈,反正内核态需要处理网络 阅读全文
posted @ 2020-04-17 23:06 codestacklinuxer 阅读(2832) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2020-04-13 21:27 codestacklinuxer 阅读(146) 评论(0) 推荐(0)
摘要:具体代码分析见附件!! 对其逻辑分析就不上传了!! libevent并不是线程安全的,但这不代表libevent不支持多线程模式,其实方法在前面已经将signal事件处理时就接触到了,那就是消息通知机制!! 看看memcache 基于libevent的实现 可以看到:libevent多线程的实现设计 阅读全文
posted @ 2020-04-12 16:41 codestacklinuxer 阅读(294) 评论(0) 推荐(0)