阿弥陀佛
发布时间:2014-02-23 15:48:52
当日志里面的内容太多,文件过大时,我们需要对日志进行切割,方法是通过kill给进程发送信号。kill -USR1 `cat nginx.pid`这样做是向nginx发送一个信号,nginx得到信号之后,会重新新建一个access.log 文件。因而可以实现在线的重新的创建一个新的日志文件。#define NGX_SHUTDOWN_SIGNAL QUIT#def.........【阅读全文】
发布时间:2014-02-22 22:52:01
ngx_http_limit_req 模块的作用是限制request的接收的速率。配置项分为两种,一种是对于全局的设置。在http域内设置limit_req_zone内存区域。 limit_req_zone $binary_remote_addr zone=one:1K rate=1r/s;这里使用binary_remote_addr的意义在于可以有效地节省内存,一个binary_remote_addr是定长的,长度为.........【阅读全文】
发布时间:2014-02-21 15:42:30
nginx有一些全局变量,Nginx希望所有的进程都可以共享这些变量。共享变量方案有三种:1.首选mmap的匿名映射2.没有1,尝试mmap映射到/dev/zero上3.最后尝试使用共享内存 shmget从内存中申请一个内存区域。我认为这可能是从性能上考虑,率先使用mmap的匿名映射方法。.........【阅读全文】
发布时间:2014-02-20 15:07:39
使用gdb调试跟踪nginx的方法与跟踪普通的方法不同。调试的方法是1.开启nginx,此时nginx的进程已经处于后台运行。2. gdb -p +worker进程的pid 可以调试worker进程,当然也可以利用这种方法调试他的父进程,但是父进程并没有真正的处理实际的业务。3. 为这个进程设置断点。可以发现,nginx的mas.........【阅读全文】
发布时间:2014-02-20 09:09:21
之前一直困惑,ext4 作为一个存储系统,如何处理来自用户的write过程调用,ext4是什么进程模型。查看文件系统的源代码发现,作为一个文件系统,他只需要完成相应的文件系统的接口就可以,并不像应用软件一样需要有自己的进程。当执行普通的写的时候,只是让用户态的进程陷入到了内核态而已,如下图所示:当我打开一个vim.........【阅读全文】