예약된 공간을 루트(보통 5%)로 계산하지 않고, /tmp가 실제로 100% 차서 여유 공간이 0바이트인 경우,왜 SSH를 통해 머신에 로그인할 수 없나요?? "포크할 수 없습니다"라는 오류 메시지만 받았습니다.
/tmp가 100% 가득 차 있을 때에도 머신에 로그인할 수 있도록 SSH 클라이언트에 대한 매개변수가 있습니까?
업데이트: 재부팅은 실제로는 옵션이 아닙니다.\
답변1
나는 전체 /tmp
가 문제라고 생각하지 않습니다. fork()
실행 중인 프로세스가 너무 많은 경우에만 시스템 호출이 해당 특정 오류와 함께 실패합니다 .
ulimit 세트가 있습니까?
콘솔에 액세스할 수 없으면 할 수 있는 일이 거의 없습니다...
답변2
/tmp가 SWAP 공간으로 지원되는 경우를 본 적이 있습니다....그래서 스왑을 하고 있고 /tmp 활동이 많으면 SWAP 공간이 부족할 가능성이 매우 높습니다. 이 메시지가 표시됩니다.
메모리가 부족하면 재부팅하는 것 외에는 선택의 여지가 거의 없습니다. 메모리 킬러는 작동할 수 있지만 일부 중요할 수 있는 프로세스를 무차별적으로 종료합니다.
또 다른 문제는 하나 이상의 프로세스가 프로세스 테이블을 채웠다는 것입니다. 더 이상 사용 가능한 슬롯이 없으면 해당 메시지도 받을 수 있습니다. 여기서 귀하의 해결책은 조건을 유발하는 프로세스에 대한 검색 및 삭제 작업입니다.... 로그인할 수 있다고 가정합니다. 로그인할 수 없으면 재부팅하는 것이 유일한 대안입니다.
마지막으로, 물론 기계 소프트웨어나 하드웨어에 심각한 문제가 있을 수도 있습니다. 따라서 귀하가 설명하는 상황이 발생합니다.
답변3
많은 시스템에서 /tmp
RAM에 있는 가상 파일 시스템입니다. 구성 방법에 따라 RAM을 가득 채우면 RAM이 모두 소모되어 새 프로세스를 초기화할 메모리가 부족해질 수 있습니다.
ssh
당신이 상상할 수 있듯이, 그것은 사실 이후에 해결될 수 있는 것이 아닙니다 . 하지만 /tmp
이렇게 크게 커지지 않도록 조정하면 앞으로 이런 일이 발생하지 않도록 방지할 수 있습니다 .
답변4
해결 방법으로 재부팅 후 ssh를 시도하십시오. 비슷한 문제가 발생했는데 시스템 재부팅 후 자동으로 해결되었습니다!