반응형
작성일: 2026년 5월 22일

 

VM 생성시 500GB 용량의 VM image file(예: abc.qcow2)을 생성했다고 하더라도

실제로 VM instance가 500GB 중에서 100GB만 파일을 사용하고 있다면

아래와 같이 qemu-img 명령을 통해서 Host OS에서는  100GB 용량의 qcow2 파일로 줄일 수 있다.

 

qemu-img convert -O qcow2 abc.qcow2 abc-shrunk.qcow2

 

그런데 위와 같이 qemu-img 명령을 사용한다고 해서 500GB Volume이 항상 100GB짜리로qcow2 파일로 줄어드는 것은 아니다.

일반적으로 VM instance 내부에서는 파일을 만들고, 삭제하는 과정을 반복할 것이다.

VM instance의 운영 시간이 길어지고 많은 일을 하면서 이런 file 생성과 삭제는 더 많이 발생할 것이다.

대부분의 OS에서는 File을 삭제한다고 해도 삭제된 파일이 진짜로 Storage volume에서 '0' 또는 'NULL'로 Clear되는게 아니고

File 내용은 온전하게 남아 있고, File system 관리 테이블에 File name과 Meta data 정도만 삭제하는 것이다.

(디지털 포렌식할 때, 기존 삭제된 데이터가 모두 복구되는 이유도 Filesystem의 이런 동작 방식 때문이다)

 

그렇기 때문에 현재 `df -h` 명령으로 File system의 용량을 조회했을 때, 100GB로 보이더라도 

Storage volume에는 기존에 삭제했던 File contents들이 그대로 남아 있어서 0x0 값이 아닌 뭔가 값이 채워진 Storage volume의 공간이 100GB보다는 훨씬 크다.

이것 때문에 `qemu-img convert` 명령으로 Volume의 빈공간을 줄이려고 해도 줄여지지 않는 것이다.

(실제로 Volume에는 빈 공간이 있는게 아니고, 기존에 지워진 File contents는 남아 있으니까)

 

그래서 아래와 같이 강제로 Storage volume에서 File system이 관리하는 영역이 아닌 모든 공간을 '0x00' 값으로 채우고

`qemu-img conver` 명령을 실행하면 아주 깔끔하게 qcow2 image file의 크기가 줄어든다.

 

## VM instance 내부에서 아래의 명령을 실행한다.

sudo dd if=/dev/zero of=/zero.fill bs=1M status=progress
sudo sync
sudo rm /zero.fill

 

(i) 주의할 점: 위 명령은 Storage volume의 bit 단위로 모두 0x0 값으로 바꾸는 작업을 하기 때문에 오랜 시간이 걸린다.

 

위 작업이 끝나고, Host OS에서 아래와 같이 qcow2 image file의 빈공간을 제거하는 작업을 한다.

qemu-img convert -O qcow2 abc.qcow2 abc-shrunk.qcow2

 

이렇게 하면, 500GB 짜리 QCOW2 파일의 크기가 많이 줄어들것이다.

(운이 좋으면, 7~8GB로 대폭 줄어들수도 있음~~ ^^)

 
반응형
주요 벤더 VPN 장비 성능 제원 비교표

주요 벤더 VPN 장비 성능 제원 비교표

Cisco · Palo Alto Networks · Fortinet · Check Point · SonicWall · Juniper

저사양(SOHO/지점) · 중급(중견기업/캠퍼스) · 고사양(데이터센터/엔터프라이즈)

한눈에 보는 등급별 요약

저사양 (SOHO / 소규모 지점)

IPsec VPN 처리량

~ 1 Gbps

사용자: 10~100명 · 동시터널: 50~200

예: Cisco Meraki MX67, PA-440, FG-60F

중급 (중견기업 / 캠퍼스)

IPsec VPN 처리량

1 ~ 20 Gbps

사용자: 수백~수천명 · 동시터널: 1,000~10,000

예: FPR-1140, PA-3420, FG-400F

고사양 (DC / 대기업)

IPsec VPN 처리량

20 ~ 500+ Gbps

사용자: 수만~수십만명 · 동시터널: 100,000+

예: FPR-9300, PA-7080, FG-4200F

참고: 본 자료는 각 벤더의 공식 데이터시트(2023~2025년 기준)를 기반으로 작성된 요약 자료입니다. 실제 성능은 측정 환경(패킷 사이즈, 암호화 알고리즘, 활성화된 보안 기능 등)에 따라 달라질 수 있으니, 도입 검토 시 반드시 최신 데이터시트와 PoC 결과를 함께 확인하시기 바랍니다.
LOW

저사양 — SOHO / 소규모 지점용

소규모 사무실, 원격 지점, 재택근무 게이트웨이용. 일반적으로 1U 데스크탑 폼팩터, IPsec VPN 1 Gbps 이하.

🟦 Cisco — Meraki MX / Firepower 1010 / ASA 5500-X 시리즈

중소기업·지점용. Meraki MX는 클라우드 관리형, FPR-1010은 차세대 방화벽 통합형.

모델 방화벽 처리량 IPsec VPN 처리량 동시 VPN 터널 동시 세션 폼팩터 주요 용도
Meraki MX67450 Mbps200 Mbps50Desktop소규모 지점
Meraki MX68450 Mbps200 Mbps50Desktop소규모 지점 (PoE)
Meraki MX751 Gbps600 Mbps100Desktop중소 지점
Firepower 10102 Gbps400 Mbps75100,000DesktopNGFW 통합 소형
Firepower 1010E2 Gbps400 Mbps75100,000Desktop (Fanless)OT/산업 환경
ASA 5506-X (EoL)750 Mbps100 Mbps1050,000Desktop레거시 SOHO

🟧 Palo Alto Networks — PA-400 시리즈

차세대 PA-400 시리즈가 기존 PA-220을 대체. 모두 데스크탑 폼팩터.

