随笔分类 -  programming c linux

摘要:首先需要弄清楚 进程被干掉的过程是怎样的? 一般使用kill -9 pid 来杀死进程 , 那么进程是怎样收到signal以及处理signal呢? 那目前有哪些现成的工具可以使用探测signal呢? 参考tapset文档 #! /usr/bin/env stap # sigkill.stp # Co 阅读全文
posted @ 2021-08-02 10:03 codestacklinuxer 阅读(384) 评论(0) 推荐(1) 编辑
摘要:目前是直接使用systemp 工具 检查ip_output部分逻辑:简写代码如下所示 #! /usr/bin/env stap %{ #include <linux/in.h> #include <linux/inet.h> #include <net/inet_sock.h> #include < 阅读全文
posted @ 2021-07-19 22:14 codestacklinuxer 阅读(115) 评论(0) 推荐(0) 编辑
摘要:今天处理了一个限速&&慢速攻击的问题! 现在来对这个问题做一个整体的分析与 回顾 原理 是以极低的速度往服务器发送HTTP请求。由于Web Server对于并发的连接数都有一定的上限,因此若是恶意地占用住这些连接不释放,那么Web Server的所有连接都将被恶意连接占用,从而无法接受新的请求,导致 阅读全文
posted @ 2021-07-13 09:54 codestacklinuxer 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2021-07-01 16:29 codestacklinuxer 阅读(42) 评论(0) 推荐(0) 编辑
摘要:拓扑: client >AA-tproxy-BB server client server 之间使用tproxy 代理 从抓取报文来看,在管理连接的时候出现大量ack报文,以上不是完整报文 直接给结论吧: server主动关闭发出FIN, BB 收到FIN后,发出Fin-ack,同时去AA 主动关闭 阅读全文
posted @ 2021-06-30 23:29 codestacklinuxer 阅读(77) 评论(0) 推荐(0) 编辑
摘要:目前引擎ssl逻辑在ssl_read ssl_shuwdown 上存在问题! 主要问题是: 错误处理不正确,很多错误遗漏,基本只有正常逻辑 首先看下 ssl_read 官方文档解释 In the following, SSL_read() and SSL_peek() are called “rea 阅读全文
posted @ 2021-06-24 21:58 codestacklinuxer 阅读(286) 评论(0) 推荐(0) 编辑
摘要:根据 free 以及top 命令发现问题如下: used内存占用很大,而实际系统中个进程并没有占用这么多内存, 同时cache/buffer 使用非常小,对于used内存,将近有15g的内存不知道被什么给使用? 先google 看下 meminfo 各个字段的含义: 参考:http://linuxp 阅读全文
posted @ 2021-06-23 15:47 codestacklinuxer 阅读(722) 评论(0) 推荐(0) 编辑
摘要:今天同事说有个问题弄了很长时间没有找出原因让帮忙看下,问题最后得以解决;现在来记录一下当时分析处理的过程! 问题:客户端使用http 去下载视频发现下载很慢, 但是去掉网络传输路径中的节点A, 下载速度就很快恢复正常 目前有客户端 以及 节点A的内部抓包的结果,节点A内部是设置的转发模式; 网络拓扑 阅读全文
posted @ 2021-06-19 15:19 codestacklinuxer 阅读(438) 评论(0) 推荐(0) 编辑
摘要:有一个想法:由于 udp 是无连接的 包传输模式! 所以有时在局域网想使用udp,但是 udp 是无连接的, 如果使用UDP 做服务器, 其是无连接的,那怎样实现其tcp的四元组有链接呢?? 想了一下:udp 添加listen 字段就行!! sk = __udp4_lib_lookup_skb(sk 阅读全文
posted @ 2021-05-28 21:28 codestacklinuxer 阅读(566) 评论(0) 推荐(0) 编辑
摘要:目前看以前的代码想到一个问题,unlink rm 区别 和和 close 的区别! 主要场景是 想使用 文件大内核锁进行多进程互斥! 多进程中使用 文件锁互斥方式如下: mtx->fd = open_file(file_name); mtx->name = file_name; fork() 也就是 阅读全文
posted @ 2021-05-27 21:00 codestacklinuxer 阅读(83) 评论(0) 推荐(0) 编辑
摘要:3.1使用SSL层接口函数安全通信 使用SSL层接口函数进行安全通信的方法由以下几个步骤组成: 1)初始化OpenSSL库 使用OpenSSL库之前,应用程序必须初始化库,初始化函数列出如下: SSL_library_init(void); OpenSSL_add_ssl_algorithms(); 阅读全文
posted @ 2021-05-26 23:40 codestacklinuxer 阅读(675) 评论(0) 推荐(0) 编辑
摘要:Memcache作为内存cache服务器,内存高效管理是其最重要的任务之一,Memcached使用SLAB管理其内存!! 记住 从内存池里面连续的地址 获取一小块内存地址时 需要注意 地址对其问题; 一般 CHUNK_ALIGN_BYTES = 8 or 16 原因和CPU处理内存方式有关,考虑到C 阅读全文
posted @ 2021-05-26 23:40 codestacklinuxer 阅读(56) 评论(0) 推荐(0) 编辑
摘要:说起内存问题 就想起 buffer 和cache 其核心是:buffer和cache对读和写都会混存,只是对象不同,前者是针对块设备,后者是针对文件。 再就是大家都想 重写一下内存池 最后发现 自己写的是一坨屎 作者:韦易笑链接:https://www.zhihu.com/question/2552 阅读全文
posted @ 2021-05-23 21:56 codestacklinuxer 阅读(72) 评论(0) 推荐(0) 编辑
摘要:基于套接字的 bufferevent使用 libevent 的底层事件机制来检测底层网络套接字是否已经就绪,可以进行读写操作,并且使用底层网络调用(如 readv 、 writev)来发送和接收数据。 libevent的bufferevent 是基于event_base 的基础上再次封装一层!其本质 阅读全文
posted @ 2021-05-20 18:56 codestacklinuxer 阅读(130) 评论(0) 推荐(0) 编辑
摘要:并发编程有两种:消息传递 以及共享内存 消息传递更容易保证程序的正确性!!! 线程同步原则: 尽可能降低共享对象!减少同步的场合 使用高级的并发结构- 任务队列 生产者消费者模型 引用计数 不到万不得已不要使用底层同步源语,只用非递归互斥和条件变量;至于读写锁信号量 这个 还是不用吧!! 读写锁 不 阅读全文
posted @ 2021-05-19 15:10 codestacklinuxer 阅读(69) 评论(0) 推荐(0) 编辑
摘要:看下 ngx的内存池,目前发现和STL相差不多 把内存分配归结为大内存分配和小内存分配。若申请的内存大小比同页的内存池最大值 max 还大,则是大内存分配,否则为小内存分配。 大块内存的分配请求不会直接在内存池上分配内存来满足请求,而是直接向系统申请一块内存(就像直接使用 malloc 分配内存一样 阅读全文
posted @ 2021-05-18 11:51 codestacklinuxer 阅读(152) 评论(0) 推荐(0) 编辑
摘要:系统整体CPU使用率是多少? 每个CPU呢?CPU负载并发程度? 单线程 多线程? 多进程?那些应用程序/用户在使用CPU 使用了多少?那个内核线程在使用CPU 使用了多少?中断CPU 是多少CPU 互联使用率是多少用户 内核级别在CPU 上的调用路径什么类型的停滞周期 谁测量 为什么测量 测量什么 阅读全文
posted @ 2021-05-16 18:50 codestacklinuxer 阅读(229) 评论(0) 推荐(0) 编辑
摘要:这是一般进程的地址空间划分,现在有个问题,如果进程出现使用较多内存,非常明显,在不使用valgrind 工具下 能否看出来大概原因?? top命令我们已经能看出进程的虚拟空间大小(VIRT)、占用的物理内存(RES)以及和其他进程共享的内存(SHR)。但是仅此而已; 但是想知道 更详细的呢?? /p 阅读全文
posted @ 2021-05-14 10:28 codestacklinuxer 阅读(2240) 评论(0) 推荐(0) 编辑
摘要:问题: 100g内存 结果内存有90+g内存被使用! 解决: 1、free -m的时候发现cached 较大,大约使用80G;分析可能和文件缓存在内存中相关 2、在/var 目录下查找大文件 du -lh 发现只有300M 3、那就只能认为是 文件被删除但是 文件还被占用! 导致文件一直缓存在cac 阅读全文
posted @ 2021-05-13 10:02 codestacklinuxer 阅读(238) 评论(0) 推荐(0) 编辑
摘要:dropwatch的内核把kfree_skb分成二类: 人畜无害的调用consume_skb 需要丢包的调用kfree_skb perf record -g -a -e skb:kfree_skb 跟踪kfree_skb 就可以知道 丢包!! 内核通过kfree_skb释放skb,kfree_skb 阅读全文
posted @ 2021-05-12 11:04 codestacklinuxer 阅读(583) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示