'sync'와 'async'마운트 옵션의 차이점


42

최종 사용자 관점에서 마운트 옵션 syncasync마운트 옵션 의 차이점은 무엇입니까 ? 이러한 옵션 중 하나로 마운트 된 파일 시스템이 다른 옵션으로 마운트 된 것보다 더 빠르게 작동합니까? 설정되어 있지 않은 경우 어떤 옵션이 기본 옵션입니까?

man mountsync옵션을 사용하면 플래시 메모리의 수명이 단축 될 수 있지만 기존의 지식이 더 이상 사용되지 않을 수 있습니다. 어쨌든 이것은 파티션 //home배치 가 된 기본 하드 드라이브 가 SSD 드라이브 이기 때문에 약간의 문제 입니다.

Ubuntu 설치 프로그램 (14.04)은 파티션에 대한 옵션 sync도 지정 하지 않았지만 옵션 에 의해 설정 되었습니다 . 다음은 추가 라인을 추가했지만 (주석 참조) 설치 프로그램에서 만든 라인의 내용은 변경하지 않았습니다.async/async/homedefaults/etc/fstab

# / was on /dev/sda2 during installation
UUID=7e4f7654-3143-4fe7-8ced-445b0dc5b742 /     ext4  errors=remount-ro 0  1
# /home was on /dev/sda3 during installation
UUID=d29541fc-adfa-4637-936e-b5b9dbb0ba67 /home ext4  defaults          0  2
# swap was on /dev/sda4 during installation
UUID=f9b53b49-94bc-4d8c-918d-809c9cefe79f none  swap  sw                0  0

# here goes part written by me:

# /mnt/storage
UUID=4e04381d-8d01-4282-a56f-358ea299326e /mnt/storage ext4 defaults  0  2
# Windows C: /dev/sda1
UUID=2EF64975F6493DF9   /mnt/win_c    ntfs    auto,umask=0222,ro      0  0
# Windows D: /dev/sdb1
UUID=50C40C08C40BEED2   /mnt/win_d    ntfs    auto,umask=0222,ro      0  0

/dev/sdaSSD 인 경우 마모를 줄이기 위해 async옵션 //home파일 시스템을 추가해야 합니까? 내에서 정의한 추가 파티션을 설정 sync하거나 async옵션을 설정해야합니까 /etc/fstab? SSD 및 HDD 드라이브에 권장되는 방법은 무엇입니까?



@Gnouc 교차 게시에 어떤 문제가 있습니까? 어쨌든, 요청 한대로 Ask Ubuntu에서 게시물을 삭제했습니다.

답변:


49

async의 반대입니다 sync. 거의 사용되지 않습니다. async기본값으로 명시 적으로 지정할 필요는 없습니다.

이 옵션 sync은 해당 파일 시스템의 모든 변경 사항이 즉시 디스크로 플러시됨을 의미합니다. 각 쓰기 작업이 대기 중입니다. 기계식 드라이브의 경우 시스템이 디스크 헤드를 올바른 위치로 이동해야하기 때문에 속도가 크게 저하됩니다. syncuserland 프로세스 와 함께 작업이 완료 될 때까지 기다려야합니다. 반대로, async시스템은 쓰기 작업을 버퍼링하고 실제 쓰기를 최적화합니다. 한편, 사용자 영역에서 프로세스가 차단되는 대신 계속 실행됩니다. (뭔가 잘못되면, close()반환 -1errno = EIO.)

SSD : SSD 메모리가 RAM 메모리에 비해 얼마나 빠른지 모르겠지만 확실히 빠르지는 않기 때문에 sync기계적 디스크 드라이브만큼 나쁘지는 않지만 성능이 저하 될 수 있습니다. 평생 동안, 지혜는 여전히 유효합니다. SSD에 많은 것을 쓰는 것이 그것을 "마모"하기 때문입니다. 최악의 시나리오는 같은 장소를 많이 변경하는 프로세스입니다. 와 sync그들 각각이 가진 반면, SSD, 히트 async(기본값)에 SSD가 대부분 표시되지 않습니다 인해 커널 버퍼링을.

하루가 끝나면에 신경 쓰지 마십시오. sync아마 괜찮을 것입니다 async.


로컬 응용 프로그램이 마운트 된 드라이브를 삭제하고 쓰고있는 경우 (외부 Windows 상자를 가리킴) 기본 비동기 모드가 안전하지 않을 가능성이 있습니까? 시나리오는 폴링 앱으로, 마운트의 한 폴더를보고 하위 폴더를 처리 한 다음 삭제합니다.
HellishHeat

@HellishHeat 여러분이 염두에 두어야 할 시나리오에 대한 충분한 세부 사항이있는 별도의 질문으로이 질문을해야합니다.
카운터 모드

다른 스토리지 계층의 속도는 얼마입니까 : 램은 나노초, 플래시는 마이크로 초 (쓰기의 경우 10, 쓰기의 경우 약 100), 회전 디스크는 밀리 초 (최고의 경우 5ms, 디스크 큐가 백업되고 액세스하는 경우 10-100ms) 임의입니다). 플래시 장치의 단일 위치에 쓰면 커패시터 지원 SRAM에 쓰며 NAND에 완전히 쓰지 않을 수 있습니다. 따라서 마모 또는 속도 영향을 판단하기가 어렵습니다.
Brian Bulkowski 2014 년

이 평균 한 통화에 필요하지 않습니다 않는다 sync거나 fsync또는 fdatasync동기화에 콜 FS를 탑재?
CMCDragonkai

1
@ini로 데이터가 손실 될 수 있습니다 async. 그러나 이것이 문제라면 sync정답이 아닙니다. 성능 불이익 sync은 단순히 엄청납니다.
카운터 모드

5

주의 사항 : 지속적으로 기록되는 마운트 (예 : 중요한 로그, 보안 카메라 녹화 등)가 있고 갑작스런 정전으로부터 보호되지 않는 경우 '비동기식'마운트 옵션을 사용하는 것이 가장 좋은 아이디어가 아닐 수 있습니다. . 레코드가 누락되거나 불완전한 (사용할 수없는) 데이터가 발생할 수 있습니다. 똑똑하지 않은 예 : 도둑이 가게에 들어가서 카메라 전원 케이블을 즉시 자르는 것을 상상해보십시오. 침입의 비디오 녹화가 기록되었지만 디스크 (또는 그 일부)가 대신 메모리에 버퍼링되어 카메라 전원이 꺼지면 디스크에 플러시 / 동기화되지 않았을 수 있습니다.


최신 서버에는 RAID 컨트롤러에 배터리 백업 디스크 캐시가있어 전원이 손실 된 경우에도 데이터 손실을 막을 수 있습니다.
tonioc

비동기가 몇 초 동안 쓰지 않습니까? 대략 몇 초입니까?
Ini

@Ini는 그것이 사용하는 파일 시스템에 달려 있다고 생각합니다.
bd1251252

OS는 종료 할 때 모든 것이 ssd / hdd에 기록되도록해야합니다. 정전의 경우 일부 데이터가 손실 될 수 있습니다. 내가 말하고있는 것이 맞습니까?
Ini

일부 디스크의 배터리 기반 캐시는 실제로 고가의 전문 서버에만있는 전원 손실을 최적화하지 않는 이유가 아닙니다. 모든 사용자가이 기능을 사용할 수있는 것은 아닙니다. 2) 데이터가 디스크 컨트롤러에 전혀 도달하지 않은 상황에서만 저장됩니다. 대부분의 경우 컨트롤러가 데이터를 확인하기 훨씬 전에 OS 캐시에 멈춰서 정전시 데이터가 손실됩니다.
Cray
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.