전체 글 332

[Linux]NUMA

NUMA 아키텍처가 무엇인지, 메모리 할당에 어떤 영향을 미치는지 NUMA 아키텍처 Non-Uniform Memory Access (불균형 메모리 접근) 멀티 프로세서 환경에서 적용되는 메모리 접근 방식 UMA(Uniform Memory Access): 초창기 아키텍처 NUMA와 반대되는 개념 모든 프로세서가 공용 BUS를 이용해서 메모리에 접근하기 때문에, 동시에 접근이 불가능하다. NUMA는 로컬 메모리로의 접근이 동시에 이뤄질 수 있다. 하지만 로컬 메모리의 양이 모자라면 다른 CPU에 붙어있는 메모리에 접근이 필요하게 되고, 이때 메모리 접근에 시간이 소요되어 예상치 못한 성능 저하를 경험하게 된다. 그래서 로컬 메모리에서 얼마나 많이 메모리 접근이 일어나느냐가 성능 향상의 가장 중요한 포인트이다..

Study/Linux 2024.04.18

[Linux]swap

메모리가 부족한 것을 어떻게 확인할 수 있는지 부족할 경우에 커널은 어떻게 대처하는지 swap 영역 물리 메모리가 부족할 경우를 대비해서 만들어 놓은 영역 비상용으로 확보해 놓은 메모리 공간 하지만 디스크의 일부분을 메모리처럼 사용하기 위해 만들어 놓은 공간이기 때문에 이를 사용하면 시스템 성능 저하가 일어난다. root@worker1:~# free -k total used free shared buff/cache available Mem: 1974564 1117108 302996 2448 554460 679308 Swap: 0 0 0 아주 적은 양이더라도 swap 영역을 사용하고 있다면 메모리가 부족할 수 있다는 의미이기 때문에 어떤 프로세스가 사용하고 있는지 확인이 필요하다. /proc//smaps ..

Study/Linux 2024.04.14

[Linux]free 명령과 메모리

CPU가 프로세스의 연산 과정에 필요한 리소스라고 한다면, 메모리는 프로세스가 연산할 수 있는 공간을 제공해 주는 리소스라고 할 수 있다. 프로세스는 메모리라는 공간에 자신이 필요한 함수를 넣어 두거나 변수에 값을 저장하거나 하는 방식으로 연산을 위한 공간을 확보하고 작업을 진행한다. 메모리 사용량 확인하기 free 전체 메모리 용량, 사용 중인 용량, buffers와 cached로 명명되는 캐싱 영역의 용량 root@worker1:~# free -m total used free shared buff/cache available Mem: 1928 1047 95 2 784 706 Swap: 0 0 0 *-m은 메비바이트(MB) 단위로 출력 total: 전체 메모리의 양 used: 사용 중인 메모리의 양 f..

Study/Linux 2024.04.10

[Linux]Load Average와 시스템 부하

Load가 높다/낮다고 표현하는 이 값의 의미는 무엇이고 시스템에 어떤 영향을 미치는지, 그리고 이 값을 바탕으로 시스템의 부하를 어떻게 결정하면 좋을지를 살펴보자. Load Average 프로세스의 상태 중 R과 D 상태에 있는 프로세스 개수의 1분, 5분, 15분마다의 평균 값 얼마나 많은 프로세스가 실행 혹은 실행 대기 중이냐를 의미하는 수치이다. 프로세스의 수를 세는 것이기 때문에 시스템에 있는 CPU Core 수가 몇 개냐에 따라 각각의 값은 의미가 상대적이다. ex. 하나의 Run Queue에 두 개의 프로세스가 있는 경우(CPU Core가 1개)와 서로 다른 CPU의 Run Queue에 두 개의 프로세스가 있는 경우(CPU Core가 2개) 모두 Load Average 값은 2의 근사값이 나..

Study/Linux 2024.04.09

[Linux]top을 통해 살펴보는 프로세스 정보들

시스템 상태를 파악하기 위해 top 명령을 사용해보자. 전반적으로 파악하는 방법과 특히 프로세스와 관련된 값들이 어떤 의미가 있는지 보자. 시스템 상태 살피기 root@worker1:~# top top - 06:45:11 up 1:57, 1 user, load average: 1.46, 1.55, 1.16 Tasks: 300 total, 2 running, 298 sleeping, 0 stopped, 0 zombie %Cpu(s): 37.5 us, 14.2 sy, 9.2 ni, 38.2 id, 0.3 wa, 0.0 hi, 0.5 si, 0.0 st MiB Mem : 1928.3 total, 99.4 free, 1164.8 used, 664.0 buff/cache MiB Swap: 0.0 total, 0...

