[Linux] LEMP 스택의 마지막 퍼즐: PHP-FPM & Nginx 메모리 다이어트

MariaDB 설정으로 급한 불은 껐지만, 아직 안심하기엔 이릅니다. 512MB라는 좁은 방에 MariaDB와 PHP-FPM이 같이 살다 보면, 어느 한쪽이 욕심을 부리는 순간 서버는 바로 ‘OOM Killer(Out of Memory)’의 칼춤을 보게 됩니다. 오늘은 웹 서버의 살림꾼인 Nginx와 메모리 먹는 하마가 되기 쉬운 PHP-FPM을 아주 타이트하게 조여보겠습니다. Nginx: “너는 딱 하나만 해” 사실 Nginx 자체는 매우 가볍습니다. 하지만 … 더 읽기

[Linux] AWS Lightsail 5$ 서버 MariaDB가 자꾸 죽는 이유 (1) – 스왑(Swap) 편

테스트용으로 AWS Lightsail에서 가장 저렴한 5$ 플랜을 선택했습니다. 근데 이 플랜 가성비는 기가막히지만 메모리가 512MB라는 환경입니다. 512GB가 아니라 512MB! DB 학습 및 테스트 용으로 MariaDB 설치했는데 가능하려나 싶네요 설치만 했는데 메모리가 ‘풀(Full)’? 저같이 많은 초보엔지니어들이 top 명령어를 보고 당황합니다. “서버 만들자마자 메모리 바(bar)가 절반이나 차 있네?” MariaDB 설치 후 벌어지는 일 여기에 MariaDB 설치했습니다. 해결책은? … 더 읽기

