上一页 1 ··· 42 43 44 45 46 47 48 49 50 ··· 64 下一页
摘要: 查一个问题:结果看了一下软中断以及系统 所耗cpu,心中满是伤痕啊 perf 结果一眼可以看到:主要是锁 那么这个lock 是用来干什么的呢?? A:TCP socket的使用者有两种:进程(线程)和软中断。同一时间可能会有两个进程(线程),或位于不同CPU的两个软中断,或进程(线程)与软中断访问同 阅读全文
posted @ 2020-08-27 22:32 codestacklinuxer 阅读(890) 评论(0) 推荐(0) 编辑
摘要: https://cloud.tencent.com/developer/article/1150971 前言 说到TCP协议,相信大家都比较熟悉了,对于TCP协议总能说个一二三来,但是TCP协议又是一个非常复杂的协议,其中有不少细节点让人头疼点。本文就是来说说这些头疼点的,浅谈一些TCP的疑难杂症。 阅读全文
posted @ 2020-08-26 20:57 codestacklinuxer 阅读(304) 评论(0) 推荐(0) 编辑
摘要: skb_shinfo(head)->frag_list skb_shinfo(head)->frags[]能区分开来吗???结论就是: frags[] are for scatter-gather i/o buffers --nr_frags 和 frags 用于支持 Scatter/Gather 阅读全文
posted @ 2020-08-26 20:57 codestacklinuxer 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 如何优雅的关闭关闭这个fd , 如果只是一个简单的fd 直接调用close 就行, 但是如果要是一个框架 那就接到 资源回收复用 内存泄漏等问题; 来看看 ngx 是用怎样的思路处理 事务结束动作; 每个HTTP请求都有一个引用计数,每派生出一种新的会独立向事件收集器注册事件的动作时(如ngx_ht 阅读全文
posted @ 2020-08-16 19:15 codestacklinuxer 阅读(846) 评论(0) 推荐(0) 编辑
摘要: 在解析完 http 请求报文后, 需要发出响应报文, 那么ngx 框架 提供了那些通用接口呢?如果自己设计将所用的模块的响应接口合并起来 你会怎么设计呢?? 响应头过滤函数主要的用处就是处理HTTP响应的头,可以根据实际情况对于响应头进行修改或者添加删除。 响应头过滤函数先于响应体过滤函数,而且只调 阅读全文
posted @ 2020-08-16 17:31 codestacklinuxer 阅读(840) 评论(0) 推荐(0) 编辑
摘要: HTTP 处理数据包, 有的业务不需要,此时只需要将数据包文读取后丢弃, 但是ngx 为什么还要提供一个丢弃接口呢???解决了什么问题?? 对于HTTP模块而言,放弃接收包体就是简单地不处理包体了,可是对于HTTP框架而言,并不是不接收包体就可以的。因为对于客户端而言,通常会调用一些阻塞的发送方法来 阅读全文
posted @ 2020-08-16 16:55 codestacklinuxer 阅读(167) 评论(0) 推荐(0) 编辑
摘要: HTTP包体的长度有可能非常大,不同业务可能对包体读取 处理不相同, 比如waf, 也许会读取body内容或者只是读取很少的前几十字节。所以根据不同业务特性,对http body 数据包处理方式不同,nginx核心本身不会主动读取请求体,这个工作是交给请求处理阶段的模块处理,ngx 里面目前提供了接 阅读全文
posted @ 2020-08-16 13:09 codestacklinuxer 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 在处理完http的头部信息后 然后在 处理request-body信息ngx_http_process_request ngx_http_process_request_headers(ngx_http_process_request_header)头部行解析完毕后调用函数ngx_http_proc 阅读全文
posted @ 2020-08-11 23:03 codestacklinuxer 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 简要而说:accept 到连接后 根据fd 构建一个connection 由于是 http ; 重新封装为http-connection;同时设置fd的读回调; 回调函数根据是否是https/http 进行区别 ngx_http_init_connection(ngx_connection_t *c 阅读全文
posted @ 2020-08-10 21:27 codestacklinuxer 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 首先看下 连接池的获取以及释放 ngx_connection_t * ngx_get_connection(ngx_socket_t s, ngx_log_t *log) //从连接池中获取一个ngx_connection_t { ngx_uint_t instance; ngx_event_t * 阅读全文
posted @ 2020-08-10 00:23 codestacklinuxer 阅读(129) 评论(0) 推荐(0) 编辑
上一页 1 ··· 42 43 44 45 46 47 48 49 50 ··· 64 下一页