Study/Linux 2024.04.06

[Linux]시스템 구성 정보 확인

시스템 문제를 파악하기 위해서는 시스템 구성 정보 확인이 우선이다. 시스템의 정보를 알아야 시스템을 분석할 수 있다. 커널 정보 확인하기 uname -a user1@worker1:~/Desktop$ uname -a Linux worker1 5.15.0-88-generic #98~20.04.1-Ubuntu SMP Mon Oct 9 16:43:45 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux 커널 버전: 5.15.0-88-generic dmesg : 커널 디버그 메시지를 출력한다. user1@worker1:~/Desktop$ dmesg | grep -i kernel | more [ 0.000000] KERNEL supported cpus: [ 0.020813] Booting par..

Study/Linux 2024.04.03

Nginx ModSecurity 및 CRS 적용하기

ModSecurity 표준 오픈 소스 웹 애플리케이션 방화벽(WAF) 엔진 Apache HTTP Server용 모듈로 설계되었지만 다양한 플랫폼에서 HTTP 요청 및 응답 필터링 기능을 제공하도록 발전했다. 상세 설정 사항은 owasp modsecurity wiki를 참조하자. Reference Manual (v3.x) ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx that is developed by Trustwave's SpiderLabs. It has a robust event-based programmin... github.com 간단한 환경 설정 ..

Study/Web 2024.03.01

[AWS]AWS Load Balancer Controller(ALB, NLB)

프로젝트를 진행하면서 담당 파트에서 제일 이슈가 있었던 Load Balancer Controller에 대해 정리하고자 한다. 이 녀석 때문에 꽤나 애를 먹었다... [Network]Load Balancing(로드밸런싱) 로드 밸런싱 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법 네트워크 또는 서버에 가해지는 부하(로드)를 분산(밸런싱)해주는 기술 *로드 밸런서: 사용 seomj74.tistory.com ELB(Elastic Load Balancing) 하나 이상의 가용 영역(AZ)에 있는 여러 대상 및 가상 어플라이언스에서 들어오는 애플리케이션 트래픽을 자동으로 분산한다. 하나 이상의 리스너를 지정하여 들어오는 트래픽을 허용하도록 로드 밸런서를 구성합니다. 리스너는 연..

Study/Cloud 2023.11.22

[Docker]Docker Image Layer

전에 프로젝트를 진행하며 docker image version으로 고생한 기억이 있어 다시 공부하고 확인해보고자 했다. Docker Image Layer 왼쪽에 Dockerfile을 기준으로 오른쪽 image에서 layer로 변환되는 과정을 그림을 통해 확인할 수 있다. 각 명령어들이 builder를 통해 각 layer로 바뀌어 저장된다. 이미지 레이어가 변경되지 않은 경우 빌더는 빌드 캐시에서 해당 레이어를 선택하여 재사용한다. 마지막 빌드 후 레이어가 변경된 경우에는 해당 레이어와 이후의 모든 레이어를 재빌드 해야 한다. 실습 TEST version을 동일 시 하고 이미지가 바뀌는지를 체크한다. 1. local image - dockerfile 수정 Dockerfile에서 "hello docker" ..

Study/Docker 2023.11.17

[SDC] Samsung DeveloperConference Korea 2O23 2일차 후기

Samsung Developer Conference Korea 2023 SDC KOREA 2023 www.sdc-korea.com 삼성 개발자 컨퍼런스가 개최되었다. 카카오 클라우드 스쿨에서 교육을 들을 때 이 소식을 알게 되었고, 사람들과 함께 가기로 했다. 구성된 세션을 보면 1일차는 AI, 2일차는 Cloud&DevOps 느낌이다. 본인의 현재 관심사가 2일차와 가깝기에 2일차만 오프라인으로 신청했다. 등록할 당시에 Career 컨설팅 자리가 남아있어 신청하였다. 15일 오전 9시 30분쯤 도착했다. 이미 사람들은 바글바글했다. QR 등록하고 웰컴키트를 받은 뒤 지누스마스를 찾아라 이벤트도 참여했다. 그 후 같이 간 사람들과 Track 1을 듣기 위해 이동했다. Track 1에서 3개의 세션을 참여..

Me/Experience 2023.11.16