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
명령은 " nice
IO용" 입니다.그리고 다른 IO 우선순위로 명령을 실행하므로 디스크를 사용하려는 다른 프로세스에 양보하거나 양보하지 않습니다.
ionice -c 3 tar xf ...
명령은 "유휴" 우선순위로 실행되므로 tar
다른 사람이 디스크를 사용하고 싶어하지 않을 때만 디스크를 사용합니다. 이렇게 하면 다른 프로세스를 방해하는 것을 방지할 수 있습니다.
이 경우 여러 추출을 병렬로 실행해도 큰 이점이 없습니다. tar 파일은 단지 데이터와 일부 헤더를 연결한 것이므로 읽고 쓰는 것 외에는 할 일이 많지 않습니다. 그것가능한이는 다른 디스크나 일부 SSD를 사용하는 경우 유용할 수 있습니다.