모델 방화벽 처리량 IPsec VPN 처리량 동시 IPsec 터널 동시 세션 SSL VPN 사용자 비고
PA-4101.0 Gbps0.5 Gbps25064,000100최소형 NGFW
PA-4151.7 Gbps0.9 Gbps500100,000200지점용
PA-4403.0 Gbps1.6 Gbps1,000200,000500중소 지점
PA-4454.9 Gbps2.4 Gbps2,000300,0001,000중소기업
PA-4505.5 Gbps2.8 Gbps3,000400,0001,500중소기업 상위
PA-4606.6 Gbps3.4 Gbps4,000500,0002,000SMB 최상위

🟥 Fortinet — FortiGate 40F / 60F / 80F / 90G 시리즈

전용 ASIC(SP5/NP7lite)로 IPsec 성능 대비 가성비 우수. 데스크탑 폼팩터.

모델 방화벽 처리량 IPsec VPN 처리량 동시 IPsec 터널 SSL VPN 처리량 동시 세션 비고
FortiGate 40F5 Gbps4.4 Gbps200900 Mbps700,000SOHO 최저가
FortiGate 60F10 Gbps6.5 Gbps200900 Mbps700,000소규모 지점 베스트셀러
FortiGate 70F10 Gbps11.5 Gbps2001 Gbps700,000중상위 지점
FortiGate 80F10 Gbps6.5 Gbps2,5001 Gbps1.5M지점/소기업 확장형
FortiGate 90G20 Gbps17 Gbps2,5002 Gbps1.5M차세대 SP5 ASIC
FortiGate 100F20 Gbps11.5 Gbps2,5002 Gbps1.5M1U 진입 모델

🟩 SonicWall — TZ 시리즈

중소기업·지점용 통합 보안 게이트웨이. TZ270~TZ670까지 데스크탑/1U.

모델 방화벽 처리량 IPsec VPN 처리량 동시 IPsec 터널 SSL VPN 사용자(최대) 동시 세션 비고
TZ2702.0 Gbps1.0 Gbps4075500,000SOHO
TZ3702.5 Gbps1.5 Gbps75100750,000소규모 지점
TZ4703.5 Gbps2.0 Gbps1502001.0M중소 지점
TZ5705.0 Gbps3.0 Gbps2503501.5M중규모
TZ67010.0 Gbps5.0 Gbps4005002.0M중규모 상위

🟪 Check Point — Quantum Spark 1500 시리즈 / 1600

SMB 전용 라인. 클라우드 관리 SMP 지원.

모델 방화벽 처리량 IPsec VPN 처리량 동시 VPN 터널 동시 세션 SecurityPower 비고
1530 / 15501.0 Gbps450 Mbps100100,000335 SPUSOHO
1570 / 15902.0 Gbps630 Mbps100500,000450 SPU소규모 지점
16002.5 Gbps1.4 Gbps500500,000600 SPU차세대 1U
18003.2 Gbps1.7 Gbps1,0001.0M750 SPU중상위 지점

🟫 Juniper — SRX300 / SRX320 / SRX340 / SRX345

통신사·금융 지점에서 선호. Junos OS 기반.

모델 방화벽 처리량 IPsec VPN 처리량 동시 VPN 터널 동시 세션 폼팩터 비고
SRX3001.0 Gbps300 Mbps51264,000Desktop최소형
SRX3201.0 Gbps300 Mbps51264,000Desktop (PoE)지점용
SRX3403.0 Gbps600 Mbps2,000256,0001U중소 지점
SRX3455.0 Gbps800 Mbps2,000375,0001U중규모 지점
MID

중급 — 중견기업 / 캠퍼스 / 대규모 지점

수백~수천명 규모 사업장, 본사 게이트웨이, 캠퍼스 코어용. 1U~2U 랙형, IPsec 1~20 Gbps급.

🟦 Cisco — Firepower 1100/2100 시리즈 · Secure Firewall 3100 시리즈

FPR-3100 시리즈가 차세대 중급. 기존 FPR-2100을 대체.

모델 방화벽 처리량 IPsec VPN 처리량 동시 IPsec 터널 동시 세션 인터페이스 비고
Firepower 11204 Gbps1 Gbps150200,0008x1GE지점/중소
Firepower 11405 Gbps1.5 Gbps400400,0008x1GE + 4xSFP중소기업
Firepower 11507.5 Gbps2.4 Gbps8001.0M8x1GE + 4xSFP+중규모
Secure FW 310545 Gbps8.5 Gbps3,0004.0M8xSFP+중급 진입형
Secure FW 311060 Gbps11 Gbps10,0007.0M8xSFP+ + 8xSFP28중견기업
Secure FW 312075 Gbps15 Gbps15,0009.0M8xSFP+ + 8xSFP28대형 캠퍼스
Secure FW 313090 Gbps18 Gbps20,00012M8xSFP+ + 8xSFP28본사 게이트웨이
Secure FW 3140120 Gbps23 Gbps25,00015M8xSFP+ + 8xSFP28중급 최상위

🟧 Palo Alto Networks — PA-1400 / PA-3400 시리즈

중견기업·지점본사용. 1U 랙형. 하드웨어 가속(QAT) 탑재.

모델 방화벽 처리량 위협방어 처리량 IPsec VPN 처리량 동시 IPsec 터널 동시 세션 SSL VPN 사용자
PA-14109.4 Gbps5.0 Gbps5.0 Gbps6,0001.0M3,000
PA-142013.4 Gbps7.5 Gbps7.5 Gbps8,0001.5M5,000
PA-341023 Gbps13 Gbps14 Gbps16,0003.0M10,000
PA-342031 Gbps17 Gbps18 Gbps20,0004.0M15,000
PA-343040 Gbps23 Gbps23 Gbps30,0005.0M20,000
PA-344051 Gbps28 Gbps28 Gbps40,0006.0M25,000

