摘要:
incr没有初始值设置会失败 incr 不改变变量的过期时间 阅读全文
摘要:
最近一直在做openresty相关开发,使用lua优化,优化了几次,发现最大的优化是table的优化。 table优化的大原则是尽量少创建表,表创建多了毕竟耗性能。这里的创建,指新创建和扩表引起的创建。在往table插入数据的过程中,如果table不够用,会扩大两倍,所以,一个1030项数据,会经过 阅读全文
摘要:
什么是LuaJIT 标准 Lua 出于性能考虑,也内置了虚拟机,所以 Lua 代码并不是直接被解释执行的,而是先由 Lua 编译器编译为字节码(Byte Code),然后再由 Lua 虚拟机执行。 LuaJIT 的解释器会在执行字节码的同时,记录一些运行时的统计信息,比如每个 Lua 函数调用入口的 阅读全文
摘要:
lua resty core 是把 lua nginx module 已有的部分 API,使用 FFI 的模式重新实现了一遍。 使用FFI实现的代码更为简洁易懂,而且因为可以被JIT追踪和优化,性能更高。 启动lua resty core的方式也很简单,只需要在 init_by_lua 阶段,增加一 阅读全文
摘要:
最近遇到两个编译问题,着实费了一番功夫。 container_of 问题 我在一个地方,定义了container_of的宏,却屡次出现编译错误 宏定义如下: 报错如下: 一开始谷歌连不上,用百度查出来的资料都是说.h文件包含有问题,不过我仔细检查了我的文件包含,并没有问题。 后来谷歌可以了,搜索后在 阅读全文
摘要:
nc是很好用的命令,可以用来模拟http请求 这样,就能模拟http请求,向www.test.com的80端口请求,比较要注意的是\r\n和\r\n\r\n的使用 阅读全文
摘要:
wrk的源码在github上,地址是https://github.com/wg/wrk.git,下载之后解压,在其目录下运行make命令安装,之后可直接使用 wrk参数: 结果 运行示例: wrk 还支持使用 H “key:value"的方式指定头部,所以测试些默认是开启长连接的服务器时,我们可以通 阅读全文
摘要:
在开发中,coredump会输出珍贵的调试信息,但在linux下默认是关闭的,所以,要手动去把它打开。 执行以下脚本,退出后重新登录即可,重新登录后执行ulimit c,如果出来的是unlimited,就是已经打开了,且不限制coredump生成的core文件大小 阅读全文
摘要:
NGX_HTTP_POST_READ_PHASE 在接收到完整的HTTP头部后处理的HTTP阶段 NGX_HTTP_SERVER_REWRITE_PHASE 在将请求的URI与location表达式匹配前,修改请求的URI NGX_HTTP_FIND_CONFIG_PHASE 根据请求URI寻找匹配 阅读全文
摘要:
今天发现进程一直被杀掉,几经排查,最后确认是被oom killer杀掉了。 在内核检测到系统内存不足后,会触发oom killer,挑选最占用内存的进程杀掉。 Linux 分配内存策略 Linux内核根据应用程序的要求来分配内存,由于进程实际上并不会将分配的内存全部使用,所以,为了提高性能,内核采用 阅读全文