일반적으로 내 노트북의 병목 현상은 디스크입니다. 디스크 집약적인 계산을 수행할 때 자동으로 시작된 백그라운드 프로세스 updatedb
등 이 find /something
시작되어 상황이 더욱 악화됩니다. 그들은 다음과 같이 설정됩니다.좋아요, 하지만 CPU가 문제가 아니라 I/O가 문제이기 때문에 도움이 되지 않습니다.
질문: 문제를 완화하는 방법(수동으로 종료하는 것 외에) 및 더 일반적으로는 유사한 메커니즘이 있습니까?좋아요, 하지만 I/O를 고려하시나요?
보다 일반적으로 Linux(Ubuntu 14.04) 시스템의 I/O 응답성을 향상시키는 방법은 무엇입니까? 현재 애플리케이션이 최대 디스크 사용량에 도달하면 시스템이 매우 느리게 반응합니다. 예를 들어 Firefox에서 웹 페이지를 여는 데 시간이 오래 걸립니다(시스템을 교체하지 않더라도 시스템을 교체하면 상태가 더 나빠집니다). Swappiness는 0으로 설정됩니다. 이는 중요합니다.
답변1
- 아이오니스를 보셨나요?
- 이러한 프로그램이 페이지 캐시를 더럽히는 것을 원하지 않는다는 것을 운영 체제에 알리기 위해 posix fadvise를 사용하여 업데이트된b/find를 실행해야 할 수도 있습니다. 이렇게 하면 캐시된 디스크 I/O가 메모리에 유지됩니다.
- 실행되지 않는 시간을 계산하기 위해 이러한 백그라운드 프로세스를 푸시하도록 cron 작업을 다시 설계할 수도 있습니다. 또한 cron 작업을 수정하여 시작하기 전에 먼저 디스크가 사용 중인지 확인할 수 있습니다(iostat -x에서 디스크가 사용 중이라고 표시되면 한 시간 동안 잠자기 상태로 다시 시도하세요).
- 노트북의 I/O는 끔찍할 수 있으며, 특히 노트북이 5400RPM으로 회전하는 경우 더욱 그렇습니다. 페이지 캐시를 활용할 수 있도록 메모리를 추가해 볼 수도 있습니다.
- Firefox 속도 저하는 실제로 흥미로운 문제입니다. 이전 직장에서는 이런 문제가 있었습니다. 내 기억이 맞다면 Linux는 I/O 페이지를 메모리에 캐시하는 것을 정말 좋아합니다. 심지어 프로그램 메모리(예: Firefox)를 교체하는 지점까지 갑니다. 따라서 Firefox를 시작하면 Linux는 공간을 확보하기 위해 다른 응용 프로그램을 교체해야 하며, Firefox에서 교체하고 요청을 이행해야 합니다.