Linux - Tar를 추출하면 서버 속도가 크게 느려집니다.

Linux - Tar를 추출하면 서버 속도가 크게 느려집니다.

12TB의 스토리지를 갖춘 웹 서버가 있습니다(아래 사양 참조). TAR로 압축된 대량의 csv 파일을 서버로 옮긴 다음 서버에서 추출하고 있습니다. 문제는 TAR 파일을 추출할 때 서버가 매우 느려지고 거의 사용할 수 없게 된다는 것입니다. 나는 미친 짓을 하지 않으며 보통 한 번에 2-4개의 추출을 실행합니다. 그러나 한두 개만 실행해도 서버 속도가 크게 느려질 수 있습니다. 사람들이 사이트를 사용하고 싶어하는 동안 TAR 파일을 업로드하고 추출할 예정이지만 지금은 두 가지를 동시에 수행할 수 없기 때문에 이것은 나에게 큰 문제가 될 것입니다. 저는 Linux와 이 커뮤니티를 처음 접했습니다. 따라서 더 유용한 정보를 제공할 수 있으면 알려주시면 이 게시물을 업데이트하겠습니다.

디스크가 병목 현상을 일으키는 것 같아요?

그렇다면 tar 추출 디스크 사용량을 제한하거나 다른 모든 것의 우선순위를 지정할 수 있습니까?

입출력 통계:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.15    0.56    0.40   14.83    0.00   84.06

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0             0.00         0.00         0.00       1907          2
sda             155.19       787.23      1484.89  604305327 1139862930
sdb             154.49       765.39      1493.48  587544552 1146456242
sdc             153.82       759.91      1485.53  583338594 1140353662
md4            1041.52      1861.40      4425.45 1428880721 3397151904
md3               4.78        46.70        11.08   35850458    8501904
md2               0.00         0.00         0.00       3641         98

맨 위:

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
7194 root      20   0       0      0      0 D   5.0  0.0   0:17.38 
13811 user1  20   0  121272   1620   1464 D   4.3  0.0   0:02.20 tar

서버 사양:

Intel Atom C2750, 8c/8t - 2.4GHz/2.6GHz, 16GB DDR3 ECC 1600MHz

답변1

이것ionice명령은 " niceIO용" 입니다.그리고 다른 IO 우선순위로 명령을 실행하므로 디스크를 사용하려는 다른 프로세스에 양보하거나 양보하지 않습니다.

ionice -c 3 tar xf ...

명령은 "유휴" 우선순위로 실행되므로 tar다른 사람이 디스크를 사용하고 싶어하지 않을 때만 디스크를 사용합니다. 이렇게 하면 다른 프로세스를 방해하는 것을 방지할 수 있습니다.

이 경우 여러 추출을 병렬로 실행해도 큰 이점이 없습니다. tar 파일은 단지 데이터와 일부 헤더를 연결한 것이므로 읽고 쓰는 것 외에는 할 일이 많지 않습니다. 그것가능한이는 다른 디스크나 일부 SSD를 사용하는 경우 유용할 수 있습니다.

관련 정보