🟥 Fortinet — FortiGate 200F / 400F / 600F / 900G 시리즈

NP7/SP5 ASIC 기반. IPsec 성능이 동급 대비 매우 높음 (벤더 강점).

모델 방화벽 처리량 IPsec VPN 처리량 동시 IPsec 터널 SSL VPN 처리량 동시 세션 신규 세션/초
FortiGate 200F27 Gbps17 Gbps2,5002.7 Gbps3.0M350,000
FortiGate 400F52 Gbps35 Gbps20,0008 Gbps7.0M500,000
FortiGate 600F98 Gbps55 Gbps20,0009.5 Gbps10M600,000
FortiGate 900G164 Gbps100 Gbps50,00012 Gbps15M800,000
FortiGate 1000F198 Gbps140 Gbps50,00015 Gbps25M900,000

🟩 SonicWall — NSa 2700 / 3700 / 4700 / 5700

중견기업 게이트웨이. 1U 랙형, RTDMI 샌드박싱 가능.

모델 방화벽 처리량 IPsec VPN 처리량 동시 IPsec 터널 SSL VPN 사용자 동시 세션 비고
NSa 27005.5 Gbps3.5 Gbps2,0005002.0M중소~중견
NSa 37009.0 Gbps6.0 Gbps3,0001,5003.0M중견
NSa 470018.0 Gbps10.0 Gbps6,0003,0006.0M중대형
NSa 570022.5 Gbps14.0 Gbps10,0006,00010M대형 캠퍼스

🟪 Check Point — Quantum 6000 / 7000 시리즈

중견기업·금융권에서 선호. SmartConsole 통합 관리.

모델 방화벽 처리량 위협방어 처리량 IPsec VPN 처리량 동시 VPN 터널 동시 세션 SecurityPower
Quantum 620012 Gbps3 Gbps3.2 Gbps5,0003.0M1,200 SPU
Quantum 640017 Gbps4.5 Gbps5 Gbps10,0005.0M1,800 SPU
Quantum 660022 Gbps6 Gbps7 Gbps15,0007.0M2,400 SPU
Quantum 670038 Gbps10 Gbps12 Gbps25,00010M3,400 SPU
Quantum 690042 Gbps14 Gbps15 Gbps30,00015M4,100 SPU
Quantum 700075 Gbps22 Gbps24 Gbps50,00025M6,700 SPU

🟫 Juniper — SRX1500 / SRX4100 / SRX4200

통신사·대기업 캠퍼스에서 사용. 라우팅 성능과 결합한 보안 게이트웨이.

모델 방화벽 처리량 IPsec VPN 처리량 동시 VPN 터널 동시 세션 신규 세션/초 폼팩터
SRX15009 Gbps3.5 Gbps4,0002.25M100,0001U
SRX160036 Gbps14 Gbps10,0008.0M300,0001U
SRX230065 Gbps23 Gbps15,00015M500,0001U
SRX410040 Gbps10 Gbps8,0006.0M175,0001U
SRX420080 Gbps17 Gbps16,00012M350,0001U
HIGH

고사양 — 데이터센터 / 대기업 / 통신사 코어

데이터센터 코어, 인터넷 게이트웨이, 통신사 보안 인프라용. 2U~샤시형, IPsec 20 Gbps~500+ Gbps. 다중블레이드·HA 클러스터·400G 인터페이스 지원.

🟦 Cisco — Secure Firewall 4200 / Firepower 4100 / 9300 샤시

데이터센터·통신사용 플래그십. 9300은 모듈형 샤시로 100G/400G 인터페이스 지원.

모델 방화벽 처리량 IPsec VPN 처리량 동시 IPsec 터널 동시 세션 인터페이스 폼팩터
Secure FW 4215140 Gbps29 Gbps25,00018M8xSFP28 + 4xQSFP+1U
Secure FW 4225175 Gbps38 Gbps30,00025M8xSFP28 + 4xQSFP+1U
Secure FW 4245240 Gbps55 Gbps40,00035M8xSFP28 + 4xQSFP282U
Firepower 9300 SM-4080 Gbps22 Gbps20,00035M모듈형 (10/40/100G)3U 샤시
Firepower 9300 SM-48125 Gbps36 Gbps25,00050M모듈형 (10/40/100G)3U 샤시
Firepower 9300 SM-56190 Gbps50 Gbps30,00070M모듈형 (10/40/100G)3U 샤시 (3블레이드)
Firepower 9300 (3x SM-56)~570 Gbps~150 Gbps90,000200M+최대 8x100GE통신사 코어

🟧 Palo Alto Networks — PA-5400 / PA-7000 시리즈

데이터센터 NGFW 플래그십. PA-7080은 20개 NPC 슬롯의 샤시형 최고 사양.

모델 방화벽 처리량 위협방어 처리량 IPsec VPN 처리량 동시 IPsec 터널 동시 세션 신규 세션/초
PA-541073 Gbps39 Gbps42 Gbps40,0008.0M500,000
PA-542098 Gbps53 Gbps56 Gbps60,00015M600,000
PA-5430137 Gbps76 Gbps78 Gbps100,00025M900,000
PA-5440174 Gbps98 Gbps98 Gbps150,00036M1.4M
PA-5450235 Gbps132 Gbps130 Gbps200,00075M2.6M
PA-7050 (full)500 Gbps237 Gbps240 Gbps250,000120M4.5M
PA-7080 (full)1.27 Tbps472 Gbps400+ Gbps400,000200M7.0M

🟥 Fortinet — FortiGate 1800F / 3000F / 4200F / 7000F 샤시

NP7 + SP5 ASIC 기반 데이터센터 NGFW. 단일 박스 IPsec 성능은 업계 최고 수준.