[리눅스 실무 기초 #12] Rocky Linux 네트워크 완벽 가이드: 고정 IP 설정부터 mtr 경로 추적까지

서버 내부에서 프로세스가 잘 돌아가고 로그가 깨끗한데도 서비스 접속이 안 된다면, 이제는 시야를 밖으로 돌려야 할 때입니다. “내 서버는 준비됐는데, 왜 클라이언트는 못 들어올까?” 혹은 “우리 서버는 왜 저 외부 API 서버랑 말을 못 할까?” 같은 상황 말이죠. 오늘은 Rocky Linux의 표준 고정 IP 설정법과 더불어, 네트워크 장애의 범인을 끝까지 추적해 내는 nc, mtr 활용법을 … 더 읽기

[리눅스 실무 기초 #11] 서버의 비명을 듣는 법: top 명령어 완벽 해부와 프로세스 관리

엔지니어로 살다 보면 서비스가 갑자기 느려지거나 응답이 없는 절체절명의 순간을 마주하게 됩니다. 9~10편에서 로그를 통해 과거의 흔적을 쫓았다면, 이번에는 **”지금 누가 내 서버의 자원을 갉아먹고 있는가?”**라는 질문에 답할 차례입니다. 오늘은 서버의 건강 상태를 진단하는 top 명령어와 그 대안인 htop, 그리고 문제 프로세스를 검거하고 처단하는 ps, kill의 디테일을 알아보겠습니다. 1. 실시간 시스템 진단 차트: top 읽는 … 더 읽기

[리눅스 실무 기초 #10] 리눅스 로그 확인 tail -f 사용법과 대용량 로그 분석 꿀팁

엔지니어에게 로그는 **’서버가 보내는 구조 신호’**와 같습니다. 9편에서 우리가 원하는 파일을 찾아냈다면, 이제는 그 파일 안에서 실시간으로 쏟아지는 메시지를 읽고 해석할 차례입니다. 수백 메가바이트가 넘는 거대 로그 파일 앞에서 당황하지 않고, 지금 당장 벌어지는 에러만 콕 집어내는 실시간 로그 모니터링 기술을 알아보겠습니다. 1. 실시간 감시의 정석: tail -f tail은 원래 파일의 뒷부분만 보여주는 명령어입니다. 하지만 … 더 읽기

[리눅스 실무 기초 #9] find, egrep, xargs: 원하는 것만 콕 집어내는 ‘서버 수사 기법’

엔지니어로 살면서 로그(log)를 까보는 건 그야말로 일상다반사입니다. 장애가 발생했을 때나 시스템의 흐름을 파악해야 할 때 가장 먼저 찾게 되는 것이 바로 로그인데, 이때 수만 개의 파일 사이에서 원하는 데이터를 얼마나 빨리 찾아내느냐가 곧 엔지니어의 실력이자 ‘칼퇴’의 지름길입니다. 오늘은 파일 수색의 탐정 find, 내용 검색의 해결사 egrep, 그리고 이 둘을 이어주는 xargs를 통해 강력한 검색 한 … 더 읽기

[리눅스 실무 기초 #8] LVM 삭제: 지우는 걸 보면 엔지니어 실력이 보입니다

가상화나 클라우드 환경에서 사용 중인 볼륨을 삭제하려고 할 때, 종종 “사용 중이라 제거할 수 없다”는 메시지를 마주하게 됩니다. 이는 OS가 여전히 해당 볼륨을 인식하고 사용 중이기 때문에 발생하는 현상입니다. 진정한 ‘깔끔한 삭제’는 단순히 콘솔 버튼을 누르는 것이 아니라, VM 내부에서 안전하게 연결을 끊는 것부터 시작됩니다. OS에서 마운트를 풀고 LVM 구조를 순서대로 걷어내야 물리적인(혹은 가상적인) 디스크 … 더 읽기

[리눅스 실무 기초 #7] LVM 용량 확장: 서비스 중단 없이 디스크 늘리기

지난 글에서 LVM의 기초를 다뤘다면, 오늘은 LVM의 진정한 꽃이라 할 수 있는 **’온라인 확장’**을 해보겠습니다. 서버를 운영하다 보면 이런 상황이 꼭 옵니다. “/data 용량이 90%가 넘었어요! 빨리 늘려주세요!” 과거에는 데이터를 백업하고, 더 큰 하드로 교체하고, 다시 복구하는 눈물겨운 작업을 해야 했죠. 하지만 LVM은 다릅니다. 서비스 중단 없이, 데이터 삭제 없이 그냥 새 하드디스크를 기존 영역에 … 더 읽기

[리눅스 실무 기초 #6] 새 하드디스크 추가 및 LVM 설정 (/data 영역 확장)

지난 5편에서 Rocky Linux를 깔끔하게 설치해 봤으니, 이제 실제로 하드디스크를 하나 더 꽂아서 용량을 늘리는 작업을 해보겠습니다. 보통 “그냥 파티션 나눠서 쓰면 안 되나?”라고 생각하실 수도 있지만, 실무에서는 99% **LVM(Logical Volume Manager)**을 씁니다. 운영 중에 갑자기 “용량 모자라요!”라는 요청이 들어왔을 때, 서비스 중단 없이 디스크를 슥 늘릴 수 있는 유연함 때문이죠. 오늘 작업은 root 권한으로 … 더 읽기

[리눅스 실무 기초 #5] Rocky Linux 9.7 Minimal 설치: 클릭 한 번이면 끝나는 시대에 이걸 왜 할까?

요즘은 AWS나 GCP 같은 클라우드 환경에서 클릭 몇 번, 이른바 ‘딸깍’ 한 번이면 OS 설치가 완료되는 시대입니다. 참 편리하고 빠른 세상이죠. 그런데 여기서 이런 의문이 들 수 있습니다. “과연 엔지니어가 이 수동 설치 과정을 굳이 해볼 필요가 있을까?” 제 생각은 이렇습니다. 클라우드가 제공하는 이미지만 가져다 쓰면, OS는 우리에게 그저 내부를 알 수 없는 **’블랙박스’**일 뿐입니다. … 더 읽기