크기가 작고 갯수가 많은 파일 작업(복사/삭제/이동 등)에 적합한 매체로 어떤것이 있을지 궁금합니다.

   조회 4701   추천 0    

안녕하세요.


제목과 같은 궁금증이 생겨서 질문 드립니다.


지난번에 질문 남겼던것과 연결되는 내용입니다.

https://www.2cpu.co.kr/QnA/871712 )



다음 작업을 준비하면서 파일 정리를 하고 있다가 속도전에 조금 나른함을 느끼다가 질문 남깁니다.


위는 전체 작업풀의 1/20~30 정도 되며 960 Pro NVMe 에 저장되어 있습니다.


크기가 작고 수량이 많은 파일을 대량으로 복사/삭제/이동 .. 그리고 나중에는 압축과 압축해제까지 하려니 속도가 너무 느려서 구닥다리 960 Pro 보다 더 좋은 매체가 있을지 궁금해서 글 남깁니다.


참고로 제가 시도 해 본 방법으로는 기본이 되는 파일을 램디스크에 넣고 작업하는것인데 무엇이 문제인지 대용량 램디스크가 생성되지 않는 오류가 있어서 가장 빠를 수 있는 방법중 하나라고 생각한 방법을 포기한적이 있습니다.


수백GB~TB 정도의 대용량으로 설정하더라도 '공간 생성 실패'가 없는 램디스크 툴을 추천 해주셔도 좋고 구닥다리 매체를 대체할 더 빠르고 더 비싼(응..?ㅠ) 매체를 추천 해주셔도 좋습니다.


감사합니다.

짧은글 일수록 신중하게.
흑기사 2023-01
200G 데이터를 램디스크에요? 램 256~512G 이상 되시나요? 일반 데탑이나 노트북은 지금 기준으로 128G 정도가 한계입니다.
그이상의 램을 달고 싶다면 제온이나 에픽에 ECC-REG 램이어야 가능한데 지금 사용중인 시스템 사양을 모르겠네요.
작업 성격상 NVMe SSD에서 작업하고 하드 복사할때는 SSD상에서 1개 파일로 압축까지 한 다음 복사하는게 가장 빠르겠지만 이미 그렇게 하고 계시고요.

이이상 속도 올리려면 램 늘리거나 NVMe RAID 다는 방법 둘중 하나인데 첫번째는 지금 쓰시는게 제온, 에픽일 경우만 가능하고. 두번째는 일반 데탑도 가능하나 구성 확인해야 합니다(CPU 직결 레인을 외장그래픽카드가 다 쓴다면 안하는게 나음).
     
CPU4 2023-01
작업하려는 컴퓨터의 메모리는 1.5TB 입니다
          
제온프로 2023-01
램디스크를 1TB 정도 잡아주시고.. 그걸 활용하여 사용하세요.

그리고 970 Pro x 4개를 RAID 0 로 묶을수 있습니다.
시스템 확인해 보세요..(VROC 확인)

그러면 속도가 4배로 증가하여 메모리 많큼 빨라집니다.

***
***
***
정확한 사양과 작업.  디테일한 정보가 필요합니다.
바꿔서도 생각해 보세요.
뜬금없는 내용.  언제엔가 정확한 얘기가 서로 될까요..
이런식의 대충 내용. 대충대화는..

답으로 가기 힘듭니다.
          
흑기사 2023-01
사양이 안적혀 있어서 데스크탑인줄 알고 답변을 달았네요. 사용중인 램디스크 프로그램이 생성한 디스크는 담을 수 있는 파일수에 제한이 있는것으로 보이네요.
다른 램디스크 프로그램으로 바꿔서 해보시는 것이 좋으실듯 합니다.
저장장치에 생성하는 파일시스템도 담을 수 있는 파일 수에 제한이 있는 것들도 있는데 이것과 유사합니다. 파일수 많아지면 공간 있어도 못만들고 이거 모르는 사람들이 왜이래??? 난리치는 경우 많이 있었습니다.
페선생 2023-01
복사본 두고 한파티션 내에서 이동 위주로 작업 하는게 가장 빠를듯
     
CPU4 2023-01
복사본을 만드는 그 과정이 너무 오래 걸려서 여쭤봤습니다.
          
페선생 2023-01
그럼 방법은 그냥 이동으로 정리하는게 ^^
램디스크를 쓰더라도 이동해서 정리하고 다시 써야 하니까 ^^
anti2cpu 2023-01
램디에 비하면
빨라봤자 ssd라
     
CPU4 2023-01
SSD중에서도 더 빠른 제품이 어떤게 있을까 하고 여쭤봤습니다.ㅠㅠ
찬이 2023-01
그냥 다른 NVMe 드라이브와 FastCopy 프로그램을 쓰면 훨신 낫습니다.
리눅스의 경우 tar 로 묶으면서 동시에 풀어서 빠르게 할 수 있는데, 그 이유가 버퍼를 쓰면서 disk 성능을 sequential 하게 풀로 쓸 수 있게 때문입니다.
FastCopy 가 동일한 역할을 해 줍니다.
많은 파일 복사가 느린 이유는 IO 성능보다는 논리적인 문제가 더 큽니다.
     