모델 방화벽 처리량 IPsec VPN 처리량 동시 IPsec 터널 동시 세션 신규 세션/초 인터페이스
FortiGate 1800F198 Gbps135 Gbps50,00025M900,0004x100GE + 12x25GE
FortiGate 2600F240 Gbps160 Gbps50,00028M1.5M4x100GE + 12x25GE
FortiGate 3000F387 Gbps220 Gbps50,00040M1.6M4x100GE + 24x25GE
FortiGate 3700F800 Gbps390 Gbps50,00090M2.0M4x400GE + 8x200GE
FortiGate 4200F800 Gbps420 Gbps50,000120M2.5M4x400GE + 24x100GE
FortiGate 4400F1.15 Tbps520 Gbps50,000150M3.0M8x400GE + 24x100GE
FortiGate 7081F (샤시)1.89 Tbps890 Gbps100,000320M7.5M모듈형 (400G)
FortiGate 7121F (샤시)3.0 Tbps1.0 Tbps100,000480M11M모듈형 (400G)

🟩 SonicWall — NSsp 시리즈 (Network Security services platform)

대기업·MSSP·통신사용 플래그십. 다중 NPU 기반.

모델 방화벽 처리량 IPsec VPN 처리량 동시 IPsec 터널 SSL VPN 사용자 동시 세션 인터페이스
NSsp 1070036 Gbps25 Gbps12,00010,00015M4xQSFP28 + 16xSFP+
NSsp 1170050 Gbps36 Gbps25,00012,00022M4xQSFP28 + 16xSFP+
NSsp 1370073 Gbps55 Gbps40,00015,00035M4xQSFP28 + 16xSFP+
NSsp 15700152 Gbps110 Gbps80,00020,00060M4xQSFP28 + 24xSFP28

🟪 Check Point — Quantum 16000 / 19000 / 26000 / 28000 / Maestro Hyperscale

데이터센터 & 통신사용. Maestro 오케스트레이터로 최대 52노드 가상 게이트웨이 확장 가능.

모델 방화벽 처리량 위협방어 처리량 IPsec VPN 처리량 동시 VPN 터널 동시 세션 SecurityPower
Quantum 1620080 Gbps22 Gbps26 Gbps50,00025M7,800 SPU
Quantum 16600100 Gbps30 Gbps35 Gbps75,00030M9,800 SPU
Quantum 1910088 Gbps36 Gbps37 Gbps100,00035M10,000 SPU
Quantum 19200100 Gbps44 Gbps42 Gbps120,00040M11,500 SPU
Quantum 26000200 Gbps70 Gbps85 Gbps200,00070M22,000 SPU
Quantum 28000400 Gbps120 Gbps150 Gbps300,000120M42,000 SPU
Maestro Hyperscale (52노드)1.5 Tbps+650 Gbps800 Gbps+1,000,000+500M+2,000,000+ SPU

🟫 Juniper — SRX4600 / SRX5400 / SRX5600 / SRX5800

통신사 & 대형 데이터센터 코어. SRX5800은 12 슬롯 모듈형 샤시.

모델 방화벽 처리량 IPsec VPN 처리량 동시 VPN 터널 동시 세션 신규 세션/초 폼팩터
SRX4600160 Gbps40 Gbps30,00030M575,0002U
SRX4700350 Gbps90 Gbps60,00060M1.5M2U
SRX5400480 Gbps100 Gbps75,00090M1.0M5U 샤시
SRX5600960 Gbps200 Gbps100,000175M1.8M8U 샤시
SRX58002.0 Tbps400+ Gbps200,000350M3.6M16U 샤시 (12슬롯)

측정 기준 및 참고사항

방화벽 처리량(Firewall Throughput): 일반적으로 1518B UDP 패킷 기준의 최대 단순 포워딩 성능. NGFW/위협방어 활성화 시 통상 30~50%로 감소.
IPsec VPN 처리량: AES-256-GCM 또는 AES-128 + SHA1/SHA256 기준 (벤더마다 상이). 패킷 사이즈 1280~1400B가 일반적.
동시 IPsec 터널(Concurrent Tunnels): 동시에 유지 가능한 IKEv2 site-to-site 또는 GRE-over-IPsec 터널 수.
SSL VPN 사용자/처리량: 원격접속(클라이언트 SSL VPN) 동시 사용자 또는 처리량. 라이선스에 따라 추가 제한이 있을 수 있음.
동시 세션(Concurrent Sessions): 상태 테이블에서 유지 가능한 동시 연결 수.
SecurityPower(SPU): Check Point 고유 지표. 실제 운영 환경에서 IPS·AV·앱컨트롤 등을 켜고 측정한 종합 처리 능력 단위.
벤더별 강점 요약
  • Cisco — 네트워크 인프라와의 통합(SD-WAN, ISE, DNA), 글로벌 지원·국내 레퍼런스 풍부
  • Palo Alto Networks — 애플리케이션 식별(App-ID)·콘텐츠 ID 기반 NGFW 1위. Prisma Access(SASE) 통합 강점
  • Fortinet — 자체 ASIC(NP/SP) 기반 IPsec 성능 가성비 최고. SD-WAN/SASE/스위치/AP까지 보안 패브릭 통합
  • Check Point — 위협 인텔리전스(ThreatCloud)·정책 관리 UX. Maestro 하이퍼스케일
  • SonicWall — 중소·중견 시장 가성비. RTDMI 샌드박싱
  • Juniper — 라우팅·캐리어 환경 강점, MX/PTX와 결합한 SP 보안
주의: 본 표의 수치는 각 벤더 공식 데이터시트의 대표값을 발췌·정리한 것이며, 모델 라인업·EOL/EoS·소프트웨어 버전에 따라 변동될 수 있습니다. 구매·도입 의사결정 시에는 최신 공식 데이터시트(vendor.com/datasheet)현장 PoC를 반드시 병행하시기 바랍니다.

