본문 바로가기

Linux24

GSLB (Global Server Load Balancing) 란? IDC를 넘나드는 이중화 서비스를 구현할 때 GSLB라는 단어를 접하게 된다. GSLB란 무엇이고 일반 DNS와 어떤 점이 다른지 알아보자. GSLB (Global Server Load Balancing) GSLB는 Global Server Load Balancing의 약자이다. 이름에 로드 밸런싱이 들어가 있어서 로드 밸런스의 발전된 형태로 생각할 수도 있지만 사실 GSLB는 DNS의 발전된 형태다. GSLB를 지능적 DNS라고 부르기도 한다. GSLB는 다양한 기능을 통해 다음을 제공한다. 재해 복구(Disaster Recovery) 부하 분산(Load Balancing) 저지연 (Low Latency) DNS를 이용한 로드밸런싱 DNS는 도메인 이름을 IP 주소로 변환해주는 서비스다. 글로벌 로드밸.. 2024. 3. 8.
[Linux] 페이지 캐시 (Page Cache) 리눅스 커널은 파일에 대한 접근 속도 개선을 위해 '페이지 캐시(Page Cache)'를 이용한다. 이번 포스트에서는 리눅스 커널의 페이지 캐시에 대해 알아보고 페이지 캐시를 다루고 모니터링하는 방법에 대해 정리해본다. 목차 페이지 캐시(Page Cache) 리눅스의 메모리 관리 시스템은 최대한 메인 메모리를 잘 활용하도록 만들어져 있다. 사용자의 프로세스만 메인 메모리에 데이터를 저장하는 것이 아니고 리눅스 커널도 적극적으로 메인 메모리를 활용한다. 그 중에 '페이지 캐시(Page Cache)'라는 것도 있다. 리눅스는 파일의 입출력 성능 향상을 위해 페이지 캐시(Page Cache)라는 메모리 영역을 만들어 사용한다. 데이터를 저장하고 있는 파일은 HDD 혹은 SSD에 저장된다. 이런 저장장치들은 메.. 2024. 2. 2.
가상화의 종류 - 전가상화와 반가상화 서버의 가상화는 하이퍼바이저, 가상 OS, VMM(Virtual Machine Monitor)라고 불리며 크게 Type1(네이티브, 베어메탈 방식)과 Type2(호스트형 방식)으로 나눌 수 있다. Type 1 가상화 Type 1 가상화는 네이티브 혹은 베어메탈 하이퍼바이저를 이용하는 가상화다. 하드웨어 위에 하이퍼바이저가 직접 구동되고 그 위에 게스트 운영체제가 수행되는 방식이다. Oracle VM Server for X86, VMware의 ESX/ESX i Server, Citrix Xenserver, Oracle의 VM Server, 마이크로소프트의 Hyper-V, Virtual Iron, Parallels의 Parallels Server 등이 Type-1 형태의 하이퍼바이저다. 베어메탈을 관리할 O.. 2023. 12. 13.
[Linux] 캐싱(Caching)과 버퍼링(Buffering) 그리고 스풀링(Spooling) 시스템 소프트웨어를 다루다보면 '캐싱(Caching)', '버퍼링(Buffering)', '스풀링(Spooling)'에 대한 언급이 자주 나온다. 이들은 각각 어떤 개념이고 어떤점에서 다른지 알아보자. 캐싱 (Caching) 캐싱이란 데이터를 좀 더 빠른 속도의 메모리 영역에 가져와서 접근하는 방식을 말한다. 우리가 사용하는 컴퓨터는 하드디스크, SSD, RAM, CPU 캐시 등의 메모리로 구성되어 있다. 하드디스크과 SSD는 데이터에 접근하기까지 시간이 오래걸리지만 저렴하다. CPU의 캐시는 굉장히 빠르지만 가격이 비싸다. 따라서 이들을 계층적으로 구성해서 필요하거나 필요할 것으로 예상되는 데이터를 미리 더 빠른 메모리로 올려놓고 처리하게 되는데, 이를 캐싱이라고 한다. 데이터는 지역성(Locality.. 2023. 12. 8.
[Linux] Patrol Read(PR), Consistency Check(CC) 명령어 정리 리눅스 서버의 디스크 컨트롤러 중에는 Patrol Read라는 기능을 제공하는 경우가 있다. 일반적인 경우에는 Patrol Read가 서버의 성능에 영향을 주지는 않지만 가끔 지나치게 리소스를 잡아먹는 등 자신의 존재감을 드러내는 경우가 있다. Patrol Read가 무엇인지 알아보고 Patrol Read 설정을 변경할 수 있는 명령어를 정리해보자. Patrol Read(PR) Patrol이라는 단어에 '순찰을 돌다'라는 의미가 있다. 따라서 Patrol Read는 마치 순찰을 돌듯이 미리 디스크에 문제가 있을 만한 부분을 미리 발견해 문제를 예방하기 위한 기능이라고 볼 수 있다. Patrol Read는 하드 드라이브의 블럭을 미리 스캔해서 문제가 있을만한 배드블럭(Bad Block)을 예비 영역과 교.. 2023. 11. 10.
[Linux] perf 명령어 사용법 및 예제 - Flame Graph 해석 방법 perf 명령어는 리눅스 커널 프로젝트에서 관리되는 시스템 성능 프로파일링 도구다. perf 명령을 이용해서 특정 프로그램이나 시스템 전체 성능을 분석할 수 있다. perf 명령을 이용해서 성능에 문제를 일으키는 부분이 어디인지를 찾아낼 수 있다. 예를 들어 프로그램의 어떤 함수가 CPU 자원을 많이 소모하고 있는지 알 수 있으며, 코드의 어떤 부분이 메모리 할당을 얼마나 하는지 등을 어셈블리 및 소스코드 레벨로 확인할 수 있다. 커널에서 제공하는 특정 함수가 얼마나 호출되는지도 파악할 수 있다. 목차 perf 설치 perf 명령은 패키지 관리자인 yum을 통해 설치할 수 있다. yum -y install perf 데비안 계열의 리눅스에서는 apt-get을 통해 설치할 수 있다. apt-get insta.. 2023. 11. 8.
[Linux] '/proc/diskstats' 파일 리눅스는 시스템의 다양한 정보를 /proc 디렉토리 하위에 있는 파일을 통해 제공한다. 이번 포스트에서는 /proc/diskstats 파일에 대해 알아보자. /proc/diskstats 파일 /proc/diskstats 파일은 시스템에 있는 블록 디바이스들의 입출력 통계 정보를 출력해준다. cat 명령을 통해 /proc/diskstats 파일의 내용을 조회해보면 블록 디바이스 이름과 다양한 숫자들이 화면에 출력된다. [root@6f9963e1a7aa /]# cat /proc/diskstats 252 0 vda 13523 61 847172 2801 1330009 31047 225631031 1399426 0 870390 1523579 4707 0 386812040 173 64168 121177 252 1 .. 2023. 5. 23.
[Linux] tar: Ignoring unknown extended header keyword 에러 해결 리눅스 환경에서 타르볼(*.tar.gz) 파일을 풀어야 할 일이 있었다. tar xzvf 명령을 이용해서 타르볼을 풀었는데 다음 에러 메시지가 터미널 창을 가득 채웠다. tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' 타르볼을 풀어서 수행하던 작업이 제대로 끝나지 않아서 저 에러가 뭔지 찾아봤다. .. 2023. 3. 21.
[Linux] gzip - gz 압축하기, 압축풀기 gz 명령으로 파일을 압축하고 gz 파일의 압축을 풀어보자. gzip 설치 gzip 명령은 리눅스에 기본으로 제공되고 있다. 만약 gzip 명령이 없다면 다음 명령으로 설치하면 된다. apt install gzip gz 압축하기 gzip {압축 할 파일명} 파일을 압축하기 위해서는 gzip 명령어의 인자로 압축할 파일을 명시하면 된다. $ gzip abc.txt 수행 결과로 abc.txt 파일은 사라지고 abc.gz 파일이 생성된다. gz 파일은 여러개의 파일을 하나로 묶어서 압축하기 위해 사용하는 명령이 아니다. 여러 파일을 우선 tar 명령으로 묶은 다음 gzip 명령으로 압축하면 된다. gz 압축풀기 gzip -d {압축 파일}.gz 파일의 압축을 풀기 위해서는 gzip 명령의 -d 옵션으로 압축 .. 2023. 3. 13.