CPU4 2023-01
질문글에서 말씀드린 복사/이동 등의 작업이 일반적인 경우와 다른 부분이 있다보니 상용품을 사용하기 보다는 알고리즘을 이해하고 같거나 비슷한 알고리즘으로 만들어서 사용해야 되는 경우가 많습니다.

그래도 혹시 모르니 FastCopy에 대해서 찾아보겠습니다.

IO Bandwidth나 CPU Usage는 충분한데 복사가 느린 경험을 많이 해봤는데 명확한 원인은 파악하지 못하고 있습니다.ㅠ
          
찬이 2023-01
이전 질문 글을 보니 1:n 복사이면 지원하는 상용 프로그램을 찾기엔 어렵거나 없을거 같네요..
위의 원리를 적용하여 간단히 하나 만드시는 수밖에 없을거 같습니다.ㅠㅠ
좀 더 쉽게 가려면 윈도우에서 bash 동작할 수 있게 해서 bash 스크립트로 구현하는것도 방법일거 같습니다.
$ tar 묶고 | 다중 파이프로 | 여러 디렉터리에 풀고
               
CPU4 2023-01
답변 감사합니다.

그런데 bash script 너무 어려워요.ㅠ

그냥 C로 프로그램을 만들어서 써야 되나 싶습니다.ㅠㅠ
                    
찬이 2023-01
편하신 걸로 만드심 됩니다.ㅎㅎ
중요한건 버퍼링이니까요.
윈도우 복사는 하나하나 복사하기 때문에 아무리 IO 성능이 높아도 복사 자체에서 병목이 생길수밖에 없습니다.
source disk 입장에서는
| 읽고 | dest에 복사될때까지 기다리고 | 다시 읽고.. |
이런 식이다보니 성능이 반토막이 되어버립니다.
느루 2023-01
NVME 드라이브를 레이드로 묶으면 I/O 성능이 배수는 아니더라도 증가하기는 하더군요.

저는 부족한 I/O 성능을 가진 타 장치로 복사할 때 그냥 압축-전송-압축해제를 했습니다...
     
CPU4 2023-01
RAID도 좋은 선택지중 하나라고 생각합니다.

우선은 성능이 월등한 새로운 제품이 있을까 궁리부터 하고 있긴 한데 어떤게 나을지 모르겠습니다.ㅠ
간장게장 2023-01
Optane ssd를 사용해 보세요.

900p, 905p, p4800x 등이 있고, PCIe 4.0을 지원하는 것으로는 p5800x가 있습니다.

NAND 기반의 일반용 ssd는 burst 성능은 좋은데, 지속 성능은 낮습니다. 기업용 ssd는 지속 성능이 월등하지만 spec에 나온 성능은 높은 queue depth에서나 나타납니다. 더구나 raid로 묶은 ssd는 훨씬 더 높은 queue depth에서나 기대한 성능을 보입니다.

Optane 기반의 ssd 역시 높은 queue depth에서 좋은 성능을 보이지만 낮은 queue depth에서도 NAND기반 ssd에 비해 월등한 성능을 보입니다.
     
김준연 2023-01
+10

램디스크가 아닌 이상에는 NAND 기반의 디스크보다 액세스 타임을 개선할 수 있는 가장 확실한 방법은 Optane입니다.
간장게장 2023-01
먼저번 올리신 글에서...

--------
대략 20.6만개의 파일을 복사하는데 1~2시간은 걸리네요.
파일을 최대 약 2억개 복사해야 하는데 일일이 하려니 죽겠습니다.ㅠㅠ
--------

크기는 다르지만 저는 robocopy로 20만개 가까이 되는 파일을 복사하는데 1분 채 안 걸렸습니다.

그 과정을 한번 설명하겠습니다.

크기 : 19.5GB (20,997,314,493 바이트)
디스크 할당 크기 : 19.8GB (21,295,661,056 바이트)
내용 : 파일 198,782, 폴더 52,476

이것은 제가 사용하는 Windows Server 2022 시험판의 c:\windows 디렉토리 내용입니다. 파일 갯수가 20만개 좀 안됩니다.

시스템 디스크가 아닌 Intel P3600 1.6TB U.2 NVMe SSD(t:\windows)에서 Micron 9100 Pro 3.2TB U.2 SSD(r:\windows)로 디렉토리를 카피해 보았습니다.
(1) robocopy t:\windows r:\windows /s /e
기억이 잘 나지 않는데, 무쟈게 오래 걸렸습니다. 40분 넘게 걸린 것 같아요.

