随笔分类 - programming c linux
摘要:Message passing to invoke behavior in a program is a widely used technique in soft‐ware engineering. A program can modify another program’s behavior b
阅读全文
摘要:先看看之前的sockmap sockmap_ebpf sock_map2 ipvs-ebpf EBPF:本质上它是一种内核代码注入的技术 内核中实现了一个cBPF/eBPF虚拟机 用户态可以用C来写运行的代码,再通过一个Clang&LLVM的编译器将C代码编译成BPF目标码 用户态通过系统调用bpf
阅读全文
摘要:https://ty-chen.github.io/linux-kernel-shm-semaphore/ Linux提供两种信号量: 内核信号量,由内核控制路径使用 用户态进程使用的信号量,这种信号量又分为POSIX信号量和SYSTEM V信号量。 对POSIX来说,信号量是个非负整数。 而SYS
阅读全文
摘要:开始优化应用层!! 目前可以看出问题如下: select 耗时太多!!!! read 系统调用的errors次数占比13% 这是一个问题 read的次数太多,是不是可以调大接收缓存减少read 次数,同时使用zero_copy tcp : A reworked TCP zero-copy recei
阅读全文
摘要:无聊中看了些开源代码,发现其中有个相同点就是: 简单就是美 数组 链表 解决了绝大部分事情 数据结构体注意cache对齐 整个业务就是状态图 一组对象/事件就是一组状态机 状态的迁移转换都是由于消息通告而触发的 每一个消息是可以debug可以记录的 完善的日志记录分层可debug 严谨的错误处理 考
阅读全文
摘要:记得以前出现过一次类似问题: 这次check_list代码就顺便修改一下。 来看看man fopen的结果; a Open for appending (writing at end of file). The file is created if it does not exist. The st
阅读全文
摘要:Google研究发现TCP三次握手是页面延迟时间的重要组成部分,所以他们提出了TFO:在TCP握手期间交换数据,这样可以减少一次RTT。根据测试数据,TFO可以减少15%的HTTP传输延迟,全页面的下载时间平均节省10%,最高可达40%.论文见:google_TFO_研究 用户向Server发送SY
阅读全文
摘要:在经行性能测试时, 使用netstat -atn 查看socket 等状态时,总是卡主!!!! 有没有什么快速的办法呢? 通过proc 文件系统? strace netstat发现 也是通过read proc 文件系统 read write输出结果!!!但是 是通过遍历/proc下面每个PID目录
阅读全文
摘要:目前在debug 的时候发现进程使用的fd 数目不够了!! 进程层面: 1.进程最多打开文件描述符数 由于目前进程已经在运行,是有ulimit 修改参数没用,目前可以通过/proc/pid/limits 使用ulimit 命令查看 当前的限制以及使用r
阅读全文
摘要:今天debug 应用层代码时, 发现一个宏 defined(__x86_64__) 对应x86_64 gcc 那么 arm -gcc 该使用什么宏表示呢? 使用google 搜索了一下可以用如下方式找出来: gcc -E -dM - </dev/null > filegcc 可以看到 gcc 中de
阅读全文
摘要:目前部门网络组件bug 较多不稳定,准备自己改一改,所以现在想一想应该怎么处理!! 目前部门业务主要就是: 1、网络I/O >读取文件,频繁读取网络套接字。 2、CPU在内存中的计算 so:瓶颈应该是在网络I/O中,毕竟不是CPU密集型,所有的数据都在内存中处理 多线程??多进程 多线程:要防止频繁
阅读全文
摘要:问题现象:ping xxxx 提示 # ping 121.10.41.62PING 121.10.41.62 (121.10.41.62) 56(84) bytes of data.From 14.116.225.5: icmp_seq=2 Destination Host Unreachable
阅读全文
摘要:收集整理质料如下: 1:网卡硬件-->2 内核缓存队列-->3协议层 >4用户recv使用的buff 转载:https://zhuanlan.zhihu.com/p/52397230 net.core.optmem_max = 20480 net.core.rmem_default = 229376
阅读全文
摘要:前景:一套代码要在两个平台上使用,涉及到x86以及ARM编译,其使用的代码绝大部分相同,只是小部分不一样! 目前状态:目前一份一样的代码在svn 上分了两份存储,一份给x86编译使用另一份给ARM编译使用,每份代码上的编译器已经写死!!! 竟然弄了两份svn 目录一份x86一份arm;作为一个见不得
阅读全文
摘要:问题:目前设备进行1g吞吐测试时,时不时出现tx流量最大700M 首先查看dev 收发包: sar -n DEV 同时 cat /proc/net/dev 可以看出实际上没有出现丢包(eth7 eth8) 接收数据包的流程 网卡收到数据包。 将数据包从网卡硬件缓存转移到服务器内存中。 通知内核处理。
阅读全文
摘要:近期在弄一个设备国产化,涉及到镜像数据加载问题,讲的是基础电子包启动后从server 上下载镜像包并且安装的过程 下载包后安装系统 具体步骤如下: 下载完镜像就解压然后执行install 脚本 检测磁盘一般都是两个:一个系统磁盘 一个数据磁盘 检测 root镜像 、内核镜像 、initrd、恢复系统
阅读全文
摘要:关于守护进程dup stderr问题; fd = open("/dev/null", O_RDWR); if (dup2(fd, STDIN_FILENO) == -1) if (dup2(fd, STDOUT_FILENO) == -1) #if xxx if (dup2(fd, STDERR_F
阅读全文
摘要:client-- proxy server; 四次挥手走完, client 发出syn ,proxy 代理发出syn后,收到 server的ack后就发出了rst。 分析报文特征如下:proxy的syn的seq ()大于 server回复ack的seq? 为什么会出现这样的问题呢? 说到这个问题,就
阅读全文