mirror of
https://github.com/nginx/nginx.git
synced 2025-02-25 18:55:26 -06:00
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.
This commit is contained in:
parent
8dab3b5a39
commit
73d0b6a721
@ -182,8 +182,6 @@ ngx_http_limit_req_handler(ngx_http_request_t *r)
|
||||
|
||||
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 @@ ngx_http_limit_req_lookup(ngx_http_limit_req_conf_t *lrcf, ngx_uint_t hash,
|
||||
+ 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) {
|
||||
|
Loading…
Reference in New Issue
Block a user