저렇게 하면 복사하는 파일들을 쓸데 없이 화면에 줄줄이 뿌려줍니다.

같은 Micron 9100 Pro 3.2TB U.2 SSD 내에서 디렉토리를 카피했습니다. 원래 이렇게 같은 디스크 내에서 읽어서 쓰면 다른 디스크에서 카피하는 것보다 시간이 더 걸리겠지요.
(2) robocopy r:\windows r:\windows2 /s /e >null
그런데 이게 5분 42초 밖에 걸리지 않았습니다.(캐시 영향을 받지 않기 위해 다시 부팅하여 복사한 것임)
훨씬 빠르게 끝났습니다. 이유는 화면 출력을 생략했기 때문입니다.

이번에는 /mt 옵션을 주어 보았습니다.
(3) robocopy r:\windows r:\windows3 /s /e /mt:128 >null
55초 걸렸습니다. robocopy에서 /mt 옵션은 thread 숫자를 늘려주는 옵션입니다. 동시에 여러 thread의 copy를 하는 옵션입니다. 이 옵션은 cpu 코어 갯수나 thread 갯수와는 아무 상관 없습니다.(인터넷에 잘못 설명된 글들이 있습니다.) thread 숫자를 늘려 주었을 때 효과는 SATA에서는 적고 SAS에서는 크고 NVMe에서는 더 큽니다. SATA 인터페이스는 queue depth가 작습니다. 성능이 낮은 SSD에서는 그 효과가 작고, 고성능 SSD에서는 그 효과가 큽니다. 매우 고성능인 SSD는 /mt:128 옵션을 준 robocopy 명령어를 창 여러개 띄워서 동시에 실행해도 꽤 빠르게 실행해 냅니다.

대략 20.6만개의 파일을 복사하는데 1~2시간이 걸렸다고 하시니, robocopy로 디렉토리 하나를 복사해 보세요. (1) (2) (3) 방식으로 하여 한번 비교해 보세요.


-----------
제가 원하는 것은 원본 디렉터리의 파일을 대상 디렉터리의 하위에 있는 특정 문자열을 가지는 디렉터리에도 복사 해주는 프로그램입니다.
....
robocopy는 디렉터리를 리스트화 하여 처리하면 될것 같기는 한데 그렇게 하려니 차라리 전용 프로그램을 만드는게 낫겠다 싶기도 하고요.
--------

새로 robocopy 이상의 성능을 가지는 프로그램을 작성하는 것이 그리 쉽지는 않을 것 같습니다.

저라면

한번 작업을 한다면
dir <대상 디렉토리> /s > list1.txt
이렇게 해서 디렉토리 리스트를 얻고, 이것을 엑셀로 불러들여 특정 문자열을 가지는 줄만 추려내 그것을 destination으로 하는 robocopy 배치파일을 만들어 실행하겠습니다. robocopy 명령어를 특정 문자열을 가지는 디렉토리 숫자만큼 실행시키는 것입니다.

여러번 작업을 해야 한다면 프로그래밍 언어로 위와 같은 robocopy 배치파일을 만드는 간단한 프로그램을 작성하여 그 배치파일을 실행

오랫동안 많은 작업을 해야 한다면 NVMe SSD 중에서 두꺼운 것을 권합니다.
M.2 NVMe : 제일 얇은데 권하지 않음
7mm U.2 : M.2 보다는 훨씬 좋지만 두꺼운 것보다는 덜 좋음
15mm U.2 : 좋음(15mm 끼리도 기종에 따라 성능 차이는 많이 납니다.)

보통 U.2 NVMe SSD들은 두께가 15mm입니다. 그런데 얇은 7mm 짜리들도 있습니다.
삼성 : PM9xx는 7mm 짜리이고, PM17xx는 15mm 짜리
Micron : 9000대는 15mm, 7000대는 7mm
Western Digital(HGST) : SN840은 15mm, SN640은 7mm
7mm 짜리들도 spec은 그럴듯 하고 무겁지 않은 용도로 사용할 때는 좋습니다. 무거운 용도로 사용할 때는 15mm에 비해 표가 납니다.


QnA
제목Page 2014/5710
2014-05   5159284   정은준1
2015-12   1693551   백메가
2017-02   4400   박문형
2007-03   4400   박성훈
2016-07   4400   회원K
2016-04   4400   김익태
2017-09   4400   hater
2016-09   4400   장동건2014
2021-03   4400   무쏘뿔처럼
2016-04   4400   iwill
2015-09   4400   topschool
2007-01   4400   이정표
2021-11   4400   다함께싸다구
2016-04   4401   이규민
2016-08   4401   컴알못
2015-07   4401   linesis
2018-07   4401   전설속의미…
2016-12   4401   NeOpLE
2017-06   4401   노인님
2007-03   4401   김경수
2016-04   4401   전주갈매기
2017-12   4401   신은왜