nginx-0.4.1

Igor Sysoev is at rambler-co.ru
Thu Sep 14 19:01:33 MSD 2006


On Thu, 14 Sep 2006, Alexey Polyakov wrote:

> On 9/14/06, Evgeny Stepanischev <se at lixil.ru> wrote:
>
>> >      *)  Добавление:  теперь на Linux nginx для статических запросов
>> >      использует флаг O_NOATIME. Спасибо Yusuf Goolamabbas.
>> 
>> А это зачем?..
>
> Видимо чтобы снизить нагрузку на ФС если она подмонтирована без
> noatime/nodiratime (или вообще поддержка noatime сломана/отсутствует).

Как оказалось, для O_NOATIME нужна CAP_FOWNER capability:
http://www.die.net/doc/linux/man/man7/capabilities.7.html

Прилагамый патч убирает O_NOATIME.


Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
--- src/http/modules/ngx_http_index_module.c
+++ src/http/modules/ngx_http_index_module.c
@@ -239,8 +239,7 @@
             return NGX_HTTP_INTERNAL_SERVER_ERROR;
         }
 
-        fd = ngx_open_file(ctx->path.data, NGX_FILE_RDONLY|NGX_FILE_NOATIME,
-                           NGX_FILE_OPEN);
+        fd = ngx_open_file(ctx->path.data, NGX_FILE_RDONLY, NGX_FILE_OPEN);
 
         if (fd == (ngx_fd_t) NGX_AGAIN) {
             ctx->current = i;
--- src/http/modules/ngx_http_static_module.c
+++ src/http/modules/ngx_http_static_module.c
@@ -125,8 +125,7 @@
         return NGX_HTTP_INTERNAL_SERVER_ERROR;
     }
 
-    fd = ngx_open_file(path.data, NGX_FILE_RDONLY|NGX_FILE_NOATIME,
-                       NGX_FILE_OPEN);
+    fd = ngx_open_file(path.data, NGX_FILE_RDONLY, NGX_FILE_OPEN);
 
     if (fd == NGX_INVALID_FILE) {
         err = ngx_errno;
--- src/os/unix/ngx_files.h
+++ src/os/unix/ngx_files.h
@@ -28,11 +28,6 @@
 #define NGX_FILE_TRUNCATE        O_TRUNC
 #define NGX_FILE_APPEND          O_APPEND
 
-#ifdef O_NOATIME
-#define NGX_FILE_NOATIME         O_NOATIME
-#else
-#define NGX_FILE_NOATIME         0
-#endif
 
 #define ngx_close_file           close
 #define ngx_close_file_n         "close()"


More information about the nginx-ru mailing list