VPN 장비 성능 제원 비교표 · 작성일 2026-05-20

출처: 각 벤더 공식 데이터시트 (Cisco · Palo Alto Networks · Fortinet · Check Point · SonicWall · Juniper)

반응형
작성일: 2026년 4월 21일

 

브롬튼 라이저바에 스마트폰 거치대를 장착하기 위해 라이저바를 고정하는 육각볼트를 풀다가 드릴 비트가 똑부러졌다.

전동 드릴의 트리거를 당기고 0.1초만에 부러지다니... 허망하다.

 

자전거를 조립할 때, 이 정도로 볼트를 단단하게 조이는 자전거 제조사의 상식없은 행동 때문에 허망하고,

0.1초만에 쇳덩이(드릴 비트)가 부러진 것도 허망하다.

 

결국 드릴비트를 다시 주문했다. ㅠㅠ

 

이것 때문에 시간도 더 쓰고, 돈도 더 쓰는 이중 지출이 생기네 ㅡㅡ;

 

 

 

 

 

 

 

 

반응형
작성일: 2026년 4월 10일

 

 

내가 사마귀 치료를 한 서사가 길지만, 간략하게 요약하면 이렇다.

[5년 전]
처음으로 엄지 발가락에 2mm 정도 크기의 사마귀가 보였음.
처음에는 사마귀인 줄 모를 정도로 좁쌀처럼 작았음.

[4년 전]
환부가 10mm 정도로 커서 양말을 벗으면 바로 사마귀가 보였음.  이때부터 피부과를 찾아봤음.
피부과에서 레이저 치료를 받았고, 9개월 정도는 매끈한 상태를 유지했음.

[3년 전]
다시 동일한 위치에 사마귀가 재발했음. (피부과 의사가 레이저 치료할 때, 1년 뒤에 사마귀가 재발할거라고 했음)
사마귀 치료로 유명한 한의원이 있어서 200만원 정도 내고 치료를 시작했음. (3개월 치료 프로그램)
3개월간 한방 치료를 받았지만 1%도 좋아지지 않았음.
원장 한의사가 3개월 연장 치료하면 100% 완치된다고 설득함. (즉, 200만원을 추가 결제하라는 뜻 ㅠㅠ)

그냥 한의원을 나왔음. 

한의사에게 완전 속았음. ㅠㅠ  (시간과 돈 낭비 ㅠㅠ)


[2년 전]
아들 딸과 토요일, 일요일마다 수영장에 가서 2시간씩 수영을 했음.
1년 넘게 이런 패턴으로 수영을 했었는데, 1년이 지날 때쯤 발가락에 있던 사마귀가 사라졌음 :)
그 뒤로 지금까지 사마귀는 재발하지 않고 있음.

[원인 분석 및 결론]
수영장에서 수영을 2시간씩 꾸준하게 했을 때, 사마귀(유두종 바이러스)가 치료된 이유가 무엇일까?
내가 생각하기에는;
- 직접적인 원인:
    2시간 동안 수영하면서 피부가 물에 퉁퉁부었고,
    그때 사마귀가 있는 부위를 살살 문질렸을 때 피부 조직이 평소보다 많이 떨어졌음.
    (어떤 날은 수영장에서 샤워하는 동안에 피부 상처 딱지가 떨어지듯 사마귀 환부의 피부가 떨어질 때도 있었음)
    이것을 1년 동안 반복하니까 사마귀 환부가 점점 작아지다가 사라진 듯.
- 간접적인 원인:
    주2회씩, 2시간씩 수영을 하니까 면역력이 좋아진 것 같음.
    그리고 수영장 수질 유지를 위해서 물에 약품을 섞었을텐데, 그 약품 때문에 피부에 있는 균과 바이러스들이 죽었을듯.

위의 3가지 원인이 복합적으로 작용해서 사마귀를 치료했다고 생각함. ㅎㅎㅎ
혹시 사마귀 치료로 어려움을 겪는 분이 있다면 위의 방법을 추천함 :)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
작성일: 2026년 3월 31일

 

나는 회사 업무 때문에 Oracle Cloud와 Amazon Cloud를 동시에 사용하고 있다.

동일한 Resource 사용을 하는 경우, Oracle Cloud가 Amazon Cloud보다 3배 가량 저렴해서 지난 3년 동안 만족하면서 사용했었다.

그런데 올해부터 가상 Resource 자체의 장애와 OCI Web Console의 먹통 현상이 있어서 짜증이 좀 났다.

특히, 오늘 Resource deletion에 대한 처리를 하려다가 OCI Web Console에서 계속 'Error' 메시지가 출력되면서 업무가 안 되고 있다.

그리고 나는 Oracle Support 사이트에 가서 "SR(Service Request)"를 하라고 안내를 받았다.

Oracle Support 사이트에 로그인하고, "Service Request" 버튼을 누르는 순간... 나의 화는 절정에 도달했다.

출근해서 오전 내내 Oracle Cloud Web Console의 Error 메시지만 봐서 화만 많이 난 상태인데,

Oracle Support 사이트에서는 AI가 응대하고 있는 것이다.

혹시나 AI가 Errror 이슈에 대해서 해결해주나 약간의 희망을 가지고 AI와 대화를 도전했으나

역시나 예상한대로 AI는 저장된 뻔한 답변만 되풀이 할 뿐이다.

이미 알고 있는 뻔한 대답을 듣자고 Oracle Support 사이트에 로그인한 것이 아니다.

 

그냥 이슈 해결을 위한 SR(Service Request) 입력 폼이나 보여 달라구... Oracle 이 개X의 자X들아!

 

 

1시간 동안 Oracle Cloud Web Console에서 시달리고, Oracle Support AI한테 30분 동안 시달렸더니 오늘은 일할 에너지가 남질 않는다. ㅠㅠ

 

