[nginx] svn commit: r4420 - trunk/src/http/modules
vbart at nginx.com
vbart at nginx.com
Mon Jan 30 10:01:39 UTC 2012
Author: vbart
Date: 2012-01-30 10:01:39 +0000 (Mon, 30 Jan 2012)
New Revision: 4420
Modified:
trunk/src/http/modules/ngx_http_limit_req_module.c
Log:
Limit req: number of cleanup calls reduced.
Doing a cleanup before every lookup seems to be too aggressive. It can lead to
premature removal of the nodes still usable, which increases the amount of work
under a mutex lock and therefore decreases performance.
In order to improve cleanup behavior, cleanup function call has been moved right
before the allocation of a new node.
Modified: trunk/src/http/modules/ngx_http_limit_req_module.c
===================================================================
--- trunk/src/http/modules/ngx_http_limit_req_module.c 2012-01-30 09:41:49 UTC (rev 4419)
+++ trunk/src/http/modules/ngx_http_limit_req_module.c 2012-01-30 10:01:39 UTC (rev 4420)
@@ -182,8 +182,6 @@
ngx_shmtx_lock(&ctx->shpool->mutex);
- ngx_http_limit_req_expire(ctx, 1);
-
rc = ngx_http_limit_req_lookup(lrcf, hash, vv->data, len, &excess);
ngx_shmtx_unlock(&ctx->shpool->mutex);
@@ -385,6 +383,8 @@
+ offsetof(ngx_http_limit_req_node_t, data)
+ len;
+ ngx_http_limit_req_expire(ctx, 1);
+
node = ngx_slab_alloc_locked(ctx->shpool, size);
if (node == NULL) {
More information about the nginx-devel
mailing list