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