진짜 이렇게 Cloud Infra를 관리할거면, Oracle은 왜 Cloud Infra와 Platform 사업을 하는거야?

 

 올해까지만 쓰고, Oracle Cloud를 해지할 결심 !
반응형
작성일: 2026년 3월 5일

 

 

이 문서는 Linux 커널이 네트워크 트래픽을 어떻게 받고 처리하는지, DMA·링 버퍼·softIRQ·NAPI·RPS까지 한 흐름으로 정리한 요약이다.

 

1. DMA 링 버퍼와 TX/RX 링의 관계

DMA 링 버퍼와 TX/RX 링은 같은 개념을 가리킨다. 네트워크 카드는 소프트웨어(커널 드라이버)가 할당한 메모리 영역을 DMA로 직접 접근하며, 이 공유 메모리 구조를 흔히 “DMA 링 버퍼” 또는 “TX/RX 링”이라고 부른다.

구성 요소

  • 링(Ring): RAM에 있는 고정 크기의 원형 큐. 각 항목은 디스크립터(또는 주소)로, 실제 패킷이 들어 있는 버퍼를 가리킨다.
  • TX 링: 전송할 데이터가 들어 있는 RAM 버퍼의 시작/끝 주소(디스크립터)를 담는다.
  • RX 링: NIC가 수신 패킷을 쓸 RAM 버퍼의 주소를 담는다. NIC는 DMA로 이 버퍼에 직접 쓴다.
  • NIC 레지스터: 링 버퍼가 위치한 RAM 주소를 NIC가 알 수 있도록 레지스터에 설정된다.

DMA Ring buffer와 TX/RX Ring 관계

 

 

링과 버퍼는 모두 DMA 가능 메모리로 할당된다. 링은 지속적으로 NIC와 공유되므로 coherent/consistent DMA, 버퍼는 흐름 단위이므로 streaming DMA로 다루는 경우가 많다.

 

네트워크 링 버퍼의 역할

네트워크 링 버퍼는 NIC가 DMA로 직접 접근하는 메모리 영역이다. 크게 두 부분이 있다.

  • 링(큐) 부분: 고정 크기의 원형 FIFO 큐. 각 항목은 디스크립터(또는 메모리 주소)로, 실제 데이터가 들어 있는 영역을 가리킨다.
  • 버퍼(메모리) 부분: 실제 패킷 데이터가 들어가는 영역. 커널이 할당하고 디스크립터를 통해 링과 연결한다.

RX 링 버퍼는 수신용, TX 링 버퍼는 송신용이다. 둘 다 특정 네트워크 인터페이스에 묶여 있으며, 해당 인터페이스로 송수신하는 모든 트래픽이 이 링을 공유한다.

2. softIRQ 시스템과 ksoftirqd 초기화

디바이스는 “처리할 일이 있다”는 것을 IRQ(인터럽트)로 알린다. 네트워크의 경우 NIC가 패킷 도착 시 IRQ를 발생시킨다. IRQ 핸들러는 최우선으로 실행되며 다른 IRQ를 막을 수 있기 때문에, 커널은 짧게만 처리하고 나머지 작업을 softIRQ로 미룬다.

softIRQ는 “IRQ 컨텍스트 밖”에서 실행되는 지연 처리 메커니즘이다. 네트워크 수신의 경우 이 작업이 ksoftirqd 커널 스레드에서 실행된다.

부팅 시 초기화 순서

  1. ksoftirqd 스레드 생성: CPU당 하나씩 kernel/softirq.c의 spawn_ksoftirqd → smpboot_register_percpu_thread로 생성된다. 실제 루프에서 돌리는 함수는 run_ksoftirqd이다.
  2. softnet_data: CPU당 하나씩 생성된다. 네트워크 처리에 필요한 구조체 참조(예: poll_list)를 담는다. NAPI 폴 워커는 napi_schedule 등으로 이 poll_list에 붙는다.
  3. NET_RX_SOFTIRQ 등록: net_dev_init에서 open_softirq로 NET_RX_SOFTIRQ를 등록하고, 핸들러로 net_rx_action을 지정한다. 수신 패킷의 실제 처리는 이 함수에서 이뤄진다.
Linux OS 부팅시, softIRQ 시스템 초기화 순서
CPU당 ksoftirqd와 softnet_data가 만들어진 뒤 NET_RX_SOFTIRQ가 net_rx_action과 연결된다.

 

3. 데이터 도착부터 softIRQ까지

패킷이 도착하면 NIC → DMA → IRQ → 드라이버 → NAPI 스케줄 → softIRQ 순으로 진행된다.

하드웨어/드라이버 측

  1. 패킷이 NIC에 도착한다.
  2. NIC가 DMA로 패킷 데이터를 RAM의 RX 링이 가리키는 버퍼에 쓴다(CPU는 관여하지 않음).
  3. NIC가 IRQ를 발생시킨다.
  4. 드라이버에 등록된 IRQ 핸들러가 실행된다.
  5. NIC에서 IRQ를 클리어해 이후 패킷에 대해 다시 IRQ를 낼 수 있게 한다.
  6. NAPI softIRQ 폴 루프를 napi_schedule로 시작한다. 이 호출은 비트 플래그를 세우고 현재 CPU의 poll_list에 해당 디바이스의 NAPI 구조체를 넣는 정도만 하고, 실제 무거운 작업은 softIRQ로 넘긴다.

데이터 도착부터 softIRQ 처리까지의 시퀀스.

 

NIC가 DMA로 쓴 뒤 IRQ만 걸고, 실제 수신 처리는 ksoftirqd에서 이뤄진다.

 

