hello

too many open files 오류

"Too many open files" 오류는 프로세스가 열 수 있는 파일 수의 한계를 초과했을 때 발생하는 문제입니다. 우분투(Ubuntu)에서는 이 파일 디스크립터 수를 제한하는 설정이 있고, 이를 수정해서 해결할 수 있습니다.


📌 원인 요약

  • 파일, 소켓 등을 열기만 하고 닫지 않았을 때
  • 서버나 멀티쓰레드/비동기 프로그램에서 동시 작업이 많을 때
  • 로그 파일 등을 계속 새로 열면서 닫지 않음

✅ 해결 방법 (Ubuntu 기준)

1. 현재 파일 열기 제한 확인

ulimit -n

보통 기본값은 1024입니다.


2. 일시적으로 파일 열기 제한 늘리기

터미널에서 아래 명령 실행:

ulimit -n 65535
단, 이 방법은 현재 세션에만 적용되며, 로그아웃하면 초기화됩니다.

3. 영구적으로 변경하기

/etc/security/limits.conf 수정

sudo nano /etc/security/limits.conf

맨 아래에 아래 두 줄 추가 (사용자 이름에 맞게 수정):

your_username soft nofile 65535
your_username hard nofile 65535

예:

ubuntu soft nofile 65535
ubuntu hard nofile 65535

② PAM 설정 확인

sudo nano /etc/pam.d/common-session

맨 아래에 다음 줄이 있는지 확인, 없으면 추가:

session required pam_limits.so
sudo nano /etc/systemd/user.conf

다음 라인 추가 또는 수정:

DefaultLimitNOFILE=65535
/etc/systemd/system.conf 도 같이 수정하면 좋습니다.

4. 적용하기

변경 후 적용하려면 재부팅하거나 로그아웃 후 다시 로그인합니다.


🔍 참고: 어떤 프로세스가 많이 열고 있는지 확인

lsof | awk '{print $2}' | sort | uniq -c | sort -nr | head

또는 특정 프로세스의 파일 열기 수 확인:

lsof -p <PID>

필요하면 코드나 서버 설정도 같이 봐줄 수 있어요. 어떤 환경에서 이 오류가 발생하는지 알려주시면 더 정확하게 도와드릴게요!

Read more

TCP 공부하기

TCP(전송 제어 프로토콜) 개요 TCP는 불안정한 네트워크 환경에서도 신뢰성 있고 순서가 보장된 데이터 전송을 가능하게 하는 핵심 인터넷 프로토콜이다. IP가 호스트 간 패킷 전달만을 담당한다면, TCP는 포트 기반 프로세스 간 통신, 오류 복구, 재전송, 순서 제어를 제공한다. 흐름 제어와 혼잡 제어를 통해 TCP는 수신 버퍼와 네트워크 대역폭의 고갈을 방지한다.

By JHL

우리가 알던 고전적 소프트웨어 엔지니어링은 죽었다

Product Engineering 시대와 AI 개발 패러다임 변화 1. 패러다임 변화: 코드 작성의 목적이 달라졌다 1972년 Dennis Ritchie가 C 언어를 발표한 이후, 소프트웨어 산업은 오랫동안 다음 요소에 집중해 왔다. * 코드 효율성 (시간·공간 복잡도) * 코드 길이 및 생산성 * 가독성과 유지보수성 그러나 AI 시대가 시작되면서 기존 패러다임이 근본적으로 변하고 있음. John Carmack은

By JHL

GitLab에서 제작한 GitOps 초보자 가이드

소개 소프트웨어 애플리케이션의 복잡도가 증가함에 따라 인프라에 대한 요구도도 함께 증가하고 있습니다. 인프라 팀은 다양한 서비스를 빠르고 안정적으로 제공해야 하지만, 인프라 구축은 여전히 수동 프로세스에 의존하는 경우가 많습니다. 이 문제를 해결하기 위한 핵심 접근 방식이 인프라 자동화이며, 그중 하나가 GitOps입니다. 1. 인프라 자동화의 필요성 * 애플리케이션 개발은 CI/CD로 자동화되었지만 인프라

By JHL