배경 : 나는 IIS에 저장된 웹 사이트를 사용하는 Microsoft 세계에서 왔습니다. 경험은 단편화로 인한 기묘한 문제를 제거하기 위해 하루에 한 번 응용 프로그램 풀을 재활용하도록 가르쳐 줬습니다. 기본적으로 응용 프로그램 풀을 재활용하는 것은 전체 IIS를 다시 시작하지 않고 응용 프로그램을 다시 시작하는 것을 의미합니다. 또한 마이크로 소프트가 어떻게 분열을 줄 였는지 설명하는 강연을 보았습니다. 넷 4.5.Node.js 및 조각화
이제 Node.js 응용 프로그램을 프로덕션 환경에 배포하고 있으며 항상 완벽하게 작동하는지 확인해야합니다. 원래 앱을 하루에 한 번씩 다시 시작하도록 생각했습니다. 그런 다음 Node.js의 조각화 문제에 대한 단서를 찾기 위해 조사를했습니다.
하는은 "어떤 메모리 조각화 V8은"정지 - 세계를 사용하지 을 빠른 객체 할당, 짧은 가비지 콜렉션 일시 정지 및 을 보장하기 위해 : 내가 찾은 유일한 것은 an article describing GC in V8에서 단락의 스크랩입니다 세대 간, 정확한 가비지 컬렉터. 내 응용 프로그램에 대한 다시 시작 메커니즘을 구축 포기하지만, 문제가 없으면 다른 한편으로는 내가 어떤 일을하고 싶지 않아위한
이 문장은 정말 충분하지 않습니다.
그래서 내 으론입니다
는가 아니면 분열을 방지하기 위해 모든 이제 다음 내 응용 프로그램을 다시 시작하지 말아야 하는가?
이 분명하면 모니터링 기능이있는 서버를 다시 시작하는 것이 좋습니다. 나는 그들에게 왜 이런 이슈가 있는지에 대한 어떠한 종류의 정보도없이 문제가있는 앱을 다시 시작하는 고위직에 대한 나쁜 경험을 가지고있어서 추측 게임을 유지합니다. –
@CorvusCrypto 먼저 모니터링하는 것이 좋습니다. 그런 다음 서버를 다시 시작해야하는지 결정합니다. – Parris
정교한 대답에 감사드립니다. 두 가지 질문이 있습니다. 1. 관리되는 코드 언어로 메모리 누수가 발생할 수있는 방법은 무엇입니까? Afaik는 더 이상 사용하지 않는 메모리 할당을 해제하지 않으면 메모리 누수가 발생합니다. 하지만 관리 코드 응용 프로그램에서는 더 이상 참조가없는 모든 객체가 GC에 의해 해제됩니다. (두 번째 질문은 다음 댓글에 있습니다). – Alon