softIRQ 쪽 (ksoftirqd)

  1. napi_schedule로 해당 CPU의 poll_list에 NAPI 폴 구조체가 추가된다.
  2. 해당 CPU의 softIRQ pending 비트가 설정되어, 그 CPU의 ksoftirqd가 “처리할 패킷이 있다”는 것을 알게 된다.
  3. ksoftirqd 커널 스레드의 run_ksoftirqd가 동작한다.
  4. __do_softirq가 pending을 보고, 등록된 핸들러인 net_rx_action을 호출한다. 무거운 수신 처리 작업은 IRQ 핸들러가 아니라 이 softIRQ 컨텍스트(ksoftirqd)에서 수행된다.

정리하면, NIC는 DMA로 RX 링 버퍼에만 쓰고, CPU는 IRQ에서 최소한의 일만 한 뒤 softIRQ로 “나중에 처리”를 맡기고, 실제로 RX 링에서 패킷을 꺼내서 프로토콜 스택으로 넘기는 것은 net_rx_action → 드라이버 poll (예: igb_poll)이다.

4. net_rx_action와 수신 처리

net_rx_action은 현재 CPU의 poll_list에 있는 NAPI 구조체들을 순회하며, 각 디바이스의 poll 함수를 호출한다.

처리 흐름 요약

  1. net_rx_action이 NAPI 폴 리스트에서 NAPI 구조체를 꺼낸다.
  2. budget과 경과 시간을 확인해 softIRQ가 CPU를 독점하지 않도록 한다.
  3. 등록된 poll 함수를 호출한다(예: igb_poll). 이 함수가 RAM의 RX 링 버퍼에서 패킷을 가져온다.
  4. 패킷은 napi_gro_receive로 넘어가 GRO(Generic Receive Offload) 등을 처리한다.
  5. GRO에서 묶이거나, 그렇지 않으면 netif_receive_skb → 프로토콜 스택으로 전달된다.
net_rx_action 처리 흐름

 

NAPI(New API) poll이 RX 링에서 패킷을 꺼내 GRO를 거쳐 netif_receive_skb로 넘긴다.

 

net_rx_action/igb_poll이 멈추는 경우

  • 처리 시간이 너무 길어질 때
  • budget 한도에 도달했을 때 (CPU 사용 제한)
  • 더 읽을 데이터가 없을 때

budget 소진이나 시간 제한 때문에 아직 처리할 패킷이 있는데 루프가 끝나면 /proc/net/softnet_stat의 세 번째 필드(time_squeeze)가 증가한다. 이 값이 0보다 크면 한도에 걸린 것이다. CPU 여유가 있다면 netdev_budget을 올려서 net_rx_action이 더 많은 패킷을 처리하도록 할 수 있다.

# 기본값 300, 필요 시 증가
echo 900 > /proc/sys/net/core/netdev_budget

5. RPS (Receive Packet Steering)

RPS가 꺼져 있으면:

  • netif_receive_skb → __netif_receive_core → 탭(예: PCAP) → 프로토콜 핸들러(예: ip_rcv)로 직접 전달된다.

RPS가 켜져 있으면:

  • netif_receive_skb → enqueue_to_backlog. 패킷이 CPU별 입력 큐에 들어가고, 해당 원격 CPU의 NAPI 구조체가 그 CPU의 poll_list에 추가되며 IPI가 큐에 넣어진다. 그러면 원격 CPU의 ksoftirqd가 깨어나 같은 방식으로 net_rx_action → process_backlog로 그 CPU의 입력 큐에서 패킷을 꺼낸 뒤 __netif_receive_core → 프로토콜 스택으로 넘긴다. 즉, 수신 처리 부하가 여러 CPU에 나뉜다.

RPS 유무에 따른 경로

 

RPS를 쓰면 패킷이 CPU별 큐로 나뉘고 IPI로 다른 CPU의 ksoftirqd가 깨어나 부하가 분산된다.

멀티큐 NIC는 큐별로 다른 CPU에 IRQ를 붙여 softIRQ 부하를 나누고, RPS는 큐 수보다 CPU가 많을 때 추가로 부하를 분산할 때 유용하다.

 

6. 프로토콜 스택부터 사용자 소켓까지

__netif_receive_core 이후 경로는 대략 다음과 같다.

  1. IPv4의 경우 ip_rcv로 패킷 수신.
  2. netfilter 및 라우팅 최적화.
  3. 로컬로 오는 패킷은 상위 프로토콜(UDP 등)로 전달.
  4. UDP면 udp_rcv → udp_queue_rcv_skb, sock_queue_rcv로 사용자 소켓의 수신 버퍼에 큐잉. 그 전에 BPF 등이 처리될 수 있다.
Protocol Stack부터 User Socket 까지 흐름도

ip_rcv → netfilter/라우팅 → UDP → 소켓 큐 → 사용자 공간.

 

7. 모니터링 및 튜닝

링/큐 크기와 드롭

링은 고정 크기 원형 큐이므로, 처리보다 도착이 빠르면 큐가 가득 차 패킷이 드롭된다.

ethtool -S enp8s0f0 | grep drop

 

드롭이 늘면:

  • 멀티큐 사용: ethtool -l로 현재 설정, ethtool -L로 큐 개수 조정. 큐가 여러 개면 DMA/처리 부하가 여러 CPU에 나뉜다.
  • 큐(디스크립터) 길이 증가: ethtool -g로 최대/현재 값 확인, ethtool -G로 조정. 큐를 길게 하면 처리량은 늘 수 있지만 지연 변동이 커질 수 있고, 짧으면 지연은 줄일 수 있지만 드롭 위험이 있다.

softIRQ 소비 확인

cat /proc/net/softnet_stat | awk '{print $3}'

세 번째 필드가 time_squeeze이다. 0보다 크면 budget/시간 제한으로 아직 처리할 패킷이 있는데 루프가 끝난 경우다. CPU 여유가 있으면 netdev_budget을 올려 본다.

수신 처리 호출 스택 예시

