nginx 로그 로 인해 IO 부하 가 비교적 높 습 니 다. 어떻게 처리 합 니까?

1622 단어 nginx로그
Nginx 를 사용 하여 로 그 를 수집 합 니 다. 방 문 량 이 많 고 수 집 된 데 이 터 를 디스크 파일 에 직접 기록 할 때 디스크 IO 가 너무 높 아 기계 가 직접 끊 습 니 다.
디스크 IO 작업 을 줄 이기 위해 메모리 파 티 션 처럼 로 그 를 씁 니 다.그러나 로 그 량 이 너무 많아 서 메모 리 를 가득 채 우기 쉽다.
Nginx 는 로그 압축 기능 을 지원 합 니 다. 구체 적 으로 다음 과 같 습 니 다.
access_log path format gzip[=level] [buffer=size] [flush=time];

If either the buffer or gzip (1.3.10, 1.2.7) parameter is used, writes to log will be buffered.
 The buffer size must not exceed the size of an atomic write to a disk file. For FreeBSD this size is unlimited

When buffering is enabled, the data will be written to the file:
  • if the next log line does not fit into the buffer;
  • if the buffered data is older than specified by the flush parameter (1.3.10, 1.2.7);
  • when a worker process is re-opening log files or is shutting down.

  • If the gzip parameter is used, then the buffered data will be compressed before writing to the file. The compression level can be set between 1 (fastest, less compression) and 9 (slowest, best compression). By default, the buffer size is equal to 64K bytes, and the compression level is set to 1. Since the data is compressed in atomic blocks, the log file can be decompressed or read by “zcat” at any time.
    Example:
    
    access_log /path/to/log.gz combined gzip flush=5m;
    For gzip compression to work, nginx must be built with the zlib library.

    nginx 는 압축 후 로 그 를 쓰 는 것 을 지원 합 니 다. 이 기능 을 사용 하면 로그 파일 을 메모리 파 티 션 에 두 고 디스크 IO 작업 을 줄 일 수 있 습 니 다.그리고 로그 폴 더 를 정기 적 으로 디스크 에 기록 하거나 로그 처리 클 러 스 터 로 전송 합 니 다.

    좋은 웹페이지 즐겨찾기