OS SWAP이 왜 자꾸 사용하게 될까요? 누가 사용하는것일까요?
페이지 정보
작성자 OSworker 아이디로 검색 전체게시물 댓글 0건 조회 227회 좋아요 1회 작성일 24-08-30 21:36본문
안녕하세요~
오늘은 SWAP에 대해서 얘기해보려 합니다.
일단 기본적인 SWAP에 대해 설명 하겠습니다.
> 설명
리눅스에서 스왑(Swap)은 시스템의 물리적 메모리(RAM)가 부족할 때, 하드 디스크의 일부 공간을 임시 메모리로 사용하는 메커니즘입니다.
쉽게 말해, RAM이 모자랄 때 하드 디스크에 임시로 데이터를 저장해 메모리처럼 사용하는 것입니다.
> 스왑인(Swap-in) & 스왑아웃(Swap-out):
. 스왑아웃(Swap-out): RAM이 부족할 때, 사용하지 않는 데이터(프로세스나 페이지)를 스왑 공간으로 옮기는 작업입니다.
. 스왑인(Swap-in): 반대로 스왑 공간에 있던 데이터를 다시 RAM으로 가져오는 작업입니다.
> 스왑과 관련된 설정
swappiness: 리눅스 커널에서 메모리와 스왑 간의 균형을 조정하는 매개변수로, 값이 클수록 스왑을 더 많이 사용합니다. 일반적으로 0에서 100까지의 값을 가지며, 기본값은 60입니다.
이제 고객 입장에서 질문과 대답형식으로 풀어가보도록하겠습니다.
Q1) 서버에서 SWAP 이 발생되었는데 언제 사용했고, 어떤 프로세스가 사용했는지 알 수 있을까요?
. 보통 이렇게 시간이 지나서 확인된거라면, sar를 통해 시간대를 확인할수 있습니다.
r b swpd free buff cache si so bi bo in cs us sy id wa st KST
3 0 6953176 237892400 2120 284224480 0 0 5168 152 484706 899187 3 3 94 0 0 2023-08-16 09:25:58
3 0 6953176 237893952 2120 284224608 0 0 10315 524 478822 890220 3 3 94 0 0 2023-08-16 09:25:59
4 35 6951128 237878592 2120 284223424 4448 0 23535 308 541238 920980 4 3 70 23 0 2023-08-16 09:26:00 <<<<<<<<<---Swap in 발생
12 15 6949336 237871088 2120 284227104 6556 0 18934 412 581251 947324 3 3 59 34 0 2023-08-16 09:26:01
0 10 6948568 237843600 2120 284232096 5168 0 17674 704 538534 929558 4 4 67 25 0 2023-08-16 09:26:02
or
12:00:00 AM pswpin/s pswpout/s
<snip>
05:20:00 AM 0.21 0.00
05:30:00 AM 0.08 0.85
05:40:00 AM 0.47 0.00
05:50:00 AM 3.58 1.71
06:00:00 AM 2.48 0.00
06:10:00 AM 39.91 7.17 <<<<----- example of thrashing
06:20:00 AM 0.21 2.72
06:30:00 AM 13.30 1.04
Q2) 그럼 이 사용한 시간대의 프로세스를 알수있을까요?
. 시간이 지나간 시간대에 프로세스를 찾을수는 없습니다. 다만, 현재 발생이 되고 있거나 발생시점에서는 찾을수있습니다.
> 방법은 다음과 같습니다:
1. /proc/PID/status VmSwap을 grep으로 검색 - 이는 스왑된 데이터 양을 보여주지만, 정확하지 않을 수 있습니다.
# cat /proc/*/status | grep VmSwap
2. /proc/PID/smaps - 가장 정확한 정보 - 메모리 매핑별로 통계를 보여줍니다(프로세스가 가진 각 매핑에 대해).
# cat /proc/*/smaps | grep -i swap
Q3) SWAP이 현재 사용했던 수치로 계속 표현이 되는데 이것을 0 으로 수정 할수 있을까요?
. 사실 리부팅 하면 swap 사용률이 다시 0 으로 표시될것인데, 운영중이라면 방법이 있긴 합니다.
- 이와 같이 swap을 off->on 해주시면 됩니다.
# swapoff -a
# swapon -a
다만, 이런 식으로 스왑을 플러싱하면 스왑의 전체 내용이 주 메모리로 강제로 돌아갑니다.
시스템의 메모리가 이미 부족한 경우 메모리 부족(OOM) 상태가 될 수 있습니다. 이 옵션을 사용하기 전에 주의와 고려가 필요합니다.
시스템의 메모리가 다소 부족하고(매우 부족하지는 않음) 스왑의 내용을 메모리로 가져오는 동안 페이지를 회수해야 할 수 있으며, 이로 인해 잠시 성능이 저하될 수 있습니다.
Q4) 그런데 swap 이 자주 발생하는데 해결 방안이 있나요.?
. swap 이 자주 발생된다면, 해당 프로세스를 찾아서 메모리 사용방법에 대해 확인을 하셔야하며, 문제가 없다면
물리적인 메모리를 증설해주셔야 합니다.
참고링크:
위의 내용을 숙지하시면 앞으로 SWAP이 발생되더라도 당황하지 않고 처리 하실수있을거라 기대됩니다.
혹, 궁금한 사항 있으시면 댓글로 남겨주십시요
감사합니다.
댓글목록
등록된 댓글이 없습니다.