fstab에서 "커밋"증가의 장점 / 단점


14

과거에 많은 불분명 한 시스템 최적화를 수행했지만 powertopUSB 포트를 autosuspend으로 설정 하여 영구적 인 절전 모드로 전환하고 더 높은 스왑 피스 의 이점을 실현 한 후 USB 포트를 설정해야한다고 말한 후 대부분을 제거 했습니다. .

그러나 오늘을 보면서 // home/etc/fstab 옵션 commit=60을 설정 한 것으로 나타났습니다 . 이것은 디스크에 쓰는 양을 줄이고 배터리를 절약하기 위해 랩톱에 최적화 된 것을 기억합니다. 그러나 나는 이것이 데이터 손실을 일으킬 수 있다고 우려했습니다 (때로는 배터리가 분리 된 다음 부팅시 몇 개의 고아 inode에 대해 알려줍니다).fsck

이 옵션에 대한 설명을 검색하는 동안 다음 설명에 도달했습니다 (두 번째는 이전의 이해와 모순되는 것 같습니다).

$ man mount | awk '/commit=/,/^$/'
commit=nrsec
    Sync all data and metadata every nrsec seconds. The default value is 5 seconds.
    Zero means default.

https://forums.gentoo.org/viewtopic-p-4088752.html

commit = 60은 초과 읽기 쓰기의 "즉시"(기본값 5 초) 우선 순위를 중지하고 몇 초 후에 쓰기를 캐시합니다. 이는 읽기와 쓰기가 혼합 된 대량의 상황에서 유용하며, 사용자가 읽기를 우선시하기를 원하므로 읽기를 계속하기 전에 쓰기가 완료되기를 기다리는 동안 일시 정지하지 않고 프로세서를 사용 중 상태로 유지할 수 있습니다.

내가 본 실제 예는 그놈 풀다운 메뉴가 나타날 때까지 몇 초 동안 기다리는 것입니다. 그 이유는 디스크 쓰기 작업이 바빴 기 때문에 CPU가 디스크의 모든 데이터를 가져 와서 메뉴를 표시하기 전에 쓰기가 완료 될 때까지 기다려야했습니다.

커밋은 실제로 무엇을 합니까? 응답 성 및 절전과 같이 실제로 증가시키는 이점이 있습니까? 실제로 데이터가 손실 될 수 있습니까?

답변:


12

커밋은 실제로 무엇을 합니까?

나는 가장 좋은 설명 중 하나 가 allquixotic에 의해 여기 에 주어진 것이라고 생각 합니다.

응답 성 및 절전과 같이 실제로 증가시키는 이점이 있습니까? 실제로 데이터가 손실 될 수 있습니까?

당으로 ext4에 공식 문서 :

Ext4는 모든 'nrsec'초마다 모든 데이터와 메타 데이터를 동기화하도록 지시 할 수 있습니다. 기본값은 5 초입니다. 것을이 수단 잃을 경우 당신의 힘을, 직장의 최신 오초만큼 잃게됩니다은 (당신의 파일 시스템은, 비록 일지 덕분에 손상되지 않습니다). 이 기본값 (또는 낮은 값)은 성능을 저하 시키지만 data-safety에 좋습니다. 0으로 설정하면 기본값 (5 초)으로 두는 것과 같은 효과가 있습니다. 매우 큰 값으로 설정 하면 성능이 향상됩니다 .

commit값이 증가 하면 소프트웨어가 여전히 fsync ()를 호출하고 디스크에 데이터를 기록하여 디스크에 데이터를 기록 할 수 있기 때문에 대부분의 시간이 발생하지 않지만 최신 N 초의 작업 시간 (N = 커밋 간격)만큼 손실 될 수 있습니다. 커밋 설정. "최소한 자주이 디스크에 모든 것을 쓰십시오"라고 볼 수 있습니다. 1
반면, 쓰기가 적고 (ssd 사용자에게 인기가 높음) 여러 개의 쓰기가 하나의 큰 쓰기로 결합되고 커밋 시간 프레임 내의 이전 쓰기에 대한 업데이트가 취소됨을 의미합니다.
절전에 관해서는 이 페이지 에 따르면 요즘에는 commit값을 높이는 것이 전력을 절약하지 못한다는 것이 밝혀졌습니다 .


1
할당량 + 지연 할당이 HDD 검색을 훨씬 더 잘 최적화 할 수 있기 때문에 일부 절전 효과가 있다고 생각합니다. 그러나 아마도 중요하지 않습니다.
peterh-복 직원 모니카
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.