<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>스왑 보관 - 하우인포-IT·테크</title>
	<atom:link href="https://howinfo.kr/tag/%ec%8a%a4%ec%99%91/feed/" rel="self" type="application/rss+xml" />
	<link>https://howinfo.kr/tag/스왑/</link>
	<description>IT·AI 자동화 &#38; 인프라 전문 블로그 (하우인포)</description>
	<lastBuildDate>Sat, 21 Feb 2026 01:47:16 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://howinfo.kr/wp-content/uploads/2026/02/cropped-ChatGPT-Image-2026년-2월-12일-오후-05_39_40-32x32.png</url>
	<title>스왑 보관 - 하우인포-IT·테크</title>
	<link>https://howinfo.kr/tag/스왑/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>운영체제(OS)는 왜 필요한가? — 장애가 나면 답은 결국 OS 안에 있다</title>
		<link>https://howinfo.kr/%ec%9a%b4%ec%98%81%ec%b2%b4%ec%a0%9cos%eb%8a%94-%ec%99%9c-%ed%95%84%ec%9a%94%ed%95%9c%ea%b0%80-%ec%bb%a4%eb%84%90%c2%b7%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4%c2%b7%eb%a9%94%eb%aa%a8%eb%a6%ac/</link>
					<comments>https://howinfo.kr/%ec%9a%b4%ec%98%81%ec%b2%b4%ec%a0%9cos%eb%8a%94-%ec%99%9c-%ed%95%84%ec%9a%94%ed%95%9c%ea%b0%80-%ec%bb%a4%eb%84%90%c2%b7%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4%c2%b7%eb%a9%94%eb%aa%a8%eb%a6%ac/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Tue, 17 Feb 2026 03:23:14 +0000</pubDate>
				<category><![CDATA[IT기초]]></category>
		<category><![CDATA[oom]]></category>
		<category><![CDATA[OS기초]]></category>
		<category><![CDATA[가상메모리]]></category>
		<category><![CDATA[리눅스]]></category>
		<category><![CDATA[메모리]]></category>
		<category><![CDATA[서버 트러블슈팅]]></category>
		<category><![CDATA[스왑]]></category>
		<category><![CDATA[운영체제]]></category>
		<category><![CDATA[커널]]></category>
		<category><![CDATA[프로세스]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1770</guid>

					<description><![CDATA[<p>0️⃣ 3줄 요약 1️⃣ OS가 왜 필요하냐고요? “장애가 나면” 바로 답이 나옵니다 운영체제는 평소엔 존재감이 거의 없습니다.그런데 서버가 느려지거나, 서비스가...</p>
<p>게시물 <a href="https://howinfo.kr/%ec%9a%b4%ec%98%81%ec%b2%b4%ec%a0%9cos%eb%8a%94-%ec%99%9c-%ed%95%84%ec%9a%94%ed%95%9c%ea%b0%80-%ec%bb%a4%eb%84%90%c2%b7%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4%c2%b7%eb%a9%94%eb%aa%a8%eb%a6%ac/">운영체제(OS)는 왜 필요한가? — 장애가 나면 답은 결국 OS 안에 있다</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">0️⃣ 3줄 요약</h2>



<ul class="wp-block-list">
<li>OS는 “있으면 좋은 것”이 아니라, 장애를 막는 안전장치다.</li>



<li>커널은 프로그램 대신 CPU·메모리·디스크·네트워크를 중재한다.</li>



<li>RAM 용량보다 <strong>swap·OOM·I/O wait</strong>을 볼 줄 아는 게 더 중요하다.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1️⃣ OS가 왜 필요하냐고요? “장애가 나면” 바로 답이 나옵니다</h2>



<p>운영체제는 평소엔 존재감이 거의 없습니다.<br>그런데 서버가 느려지거나, 서비스가 갑자기 죽으면 상황이 달라집니다.</p>



<p>제가 실제로 겪었던 케이스들입니다.</p>



<ul class="wp-block-list">
<li>사이트가 갑자기 느려짐 → CPU 100% / I/O wait 증가 / swap 사용</li>



<li>잘 돌아가던 서비스가 새벽에 죽음 → OOM Killer</li>



<li>디스크 꽉 참 → 로그·백업·Docker 잔여물 폭증</li>



<li>SSH는 되는데 서비스는 안 뜸 → 권한/실행 계정 문제</li>
</ul>



<p>이때 OS는 배경이 아니라 <strong>사건 현장</strong>입니다.<br>커널·프로세스·메모리를 모르면 원인 추적 속도가 확실히 느립니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2️⃣ 한 문장 정의</h2>



<p>운영체제(OS)는 <strong>프로그램이 하드웨어를 안전하게 쓰도록 중재하는 관리자</strong>입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3️⃣ 그림 하나로 이해하기</h2>



<p>OS를 이렇게 생각하면 편합니다.</p>



<ul class="wp-block-list">
<li>프로그램 = 요청하는 사람</li>



<li>하드웨어(CPU/디스크/네트워크) = 자원</li>



<li>커널 = 자원 배분 관리자</li>
</ul>



<p>프로그램은 직접 CPU를 잡지 못합니다.<br>항상 커널을 통해서만 접근합니다.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="512" height="591" src="https://howinfo.kr/wp-content/uploads/2026/02/image-3.png" alt="" class="wp-image-1840" srcset="https://howinfo.kr/wp-content/uploads/2026/02/image-3.png 512w, https://howinfo.kr/wp-content/uploads/2026/02/image-3-260x300.png 260w" sizes="(max-width: 512px) 100vw, 512px" /></figure>



<h2 class="wp-block-heading">4️⃣ 커널(Kernel): 내가 모르는 사이에 다 대신 처리하는 관리자</h2>



<p>워드프레스 기준으로 보면 흐름은 이렇습니다.</p>



<ol class="wp-block-list">
<li>브라우저 요청 도착</li>



<li>커널이 네트워크 패킷 수신</li>



<li>웹서버(Nginx/Apache) 프로세스에 전달</li>



<li>디스크에서 파일 읽기</li>



<li>PHP 프로세스가 DB 접근</li>



<li>결과를 다시 네트워크로 전송</li>
</ol>



<p>여기서 느려지면 보통 <strong>커널이 관리하는 자원</strong> 중 하나가 병목입니다.</p>



<h3 class="wp-block-heading">제가 실제로 겪은 사례 3가지</h3>



<p>✔ CPU는 30%인데 서버가 멈춘 느낌<br>→ 원인은 I/O wait (디스크 대기)</p>



<p>✔ 트래픽 증가 후 502/504<br>→ 동시 연결 수 / 파일 핸들 한계</p>



<p>✔ systemd로 실행하면 실패<br>→ 실행 계정 권한 문제</p>



<p>앱만 보면 안 보이고, OS 자원 관점으로 봐야 잡히는 문제입니다.</p>



<h2 class="wp-block-heading">5️⃣ 프로세스(Process): 범인을 찾는 출발점</h2>



<p>실무에서 OS를 보는 가장 현실적인 이유는 단순합니다.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>누가 자원을 먹고 있는지 찾는 것</p>
</blockquote>



<p>제가 항상 하는 순서:</p>



<figure class="wp-block-image size-full"><img decoding="async" width="655" height="492" src="https://howinfo.kr/wp-content/uploads/2026/02/linux5.png" alt="" class="wp-image-1776" srcset="https://howinfo.kr/wp-content/uploads/2026/02/linux5.png 655w, https://howinfo.kr/wp-content/uploads/2026/02/linux5-300x225.png 300w" sizes="(max-width: 655px) 100vw, 655px" /></figure>



<pre class="wp-block-preformatted">top<br>free -h<br>df -h</pre>



<ul class="wp-block-list">
<li>CPU 100% 프로세스 → 무한 루프/계산 문제 가능성</li>



<li>메모리 계속 증가 → 누수 가능성</li>



<li>프로세스 사라짐 → OOM / 크래시 확인</li>
</ul>



<p>그리고 경험상, 프로세스는 거짓말을 하지 않습니다.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="653" height="416" src="https://howinfo.kr/wp-content/uploads/2026/02/linux1.png" alt="" class="wp-image-1771" srcset="https://howinfo.kr/wp-content/uploads/2026/02/linux1.png 653w, https://howinfo.kr/wp-content/uploads/2026/02/linux1-300x191.png 300w" sizes="(max-width: 653px) 100vw, 653px" /></figure>



<ul class="wp-block-list">
<li>CPU 100% 찍는 프로세스가 있으면, 뭔가 계산/루프/대기 문제가 있고</li>



<li>메모리가 계속 늘면, 누수(Leak)거나 캐시가 풀리지 않는 구조일 가능성이 높고</li>



<li>프로세스가 죽어 있으면, 누가 죽였는지(OOM/크래시/kill)를 OS 로그에서 찾을 수 있어요.</li>
</ul>



<h3 class="wp-block-heading">“프로세스가 여러 개라서 더 안전해진” 경험</h3>



<p>예전에 한 번은 웹서버+PHP가 한 덩어리처럼 꽉 묶여 있어서<br>하나가 죽으면 전체가 불안정해졌던 적이 있어요.<br>그 뒤로는 프로세스 분리/풀 관리가 되는 구조(Nginx ↔ PHP-FPM)를 선호하게 됐습니다.</p>



<ul class="wp-block-list">
<li>문제가 생겨도 “부분”만 영향을 받는 구조</li>



<li>그리고 문제를 “프로세스 단위”로 좁혀서 해결이 쉬움</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6️⃣ 메모리(Memory): RAM보다 swap과 OOM이 핵심</h2>



<p>초보 때는 “RAM이 많으면 안전하다”고 생각했습니다.<br>운영해보니 포인트는 다르더군요.</p>



<h3 class="wp-block-heading">메모리 문제의 전형적인 흐름</h3>



<ol class="wp-block-list">
<li>체감상 느려짐</li>



<li>swap 사용량 증가</li>



<li>load 상승</li>



<li>OOM Killer가 프로세스 강제 종료</li>
</ol>



<p>가장 당황스러운 순간은:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>“내가 내린 적 없는데 서비스가 죽어 있음”</p>
</blockquote>



<p>하지만 OS는 흔적을 남깁니다.</p>



<pre class="wp-block-preformatted">dmesg | grep -i oom<br>journalctl -xe</pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="656" height="871" src="https://howinfo.kr/wp-content/uploads/2026/02/linux4.png" alt="" class="wp-image-1772" srcset="https://howinfo.kr/wp-content/uploads/2026/02/linux4.png 656w, https://howinfo.kr/wp-content/uploads/2026/02/linux4-226x300.png 226w" sizes="auto, (max-width: 656px) 100vw, 656px" /></figure>



<p>여기서 거의 다 나옵니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">오해했던 부분: RAM 사용률</h3>



<p>free -h에서 RAM이 거의 다 차 있어도<br>그게 반드시 문제는 아닙니다.</p>



<p>리눅스는 캐시를 적극 활용합니다.</p>



<p>진짜 위험 신호는:</p>



<ul class="wp-block-list">
<li>swap이 계속 증가</li>



<li>OOM 로그 발생</li>
</ul>



<ul class="wp-block-list">
<li>리눅스면 보통 <strong>dmesg / journalctl</strong>에서 OOM 흔적을 찾을 수 있어요.</li>
</ul>



<h3 class="wp-block-heading">캐시는 “정상”인데, 오해하기 쉬웠던 경험</h3>



<p>리눅스에서 free -h 보면 RAM이 대부분 사용 중으로 보이는데<br>그게 꼭 문제는 아니더라고요.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="656" height="448" src="https://howinfo.kr/wp-content/uploads/2026/02/linux3.png" alt="" class="wp-image-1773" srcset="https://howinfo.kr/wp-content/uploads/2026/02/linux3.png 656w, https://howinfo.kr/wp-content/uploads/2026/02/linux3-300x205.png 300w" sizes="auto, (max-width: 656px) 100vw, 656px" /></figure>



<ul class="wp-block-list">
<li>OS가 <strong>캐시로 RAM을 적극 활용</strong>하는 게 정상</li>



<li>문제는 캐시가 아니라 <strong>스왑이 늘고 반응이 무너질 때</strong>입니다.</li>
</ul>



<p>즉, “RAM 사용률”보다 “swap/oom”을 더 경계하게 됐어요.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">7️⃣ 워드프레스 글 하나 열 때 OS 안에서 벌어지는 일</h2>



<p>사용자 요청<br>→ 커널이 네트워크 처리<br>→ 웹서버 프로세스 실행<br>→ PHP-FPM 동작<br>→ DB 접근 (네트워크/디스크 I/O)<br>→ 응답 반환</p>



<p>이 중 하나라도 병목이면 체감이 바로 느려집니다.</p>



<p>그래서 OS를 이해하면 이런 감이 생깁니다.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>“이건 코드가 아니라 I/O 같다.”<br>“CPU가 아니라 메모리 압박이다.”</p>
</blockquote>



<p>이 감이 운영에선 정말 큽니다.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="656" height="416" src="https://howinfo.kr/wp-content/uploads/2026/02/linux2.png" alt="" class="wp-image-1774" srcset="https://howinfo.kr/wp-content/uploads/2026/02/linux2.png 656w, https://howinfo.kr/wp-content/uploads/2026/02/linux2-300x190.png 300w" sizes="auto, (max-width: 656px) 100vw, 656px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">8️⃣ 제가 쓰는 3분 점검 루틴</h2>



<p>서버가 느릴 때 저는 거의 이 순서입니다.</p>



<pre class="wp-block-preformatted">top<br>free -h<br>df -h<br>iostat<br>journalctl -xe</pre>



<ol class="wp-block-list">
<li>누가 CPU/RAM 먹는지</li>



<li>swap 증가 여부</li>



<li>디스크 용량</li>



<li>I/O wait</li>



<li>OOM/크래시 로그</li>
</ol>



<p>이 루틴이 습관이 되면<br>OS는 시험 과목이 아니라 <strong>장애 해결 지도</strong>가 됩니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">9️⃣ 자주 하는 실수 TOP3</h2>



<p>1️⃣ CPU만 보고 판단<br>→ 실제 원인은 I/O wait</p>



<p>2️⃣ RAM 사용률만 보고 “메모리 부족” 단정<br>→ 캐시 정상 사용일 수 있음</p>



<p>3️⃣ 애플리케이션 로그만 보고 OS 로그 안 봄<br>→ OOM은 커널 로그에 남음</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">🔟 체크리스트</h2>



<ul class="wp-block-list">
<li>CPU %만 보지 않는다</li>



<li>swap 증가 여부 확인</li>



<li>OOM 로그 확인</li>



<li>디스크 용량 주기 점검</li>



<li>프로세스 단위로 문제를 좁힌다</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">FAQ</h1>



<p><strong>Q1. OS를 알면 코딩에도 도움이 되나요?</strong><br>네. 왜 느려지는지, 왜 죽는지가 보이기 시작합니다.</p>



<p><strong>Q2. 커널을 직접 건드릴 일도 있나요?</strong><br>직접 수정은 거의 없지만, 로그와 자원 상태를 읽는 일은 매우 많습니다.</p>



<p><strong>Q3. 메모리 위험 신호는 무엇인가요?</strong><br>RAM 사용률보다 swap 증가와 OOM 로그가 더 위험 신호였습니다.</p>



<p></p>
<p>게시물 <a href="https://howinfo.kr/%ec%9a%b4%ec%98%81%ec%b2%b4%ec%a0%9cos%eb%8a%94-%ec%99%9c-%ed%95%84%ec%9a%94%ed%95%9c%ea%b0%80-%ec%bb%a4%eb%84%90%c2%b7%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4%c2%b7%eb%a9%94%eb%aa%a8%eb%a6%ac/">운영체제(OS)는 왜 필요한가? — 장애가 나면 답은 결국 OS 안에 있다</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/%ec%9a%b4%ec%98%81%ec%b2%b4%ec%a0%9cos%eb%8a%94-%ec%99%9c-%ed%95%84%ec%9a%94%ed%95%9c%ea%b0%80-%ec%bb%a4%eb%84%90%c2%b7%ed%94%84%eb%a1%9c%ec%84%b8%ec%8a%a4%c2%b7%eb%a9%94%eb%aa%a8%eb%a6%ac/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>서버가 갑자기 느려질 때: TOP/HTOP로 10분 안에 범위 좁히는 방법</title>
		<link>https://howinfo.kr/%ec%84%9c%eb%b2%84%ea%b0%80-%eb%8a%90%eb%a6%b4-%eb%95%8c-top-htop%eb%a1%9c-%ec%9b%90%ec%9d%b8-%ec%b0%be%eb%8a%94-%ec%88%9c%ec%84%9c-10%eb%b6%84-%ec%a7%84%eb%8b%a8-%eb%a3%a8%ed%8b%b4/</link>
					<comments>https://howinfo.kr/%ec%84%9c%eb%b2%84%ea%b0%80-%eb%8a%90%eb%a6%b4-%eb%95%8c-top-htop%eb%a1%9c-%ec%9b%90%ec%9d%b8-%ec%b0%be%eb%8a%94-%ec%88%9c%ec%84%9c-10%eb%b6%84-%ec%a7%84%eb%8b%a8-%eb%a3%a8%ed%8b%b4/#respond</comments>
		
		<dc:creator><![CDATA[hong]]></dc:creator>
		<pubDate>Tue, 17 Feb 2026 00:23:05 +0000</pubDate>
				<category><![CDATA[서버·인프라]]></category>
		<category><![CDATA[htop]]></category>
		<category><![CDATA[top]]></category>
		<category><![CDATA[디스크I/O]]></category>
		<category><![CDATA[리눅스]]></category>
		<category><![CDATA[모니터링]]></category>
		<category><![CDATA[서버느려짐]]></category>
		<category><![CDATA[서버운영]]></category>
		<category><![CDATA[성능진단]]></category>
		<category><![CDATA[스왑]]></category>
		<category><![CDATA[장애대응]]></category>
		<guid isPermaLink="false">https://howinfo.kr/?p=1759</guid>

					<description><![CDATA[<p>0️⃣ 5줄 요약 (운영 관점) 1️⃣ 문제 상황 어느 날 갑자기 이런 연락이 옵니다. 이때 제 머릿속에 가장 먼저 뜨는...</p>
<p>게시물 <a href="https://howinfo.kr/%ec%84%9c%eb%b2%84%ea%b0%80-%eb%8a%90%eb%a6%b4-%eb%95%8c-top-htop%eb%a1%9c-%ec%9b%90%ec%9d%b8-%ec%b0%be%eb%8a%94-%ec%88%9c%ec%84%9c-10%eb%b6%84-%ec%a7%84%eb%8b%a8-%eb%a3%a8%ed%8b%b4/">서버가 갑자기 느려질 때: TOP/HTOP로 10분 안에 범위 좁히는 방법</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">0️⃣ 5줄 요약 (운영 관점)</h2>



<ul class="wp-block-list">
<li>느려짐 원인은 대부분 CPU / 메모리(swap) / 디스크 I/O / 프로세스 폭주 중 하나다.</li>



<li>Load는 CPU 사용률이 아니라 “밀린 작업량”이다.</li>



<li>wa(iowait)가 높으면 CPU 문제가 아니라 디스크 병목일 가능성이 크다.</li>



<li>swap이 증가하면 체감 성능은 급격히 나빠진다.</li>



<li>top → htop → 원인별 1개 명령 추가 확인이면 대부분 10분 안에 범위를 좁힐 수 있다.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1️⃣ 문제 상황</h2>



<p>어느 날 갑자기 이런 연락이 옵니다.</p>



<ul class="wp-block-list">
<li>“사이트가 너무 느려요.”</li>



<li>“SSH는 되는데 명령이 버벅여요.”</li>



<li>“DB 쿼리가 갑자기 지연됩니다.”</li>
</ul>



<p>이때 제 머릿속에 가장 먼저 뜨는 후보는 네 가지입니다.</p>



<ol class="wp-block-list">
<li>CPU 과부하</li>



<li>메모리 부족(swap)</li>



<li>디스크 I/O 병목</li>



<li>프로세스 폭주</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2️⃣ 내 환경 (예시 기준)</h2>



<ul class="wp-block-list">
<li>Ubuntu 22.04</li>



<li>4 vCPU / 8GB RAM</li>



<li>Nginx + PHP-FPM + MariaDB</li>



<li>Docker 일부 사용</li>
</ul>



<p>※ 코어 수에 따라 Load 해석이 달라지므로 환경은 항상 먼저 확인합니다.</p>



<pre class="wp-block-preformatted">nproc</pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3️⃣ 1차 가설</h2>



<p>처음엔 대부분 “CPU가 문제인가?”부터 의심합니다.</p>



<p>하지만 경험상 절반 이상은 CPU가 아니었습니다.</p>



<p>특히:</p>



<ul class="wp-block-list">
<li>Load 높음 + CPU idle 많음 → 디스크 병목</li>



<li>체감 심한 느려짐 + swap 증가 → 메모리 압박</li>
</ul>



<p>그래서 1차 스냅샷은 반드시 OS 레벨에서 봅니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4️⃣ 1분 스캔: top으로 상태 스냅샷</h2>



<pre class="wp-block-preformatted">top</pre>



<h3 class="wp-block-heading">1️⃣ Load average</h3>



<p>Load는 CPU 사용률이 아닙니다.<br>“대기 중인 작업 수”에 가깝습니다.</p>



<p>4코어 서버 기준:</p>



<ul class="wp-block-list">
<li>0~4 → 정상 범위</li>



<li>6~10 → 병목 의심</li>



<li>10 이상 → 거의 확실히 무언가 막힘</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">2️⃣ CPU 라인 해석</h3>



<ul class="wp-block-list">
<li>id 낮고 us 높음 → 연산/쿼리/압축 등 CPU 사용</li>



<li>sy 높음 → 커널/네트워크/컨텍스트 스위칭</li>



<li>wa 높음 → 디스크 기다리는 중 (I/O 병목)</li>
</ul>



<p>⚠ wa가 15~20% 이상이면 디스크 문제 가능성 높음</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">3️⃣ 메모리 / Swap</h3>



<ul class="wp-block-list">
<li>Swap 사용 증가 = 체감 성능 급락 시작</li>



<li>RAM 사용률만 보고 판단하면 안 됨</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5️⃣ 3분: htop으로 범인 찾기</h2>



<pre class="wp-block-preformatted">htop</pre>



<ul class="wp-block-list">
<li>F6 → CPU% 정렬</li>



<li>F6 → MEM% 정렬</li>



<li>필요 시 “Show threads” 활성화</li>
</ul>



<p>확인 포인트:</p>



<ul class="wp-block-list">
<li>특정 프로세스가 계속 튀는가?</li>



<li>같은 서비스가 여러 개 과도하게 생성되는가?</li>



<li>사용자 계정이 예상과 다른가?</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6️⃣ 원인별 다음 확인 (한 번만 더 본다)</h2>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">① CPU 과부하 (us/sy 높음)</h3>



<pre class="wp-block-preformatted">ps -eo pid,user,ppid,cmd,%cpu,%mem --sort=-%cpu | head</pre>



<p>확인:</p>



<ul class="wp-block-list">
<li>배치 작업인가?</li>



<li>쿼리 폭주인가?</li>



<li>무한 루프인가?</li>
</ul>



<p>운영 팁:<br>재시작은 임시 해결일 뿐.<br>로그를 먼저 확인해야 재발 방지 가능.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">② 메모리 부족 (swap 증가)</h3>



<pre class="wp-block-preformatted">free -h</pre>



<p>확인:</p>



<ul class="wp-block-list">
<li>swap 사용량</li>



<li>캐시 vs 실제 사용 메모리</li>
</ul>



<p>운영 팁:</p>



<ul class="wp-block-list">
<li>도커 메모리 제한 설정 점검</li>



<li>자바/DB 힙 설정 확인</li>



<li>OOM 로그 확인</li>
</ul>



<pre class="wp-block-preformatted">dmesg | grep -i oom</pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">③ 디스크 I/O 병목 (wa 높음)</h3>



<pre class="wp-block-preformatted">df -h</pre>



<p>90% 이상이면 위험 구간.</p>



<pre class="wp-block-preformatted">sudo du -h -d 1 /var | sort -h | tail</pre>



<p>로그/도커 파일 폭증 확인.</p>



<p>가능하면:</p>



<pre class="wp-block-preformatted">iostat -xz 1 3</pre>



<p>I/O wait가 높고 await 값이 크면 디스크 병목.</p>



<p>운영 경험상:</p>



<ul class="wp-block-list">
<li>/var/log 폭증</li>



<li>Docker json 로그 무제한 증가</li>



<li>백업 파일 미정리</li>
</ul>



<p>이 세 가지가 단골입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">④ 프로세스 폭주 / 좀비</h3>



<pre class="wp-block-preformatted">ps -eLf | wc -l</pre>



<p>좀비 프로세스:</p>



<pre class="wp-block-preformatted">ps aux | awk '$8 ~ /Z/ { print }'</pre>



<p>systemd 실패 확인:</p>



<pre class="wp-block-preformatted">systemctl --failed</pre>



<p>크래시 루프는 CPU보다 더 체감 성능을 떨어뜨립니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">7️⃣ 실제 원인 패턴 (운영 경험)</h2>



<p>제가 겪은 실제 비율 체감:</p>



<ul class="wp-block-list">
<li>디스크 I/O 병목: 35%</li>



<li>메모리(swap) 문제: 30%</li>



<li>CPU 과부하: 20%</li>



<li>프로세스/크래시 루프: 15%</li>
</ul>



<p>의외로 CPU는 가장 흔한 원인이 아니었습니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">8️⃣ 해결 후 반드시 하는 것 (재발 방지)</h2>



<p>✔ 로그 보존 및 원인 기록<br>✔ swap 사용률 모니터링 추가<br>✔ 디스크 80% 이상 알림 설정<br>✔ Docker 로그 제한 설정<br>✔ 주기적 용량 점검 자동화</p>



<p>임시 재시작만 하고 끝내면, 같은 장애가 반복됩니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">9️⃣ 10분 진단 루틴 정리</h2>



<p>1️⃣ top → Load / id / wa / swap<br>2️⃣ htop → CPU% / MEM% 정렬<br>3️⃣ 원인별 명령 1개만 추가<br>4️⃣ 임시 조치 + 로그 확인<br>5️⃣ 재발 방지 설정</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">🔟 자주 하는 실수</h2>



<ul class="wp-block-list">
<li>Load만 보고 CPU 문제로 단정</li>



<li>wa를 안 보고 CPU%만 보는 실수</li>



<li>swap 증가를 정상으로 넘김</li>



<li>디스크 95%인데 방치</li>



<li>재시작만 하고 원인 기록 안 남김</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">📌 교훈</h2>



<p>느려짐은 대부분 “OS 자원 병목”입니다.<br>애플리케이션부터 의심하기보다,<br>커널이 관리하는 CPU/메모리/I/O 상태를 먼저 보는 습관이<br>장애 대응 속도를 가장 빠르게 올려줍니다.</p>



<p></p>
<p>게시물 <a href="https://howinfo.kr/%ec%84%9c%eb%b2%84%ea%b0%80-%eb%8a%90%eb%a6%b4-%eb%95%8c-top-htop%eb%a1%9c-%ec%9b%90%ec%9d%b8-%ec%b0%be%eb%8a%94-%ec%88%9c%ec%84%9c-10%eb%b6%84-%ec%a7%84%eb%8b%a8-%eb%a3%a8%ed%8b%b4/">서버가 갑자기 느려질 때: TOP/HTOP로 10분 안에 범위 좁히는 방법</a>이 <a href="https://howinfo.kr">하우인포-IT·테크</a>에 처음 등장했습니다.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://howinfo.kr/%ec%84%9c%eb%b2%84%ea%b0%80-%eb%8a%90%eb%a6%b4-%eb%95%8c-top-htop%eb%a1%9c-%ec%9b%90%ec%9d%b8-%ec%b0%be%eb%8a%94-%ec%88%9c%ec%84%9c-10%eb%b6%84-%ec%a7%84%eb%8b%a8-%eb%a3%a8%ed%8b%b4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
