2017-10-09 6 views
2

드라이브에 조각화 문제가 있습니다. 다른 폴더에 50000 개가 넘는 파일을 생성하는 프로그램이 있는데, 각 파일은 시간이 지남에 따라 커집니다. 각 파일의 크기는 약 500MB이며 파일을 빨리 읽어야합니다. 내가 직면 한 문제는 각 파일이 드라이브에 퍼지고 조각 모음이 4 주 이상 걸릴 것이라는 점입니다.파일 조각화 방지

각 파일 간의 간격이 동일한 sice가되도록 드라이브의 각 파일을 확산시키는 파일 시스템에 대해 들었습니다. 나는 그 파일 시스템을 인터넷에서 검색했지만 아무것도 찾을 수 없었다.

내 프로그램이 Java로 작성되었으므로 드라이브의 특정 바이트 위치에 파일 시작 부분을 설정할 수있는 방법이있을 수 있습니다.

누군가가이 문제에 직면 할 수 있다면 기쁘게 생각합니다.

+4

Java를 사용하여 수행 할 수있는 작업은 없습니다. 사실 Java는 프로그래머가 시스템 의존적 인 것들을 사용하지 못하도록하기위한 것입니다. –

답변

1

각 파일 간의 간격이 동일하게되도록 드라이브의 각 파일을 분산시키는 파일 시스템에 대해 들었습니다. 나는 그 파일 시스템을 인터넷에서 검색했지만 아무것도 찾지 못했습니다.

는 존재하지 않는하지 않았기 때문에 대부분의 경우 ...

그러나 우리는 RAID 시스템 당신의 고통을 완화 할 수 (저렴한 디스크의 빠른 배열)가 ...

0

은 디모데가 말했듯 , 당신은 자바를 사용하여 그 수준에 도달 할 수 없습니다.

나는 그 파일 시스템을 듣지도 않았지만 많은 논리를 가지고 있지 않다.

아마도 텍스트를 저장하는 경우 데이터를 바이너리 크기로 저장하는 NoSQL 데이터베이스 (예 : MongoDB)를 사용할 수 있습니다. 아마 당신은 좋은 속도를 얻을 것이고 자바 커넥터는 사용하기 쉽습니다.

0

ext4와 같은 Linux 파일 시스템을 사용하십시오. 디스크 조각화가 매우 낮지 만 어쨌든 디스크 조각 공간이 충분해야합니다.

0

또한이 작업을 수행하는 파일 시스템에 대해서도 알지 못합니다. 그러나 도움이 될만한 정보가 있습니다.

SSD를 사용했다면 성능상의 이유로 읽기 쉽지 않을 것입니다. SSD는 데이터를 청크 (예 : NAND 플래시 페이지, 16KB)에 저장합니다. 사용 된웨어 레벨링 알고리즘으로 인해 항상 분산 된 순서로 저장됩니다. 이는 하드 디스크가 실제로 어떻게 작동하는지와 매우 다릅니다. SSD의 페이지는 매우 평행하게 액세스됩니다. 결과적으로 SSD로 읽기 성능에 미치는 단편화의 영향을 훨씬 줄일 수 있습니다. 단편화는 여전히 쓰기/삭제에 대한 벌점이 있습니다.

RAID는 Timothy가 언급 한 것처럼 읽기 성능을 향상시킵니다.