소개 | 일상적인 운영 및 유지 관리 작업에서 ps 명령을 습관적으로 실행하면 "이상한" 프로세스를 많이 보게 되는데, 이러한 프로세스의 대부분은 시스템의 커널 프로세스입니다. 많은 학생들이 이에 대해 거의 알지 못하므로 오늘은 모든 사람이 운영 체제 프로세스를 이해하는 데 도움이 되기를 바라는 마음으로 초급 시스템 프로세스 소개 게시물을 작성하겠습니다. |
일상적인 운영 및 유지 관리 작업에서 ps 명령을 습관적으로 실행하면 "이상한" 프로세스를 많이 보게 되며 이러한 프로세스의 대부분은 시스템의 커널 프로세스입니다. 많은 학생들이 이에 대해 거의 알지 못하므로 오늘은 모든 사람이 운영 체제 프로세스를 이해하는 데 도움이 되기를 바라는 마음으로 초급 시스템 프로세스 소개 게시물을 작성하겠습니다.
일상적인 운영 및 유지 관리 작업에서 상대적으로 많은 리소스를 차지하는 이상한 시스템 프로세스를 종종 볼 수 있습니다. 그리고 저는 항상 비즈니스 라인의 학생들이 "xxx는 어떤 프로세스인가요? 왜 그렇게 많은 프로세스가 활성화되어 있나요?"라고 묻는 것을 듣습니다.
이러한 시스템 수준 커널 프로세스는 대괄호로 묶여 있으며 일부 시스템 보조 기능(예: 디스크에 캐시 쓰기)을 수행합니다. 대괄호가 없는 프로세스는 사용자가 실행하는 프로세스(예: php, nginx 등)입니다.
아래 그림과 같이:
다음은 모두를 위한 10가지 일반적인 시스템 프로세스입니다.
kswapd0
kjournald
pdflush
kthreadd
마이그레이션
감시견
이벤트
kblockd
아이오
rpciod
시스템은 일정 시간마다 kswapd를 깨워 메모리가 부족한지 확인합니다. 그렇지 않으면 절전 모드로 전환됩니다. kswapd에는 여유 메모리 페이지 수가 적을 때 페이지_hige와 페이지_낮음이라는 두 가지 임계값이 있습니다. Pages_low보다 kswapd 프로세스는 메모리를 스캔하고 사용 가능한 페이지 수가 Pages_high에 도달할 때까지 매번 32개의 사용 가능한 페이지를 해제합니다.
Linux는 가상 메모리 관리를 위해 kswapd를 사용합니다. 최근에 액세스한 페이지는 메모리에 보관하고 활동이 적은 페이지는 디스크로 페이지 아웃합니다.(페이지란 무엇인가요?)…Linux는 페이지라는 단위로 메모리를 관리합니다. kswapd 프로세스는 정기적으로 참조되지 않은 페이지의 수명을 줄입니다...그리고 마지막에는 디스크로 페이지 아웃(이동)됩니다
kjournald저널: 모든 파일 시스템의 메타데이터 변경 사항을 기록하는 가장 느린 모드입니다.
모든 파일 시스템 데이터 및 메타데이터 변경 사항을 기록합니다. 세 가지 ext3 저널링 모드 중 가장 느린 이 저널링 모드는 ext3 파일 시스템의 모든 파일에 대한 변경 사항이 손실될 가능성을 최소화합니다.
ordered: 기본 모드로 파일 시스템 변경 사항의 메타데이터만 기록하고 변경 전 로그를 기록합니다.
파일 시스템 메타데이터에 대한 변경 사항만 기록하지만 관련 파일 시스템 메타데이터를 변경하기 전에 파일 데이터 업데이트를 디스크에 플러시합니다. 이것이 기본 ext3 저널링 모드입니다.
writeback: 수정된 메타데이터만 기록하고 표준 파일 시스템 쓰기 프로세스를 사용하여 하드 디스크에 데이터를 쓰는 가장 빠른 모드
파일 시스템 메타데이터에 대한 변경 사항만 기록하지만 표준 파일 시스템 쓰기 프로세스를 사용하여 파일 데이터 변경 사항을 디스크에 기록합니다. 이는 가장 빠른 ext3 저널링 모드입니다.
pdflushpdflush는 메모리의 콘텐츠를 파일 시스템과 동기화하는 데 사용됩니다.
예를 들어 파일이 메모리에서 수정되면 pdflush는 해당 파일을 하드 디스크에 다시 쓰는 역할을 담당합니다. 메모리의 더티 페이지 수가 10%를 초과할 때마다 pdflush는 해당 페이지를 하드 디스크에 다시 백업합니다. 이 비율은 조정 가능하며 기본값은 /etc/sysctl.conf의 vm.dirty_ground_ratio 항목을 통해 10입니다.
kthreadd이러한 커널 스레드는 하나만 있으며, 그 역할은 다른 커널 스레드를 관리하고 예약하는 것입니다.
커널 초기화 중에 생성되며 kthreadd라는 함수를 실행하기 위해 반복됩니다. 이 함수의 기능은 kthread_create_list 전역 연결 목록에 유지되는 kthread를 실행하는 것입니다. kthread_create를 호출하여 kthread_create_list 연결 목록에 추가되는 kthread를 생성할 수 있습니다. 동시에 kthread_create는 kthreadd_task를 약화시킵니다. kthreadd가 kthread를 실행하면 이전 인터페이스를 호출합니다. kernel_thread는 "kthread"라는 커널 스레드를 실행하여 생성된 kthread를 실행합니다. 실행된 kthread는 kthread_create_list 목록에서 삭제되고 kthreadd는 CPU를 포기하기 위해 지속적으로 스케줄러를 호출합니다. 이 스레드는 닫을 수 없습니다.
이주migration/0부터 migration/31까지 총 32개의 커널 스레드가 있습니다. 각 프로세서 코어는 마이그레이션 커널 스레드에 해당하며 주요 기능은 해당 CPU 코어의 마이그레이션 프로세스 역할을 하며 프로세스 마이그레이션을 수행하는 데 사용됩니다. 커널에서 함수는 migration_thread()
입니다.2.6 커널의 로드 밸런싱 시스템에 속하며, 시스템 시작 시 자동으로 로드되며(CPU당 하나씩), 자신을 SCHED_FIFO의 실시간 프로세스로 설정한 후 대기 중인 요청이 있는지 확인합니다. runqueue::migration_queue에서 처리됩니다. 그렇지 않은 경우 깨어날 때까지 TASK_INTERRUPTIBLE에서 잠자고 다시 확인하세요. migration_thread()는 CPU 바인딩 및 CPU 전원 관리 기능을 위한 인터페이스일 뿐입니다. 이 스레드는 스케줄링 시스템의 중요한 부분입니다.
감시견watchdog/0부터 watchdog/31까지 총 32개의 커널 스레드가 있습니다. 각 프로세서 코어는 watchdog 커널 스레드에 해당합니다. Watchdog은 시스템 작동을 모니터링하고 시스템 장애 시 자동으로 시스템을 다시 시작하는 데 사용됩니다. 커널 감시 모듈 및 사용자 공간 감시 프로그램.
Linux 커널에서 watchdog의 기본 작동 원리는 watchdog이 시작될 때(즉, /dev/watchdog 장치가 열린 후), /dev/watchdog이 설정된 시간 간격(1분) 내에 실행되지 않는 경우입니다. ) 쓰기 작업, 하드웨어 감시 회로 또는 소프트웨어 타이머는 시스템을 다시 시작하고 각 쓰기 작업으로 인해 타이머가 재설정됩니다.
이벤트이러한 커널 스레드는 events/0부터 events/31까지 총 32개이며, 각 프로세서 코어는 이벤트 커널 스레드에 해당합니다. 커널 이벤트를 처리하는 데 사용됩니다. 많은 소프트웨어 및 하드웨어 이벤트(예: 정전, 파일 변경)가 이벤트로 변환되어 해당 이벤트에 관심 있는 스레드에 배포되어 응답됩니다.
kblockdkblockd/0부터 kblockd/31까지 총 32개의 커널 스레드가 있습니다. 각 프로세서 코어는 kblockd 커널 스레드에 해당합니다. 시스템의 블록 장치를 관리하는 데 사용되며 시스템의 블록 장치 드라이버를 주기적으로 활성화합니다. 블록 장치를 소유한 경우 이러한 스레드는 제거할 수 없습니다.
아이오aio/0부터 aio/31까지 총 32개의 커널 스레드가 있습니다. 각 프로세서 코어는 사용자 모드 AIO(비동기 I/O)를 지원하기 위해 사용자 프로세스를 대신하여 I/O를 관리하는 aio 커널 스레드에 해당합니다. ). 닫아서는 안 됩니다.
rpciodrpciod/0부터 rpciod/31까지 총 32개의 커널 스레드가 있습니다. 각 프로세서 코어는 하나의 rpciod 커널 스레드에 해당하며 주요 기능은 원격 프로시저 호출 서비스를 위한 데몬 역할을 하며 I/O를 시작하는 데 사용됩니다. O NFS 서비스를 시작할 때 일반적으로 사용되는 클라이언트 서비스에서.
요약프로세스는 운영 체제에서 매우 중요한 개념입니다. 시스템에서 실행되는 모든 데이터는 프로세스 유형으로 존재합니다. Linux 시스템에서는 이벤트가 발생하면 시스템이 이를 프로세스로 정의합니다. 따라서 프로세스는 Linux 프로그램을 구현하는 유일한 방법입니다.
위 내용은 시스템 프로세스: 운영 및 유지보수 담당자가 숙지해야 하는 10가지 지식 포인트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!