# 예: netif_receive_skb_internal 부근 커널 스택
netif_receive_skb_internal+1
napi_gro_receive+186    # RX 링에서 꺼낸 직후
igb_poll+1153
net_rx_action+329
__do_softirq+222
...

 

 


 

관련 문서

https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/network_troubleshooting_and_performance_tuning/tuning-irq-balancing

 

Chapter 2. Tuning IRQ balancing | Network troubleshooting and performance tuning | Red Hat Enterprise Linux | 10 | Red Hat Doc

The kernel stores the interrupt counters in the /proc/interrupts file. To display the counters for a specific NIC, such as enp1s0, enter: grep -E "CPU|enp1s0" /proc/interrupts CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 105: 141606 0 0 0 0 0 IR-PCI-MSI-edge enp1s0-rx-0

docs.redhat.com

 

 

https://tungdam.medium.com/linux-network-ring-buffers-cea7ead0b8e8

 

Linux network ring buffers

Trying to cover what I don’t know about Linux network

tungdam.medium.com

 

https://blog.packagecloud.io/illustrated-guide-monitoring-tuning-linux-networking-stack-receiving-data/

 

Illustrated Guide to Monitoring and Tuning the Linux Networking Stack: Receiving Data | Packagecloud Blog

This post illustrates guides to monitor and tune the Linux networking stack in great detail with the focus on receiving data.

blog.packagecloud.io

 

 

 

Network Socket Buffer 구조 및 데이터 이동 과정

 

 

SoftIRQ 처리 과정

 

반응형

 

작성일: 2026년 3월 5일

 

Linux OS에서 QCOW2, ISO, LOG 파일, 동영상 미디어 파일 등을 CLI 명령으로 복사할 때

복사 진행 정도를 확인하려면 아래의 방법을 이용하면 된다.

 

cp 명령 대신 rsync 명령을 사용

## 파일 1개 복사할 때
$ rsync --progress origin_file_name dest_file_name

## Directory 전체 복사할 때
##  참고: -a 옵션은 permission, timestamp 정보를 유지하도록 함
$ rsync -a --info=progress2 origin_dir_name dest_dir_name

 

progress 명령을 사용

이미 cp, mv 명령을 실행한 뒤, 다른 터미널에서 progress 명령을 실행하여 진행 상황을 본다.

$ sudo apt install progress

## 아래 명령은 cp, mv 등 파일 복사/이동에 관한 process 등을 자동으로 찾아서 진행률을 보여준다.
$ progress -mw

 

반응형
작성일: 2026년 3월 5일

 

 

Linux kernel source code를 다운로드하기

git clone --depth 1 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

 

위 git 명령은 최신 mainline 코드를 가져온다.

방금 다운로드한 kernel version을 확인하려면, Makefile을 열어서 파일 내용의 위 5줄을 읽어야 한다.

$ cat Makefile

VERSION = 7
PATCHLEVEL = 0
SUBLEVEL = 0
EXTRAVERSION = -rc2
NAME = Baby Opossum Posse

... 중간 생략 ...

 

만약 특정 version의 kernel source  code를 가져와서 build하고 싶다면, 아래 예시와 같이 `git fetch` 명령을 실행해야 한다. 

$ git fetch origin tag v6.19 --no-tags
$ git checkout v6.19

## 또는 아래와 같이 처음부터 `git clone`할 때, 특정 tag를 지정해서 가져온다.
$ git clone --depth 1 --branch v6.19 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git linux-6.19

 

Kernel source code를 build하기 위해 필요한 utility program을 설치하기

sudo apt install -y build-essential libncurses-dev bison flex libssl-dev libelf-dev libdw-dev dwarves bc pkg-config rsync cpio zstd

 

Kernel source code를 Compile하기

`make menuconfig` 명령을 실행하여 필요한 빌드 옵션을 On/Off 설정한다.

`make munuconfig` 화면에서 build option을 설정했으면, Signature 체크용 인증서 정보를 삭제한다. (아래 명령을 참고)

./scripts/config --set-str SYSTEM_TRUSTED_KEYS "" --set-str SYSTEM_REVOCATION_KEYS ""

 

 

`make` 명령을 수행한다.

source code 분량이 많기 때문에 -j 옵션을 추가하여 make 명령을 수행해야 한다.

-j 옵션이 없는 상태로 compile하면, 하루 종일 build해야 한다.

make -j$(nproc)

또는 

make -j2

 

 

Tip: 참고할 내용

Kernel source code Build에 걸리는 시간:

[ CPU 8 Core를 사용할 때 ]

  - HW 사양: Intel i7-11700 @ 2.50GHz

  - Build time: 32분 걸림

[ CPU 1 Core를 사용할 때 ]

  - HW 사양: Intel i7-11700 @ 2.50GHz

  - Build time: 3시간 40분 걸림

 

Build된 kernel binary file을 Machine에 적용하는 방법

1. Module 설치

sudo make modules_install

위 명령은 .ko module file을 /lib/modules/6.19.0/ 같은 directory에 복사한다.

 

2. Kernel 설치 (Kernel image 복사, Grub 설정 변경)

sudo make install

위 명령은 bzImage 파일과 System.map 파일을 /boot directory에 복사하고

Ubuntu/Debian 같은 배포판 리눅스에서는 /sbin/installkernel 스크립트를 이용하여 initramfs 파일을 생성하고 update-grub 절차까지 수행한다.

 

3. Reboot 후 새 kernel 선택

sudo reboot

컴퓨터가 reboot되면서, GRUB 화면이 보일 것이다.

이때 [ Advanced options ] - [ Linux 6.19.0 ] 을 선택하고, OS booting 과정을 진행하면 된다.

 

4. 새 kernel 적용 여부 확인

$ uname -r
6.19.0-11-generic

 

내가 build한 kernel version과 같은지 확인한다.

+ Recent posts