이 게시물이 질문을하겠습니다.
캐시 경합
대규모 사이트에서 MyISAM을 사용하는 경우 노드나 주석을 추가한 후 캐시를 강제로 지우면 데이터베이스 테이블에서 경합이 발생할 수 있습니다. 수만 개의 필터링된 텍스트 조각을 삭제해야 하기 때문에 테이블은 오랫동안 잠겨 있으며 테이블에 대한 모든 액세스는 테이블의 데이터를 지우기 위해 대기하게 됩니다. 페이지 캐싱도 마찬가지입니다.
이로 인해 일반적으로 1~2분 동안 "사이트 중단"이 발생합니다. 이 시간 동안 새로운 요청이 계속해서 쌓이고, Apache 설정에서 MaxClients 매개변수를 올바르게 설정하지 않으면 너무 많은 교환으로 인해 시스템이 복잡해질 수 있습니다.
답변1
스와핑은 컴퓨터의 실제 RAM보다 더 많은 메모리를 할당하는 프로그램을 실행할 때 발생합니다. 일부 데이터는 디스크로 교체되었다가 필요할 때 다시 교체됩니다.
이런 일이 자주 발생하지 않는 한 괜찮습니다. 디스크 액세스는 RAM 액세스보다 훨씬 느리므로 컴퓨터가 스왑해야 할 때마다 스왑을 유발하는 프로그램은 데이터가 전송되는 동안 일시 중지되어야 합니다.
과도한 스와핑(스래싱이라고도 함)은 프로그램에서 적극적으로 사용하는 메모리 양이 실제 메모리 양을 초과할 때 발생합니다. 컴퓨터는 디스크와 RAM 간에 데이터를 교환하는 데 모든 시간을 소비하며 실제로 작업을 완료하는 데는 거의 시간을 소비하지 않습니다.
언급한 기사에서 문제는 너무 많은 Apache 프로세스를 포크하는 것입니다. 각 프로세스에는 약간의 메모리가 필요하며 MaxClients가 너무 높게 설정되면 Apache는 시스템이 마비될 때까지 하위 프로세스를 계속 포크합니다.