컴퓨터 지식 네트워크 - 컴퓨터 구성 - Linux NFS 평균 로드 문제 해결 방법

Linux NFS 평균 로드 문제 해결 방법

먼저 top, free, PS, iostat 등의 공통 도구를 사용하여 호스트의 CPU, 메모리, IO 사용량을 분석한 결과 모두 높지 않았습니다. Vmstat 1 을 통해 결과는 다음과 같습니다.

컨텍스트 전환

Vmstat 의 출력 결과에서 입출력 항목의 block in 및 block out 은 빈번하지 않습니다. 시스템 항목의 치수당 인터럽트 수 (in) 및 초당 컨텍스트 전환 수 (cs) 가 특히 빈번합니다. 이로 인해 평균 부하가 특히 높습니다. 큰 방향의 근본 원인을 찾았다. 구체적으로, 어느 프로세스가 하향식으로 파일을 자주 중단하고 전환합니까?

다음은 pidstat -w 1 (초당 새로 고침 출력 컨텍스트 전환) 을 사용하고 출력은 다음 그림과 같습니다.

컨텍스트 전환

위 그림에서 볼 수 있듯이 cswch (자발적 컨텍스트 전환) 및 nvcswch (비자발적 컨텍스트 전환) 및 해당 명령이 있어 vsftpd 가 파일 교환을 많이 사용합니다. 여기에 표시된 cs 값과 총 가치는 여전히 큰 차이가 있음을 알 수 있습니다. 호스트에서 여러 vsftpd 프로세스가 시작되었기 때문에 pidstat 는 1 초 새로 고침 시 모든 내용을 표시하지 않으므로 pidstat -w 를 통해 여러 번 수집한 후 모든 vsftpd 프로세스가 사용하는 cs 값 오버레이가 vmstat 와 비슷하다는 것을 알게 되었습니다.

결과를 업무 인원에게 통보한 후 업무 인원의 추측과 일치한다. Ftp 는 디렉토리 구조가 깊고 파일 수가 많기 때문에 기존 디렉토리를 백업하고 단일 레벨 디렉토리를 다시 만든 후 업무 발견 로드 평균이 1 이하로 떨어졌습니다.

물론, 이것은 단지 하나의 처리 방법일 뿐이다. 이제 네트워크의 일부 프로그램은 이러한 변경을 쉽게 하지 않으며 프로세스가 CPU 간에 자주 전환하는 것을 허용하지 않습니다. 고정 CPU 를 설정하여 튜닝하는 방법도 있습니다. 다음 두 프로세스는 CPU 0-7 에서 실행됩니다.

[루트 @ www ~] # taskset-c-p6389

Pid 6389 의 현재 친연 관계 목록: 0-7

[루트 @ www ~] # taskset-c-p6580

Pid 6580 의 현재 친연 관계 목록: 0-7

Taskset 를 통해 CPU 0- 1 에서 고정 실행 가능:

[root@www ~]# taskset -c 0, 1 -p 6389

이렇게 하면 프로세스가 다음 CPU 코어로 전환될 때마다 현재 캐시 데이터가 새로 고쳐지므로 CPU 를 지정할 때 이러한 작업이 줄어들고 프로세스 처리 속도가 향상됩니다. 이는 이전 프로그램을 조정할 때 더 효과적입니다.

上篇: 사바나는 무슨 뜻인가요? 下篇: mysql과 oracle 중 어느 것이 더 낫나요?
관련 내용