>  기사  >  백엔드 개발  >  여러 프로세스에서 Swoole을 사용할 때 기본 프로세스의 메모리가 계속 커지는 이유는 무엇입니까?

여러 프로세스에서 Swoole을 사용할 때 기본 프로세스의 메모리가 계속 커지는 이유는 무엇입니까?

WBOY
WBOY원래의
2016-12-01 00:56:431863검색

현재 비즈니스에서는 데이터 흐름에 대한 실시간 분석 기능을 구현해야 하는데, 이는 2단계까지 정확해야 합니다. 원래는 swoole task를 사용하여 태스크 서비스를 구현할 계획이었지만 현재는 해당 기능이 없습니다. 머신에서 서버를 구동하기 때문에 당분간은 swoole의 멀티프로세스를 사용하기로 했습니다. 해당 모델은 swoole의 타이머와 결합하여 구현되는데, 그 과정에서 상위 프로세스를 만나 메모리 사용량이 계속해서 급증하는 현상을 해결할 수 있을까요? 문제?
코드 로직은 상위 프로세스에 6개의 swoole_process를 생성하고, swoole_timer를 통해 1초마다 유휴 하위 프로세스에 작업을 배포하고, 하위 프로세스가 작업을 완료한 후 상위 프로세스와 통신합니다. 파이프 통신은 아버지와 아들 사이의 통신을 통해 현재 프로세스가 유휴 상태임을 부모 프로세스에 알리는 것으로, 프로세스가 일정 시간 이상 유휴 상태인 경우 "부모 프로세스가 자식 프로세스 풀을 유지 관리"하는 것과 유사한 효과가 있습니다. 특정 수의 처리 작업을 초과하는 경우 상위 프로세스는 프로세스에 새로운 하위 프로세스를 삭제하고 시작하도록 알립니다. 코드 로직은 대략 이렇지만, 직면한 문제는 상위 프로세스의 메모리 사용량이 점차 증가하고 있다는 것입니다. Swoole 마스터는 이를 어떻게 해결할 수 있습니까? 상위 프로세스가 이와 유사한 하위 프로세스 풀을 유지 관리하기 때문입니까? 깨우쳐주세요

답글 내용:

현재 비즈니스에서는 데이터 흐름에 대한 실시간 분석 기능을 구현해야 하는데, 이는 2단계까지 정확해야 합니다. 원래는 swoole task를 사용하여 태스크 서비스를 구현할 계획이었지만 현재는 해당 기능이 없습니다. 머신에서 서버를 구동하기 때문에 당분간은 swoole의 멀티프로세스를 사용하기로 했습니다. 해당 모델은 swoole의 타이머와 결합하여 구현되는 과정에서 상위 프로세스를 만나 메모리 사용량이 계속해서 급증하는 현상을 해결할 수 있을까요? 문제?
코드 로직은 상위 프로세스에 6개의 swoole_process를 생성하고, swoole_timer를 통해 1초마다 유휴 하위 프로세스에 작업을 배포하고, 하위 프로세스가 작업을 완료한 후 상위 프로세스와 통신합니다. 파이프 통신은 아버지와 아들 사이의 통신을 통해 현재 프로세스가 유휴 상태임을 부모 프로세스에 알리는 것으로, 프로세스가 일정 시간 이상 유휴 상태인 경우 "부모 프로세스가 자식 프로세스 풀을 유지 관리"하는 것과 유사한 효과가 있습니다. 특정 수의 처리 작업을 초과하는 경우 상위 프로세스는 프로세스에 새로운 하위 프로세스를 삭제하고 시작하도록 알립니다. 코드 로직은 대략 이렇지만, 직면한 문제는 상위 프로세스의 메모리 사용량이 점차 증가하고 있다는 것입니다. Swoole 마스터는 이를 어떻게 해결할 수 있습니까? 상위 프로세스가 이와 유사한 하위 프로세스 풀을 유지 관리하기 때문입니까? 깨우쳐주세요

부모 프로세스에 메모리 누수가 발생했습니다. 이는 일부 전역 변수 배열이 메모리를 즉시 해제하지 않기 때문에 발생합니다. 코드를 확인하세요.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.