Cache: cache manager debugging.

This commit is contained in:
Ruslan Ermilov 2016-10-13 15:50:36 +03:00
parent 4009622702
commit 5e700a702c

View File

@ -1920,17 +1920,18 @@ ngx_http_file_cache_manager(void *data)
ngx_http_file_cache_t *cache = data; ngx_http_file_cache_t *cache = data;
off_t size; off_t size;
time_t next, wait; time_t wait;
ngx_msec_t elapsed; ngx_msec_t elapsed, next;
ngx_uint_t count, watermark; ngx_uint_t count, watermark;
cache->last = ngx_current_msec; cache->last = ngx_current_msec;
cache->files = 0; cache->files = 0;
next = ngx_http_file_cache_expire(cache); next = (ngx_msec_t) ngx_http_file_cache_expire(cache) * 1000;
if (next == 0) { if (next == 0) {
return cache->manager_sleep; next = cache->manager_sleep;
goto done;
} }
for ( ;; ) { for ( ;; ) {
@ -1947,21 +1948,23 @@ ngx_http_file_cache_manager(void *data)
size, count, (ngx_int_t) watermark); size, count, (ngx_int_t) watermark);
if (size < cache->max_size && count < watermark) { if (size < cache->max_size && count < watermark) {
return (ngx_msec_t) next * 1000; break;
} }
wait = ngx_http_file_cache_forced_expire(cache); wait = ngx_http_file_cache_forced_expire(cache);
if (wait > 0) { if (wait > 0) {
return (ngx_msec_t) wait * 1000; next = (ngx_msec_t) wait * 1000;
break;
} }
if (ngx_quit || ngx_terminate) { if (ngx_quit || ngx_terminate) {
return (ngx_msec_t) next * 1000; break;
} }
if (++cache->files >= cache->manager_files) { if (++cache->files >= cache->manager_files) {
return cache->manager_sleep; next = cache->manager_sleep;
break;
} }
ngx_time_update(); 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)); elapsed = ngx_abs((ngx_msec_int_t) (ngx_current_msec - cache->last));
if (elapsed >= cache->manager_threshold) { 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;
} }