aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_file_cache.c
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@nginx.com>2016-10-13 15:50:36 +0300
committerRuslan Ermilov <ru@nginx.com>2016-10-13 15:50:36 +0300
commit5e700a702c8c4ea28a7233fdbf53b8fbd38607bf (patch)
tree39646d2182eaeefd741023f2b60259f47cf564fe /src/http/ngx_http_file_cache.c
parent4009622702d3a6b66db4170a52c18eb3b86065da (diff)
downloadnginx-5e700a702c8c4ea28a7233fdbf53b8fbd38607bf.tar.gz
nginx-5e700a702c8c4ea28a7233fdbf53b8fbd38607bf.zip
Cache: cache manager debugging.
Diffstat (limited to 'src/http/ngx_http_file_cache.c')
-rw-r--r--src/http/ngx_http_file_cache.c32
1 files changed, 23 insertions, 9 deletions
diff --git a/src/http/ngx_http_file_cache.c b/src/http/ngx_http_file_cache.c
index 199a901f5..ac5c10374 100644
--- a/src/http/ngx_http_file_cache.c
+++ b/src/http/ngx_http_file_cache.c
@@ -1920,17 +1920,18 @@ ngx_http_file_cache_manager(void *data)
ngx_http_file_cache_t *cache = data;
off_t size;
- time_t next, wait;
- ngx_msec_t elapsed;
+ time_t wait;
+ ngx_msec_t elapsed, next;
ngx_uint_t count, watermark;
cache->last = ngx_current_msec;
cache->files = 0;
- next = ngx_http_file_cache_expire(cache);
+ next = (ngx_msec_t) ngx_http_file_cache_expire(cache) * 1000;
if (next == 0) {
- return cache->manager_sleep;
+ next = cache->manager_sleep;
+ goto done;
}
for ( ;; ) {
@@ -1947,21 +1948,23 @@ ngx_http_file_cache_manager(void *data)
size, count, (ngx_int_t) watermark);
if (size < cache->max_size && count < watermark) {
- return (ngx_msec_t) next * 1000;
+ break;
}
wait = ngx_http_file_cache_forced_expire(cache);
if (wait > 0) {
- return (ngx_msec_t) wait * 1000;
+ next = (ngx_msec_t) wait * 1000;
+ break;
}
if (ngx_quit || ngx_terminate) {
- return (ngx_msec_t) next * 1000;
+ break;
}
if (++cache->files >= cache->manager_files) {
- return cache->manager_sleep;
+ next = cache->manager_sleep;
+ break;
}
ngx_time_update();
@@ -1969,9 +1972,20 @@ ngx_http_file_cache_manager(void *data)
elapsed = ngx_abs((ngx_msec_int_t) (ngx_current_msec - cache->last));
if (elapsed >= cache->manager_threshold) {
- return cache->manager_sleep;
+ next = cache->manager_sleep;
+ break;
}
}
+
+done:
+
+ elapsed = ngx_abs((ngx_msec_int_t) (ngx_current_msec - cache->last));
+
+ ngx_log_debug3(NGX_LOG_DEBUG_HTTP, ngx_cycle->log, 0,
+ "http file cache manager: %ui e:%M n:%M",
+ cache->files, elapsed, next);
+
+ return next;
}