SELinux Enforcing 모드로 인한systemd 서비스 등록 Permission denied
·
Linux
systemd 서비스를 등록하는 도중, 서비스가 계속해서 실패하는 문제가 발생하였다. journalctl 명령어를 통해 로그를 확인한 결과, ExecStart 경로에 등록된 실행 파일에 대해 "Permission denied" 오류가 발생하는 것을 확인할 수 있었다. journalctl -xeu ***.service4월 22 11:17:39 localhost.localdomain systemd[9513]: ***.service: Failed at step EXEC spawning /home/****/****/bin/****: Permission deniedSubject: Process /home/****/****/bin/**** could not be executedDefined-By: systemdSu..
코어 덤프 파일 분석
·
Linux
Core Dump 파일컴퓨터 프로그램이 특정 시점에 작업 중이던 메모리 상태를 기록한 것으로, 보통 프로그램이 비정상적으로 종료했을 때 만들어진다. 즉, 비정상적인 종료가 발생하는 경우 커널에서 해당 프로세스와 관련된 메모리 상태를 기록한 파일이다. Core Dump 파일을 생성하려면 사용자의 리소스 제한을 설정해주어야 한다.# core dump 크기 제한 확인ulimit -c# 0이면 core dump가 생성되지 않음# core dump 제한 해제ulimit -c unlimited 하지만 실제 운영 환경에서는 프로세스가 비정상 종료되기를 기다리는 것이 현실적이지 않거나, 시스템 설정 등의 이유로 core 파일이 생성되지 않을 수 있다. 이런 경우 gcore 명령어를 사용하면 실행 중인 프로세스의 메모..
pstack
·
Linux
pstackLinux/Unix 환경에서 실행 중인 프로세스의 스택 트레이스를 확인할 수 있는 디버깅 도구이다. 프로세스가 현재 어떤 함수를 실행 중이며, 어떤 경로로 해당 함수가 호출되었는지 추적할 수 있다. 설치yum install gdb 기본 사용법# 기본 문법pstack [프로세스ID]# 예시pstack 1234 사용 사례 프로세스 행(Hang) 분석$ pstack 1523Thread 1 (Thread 0x7f123456789):#0 0x00007f1234567890 in calculate_hash () at hash.cpp:123#1 0x00007f1234567891 in process_data () at process.cpp:456#2 0x00007f1234567892 in infinite_lo..
lsof
·
Linux
lsof는 "List Open Files"의 약자로, 리눅스 및 유닉스 계열 운영 체제에서 현재 시스템에서 열려 있는 파일과 그 파일을 사용하는 프로세스에 대한 정보를 보여주는 유틸리티이다. lsof는 시스템에서 열려 있는 모든 파일의 목록(일반 파일, 디렉토리, 소켓, 장치 파일 등)을 제공하며, 각 파일을 열고 있는 프로세스의 PID(프로세스 ID), 사용자, 파일의 접근 모드(읽기, 쓰기 등) 등의 정보를 포함한다. 각 헤더의 의미COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME COMAND : 프로세스/명령어의 이름 PID : 프로세스의 고유 식별 번호 USER : 프로세스를 실행한 사용자의 이름 (..
load average
·
Linux
Load AverageLoad Average는 시스템의 부하를 측정하는 중요한 지표로, 서버나 컴퓨터 시스템에서 얼마나 많은 작업이 실행 중이고, 얼마나 많은 작업이 대기 중인지를 나타낸다. 많은 사람들이 top 명령어를 실행할 때 가장 먼저 확인하는 값 중 하나가 바로 Load Average일 것이다. Load Average는 1분, 5분, 15분 동안의 평균 부하를 각각 나타내는 세 가지 값으로 표시된다. 예를 들어, Load Average 값이 1.2, 0.9, 0.8이라면, 이는 최근 1분 동안의 부하가 1.2였고, 5분 동안의 평균 부하는 0.9, 15분 동안의 평균 부하는 0.8이었다는 뜻이다. 15분 값에 비해 1분과 5분의 값이 높다면, 이는 시스템 부하가 점차 증가하고 있다는 의미이며, ..
crontab이란?
·
Linux
크론탭(Crontab)이란? 크론탭(Crontab)은 리눅스 및 유닉스 계열 시스템에서 정기적으로 실행할 작업을 예약하는 도구이며, 주로 반복적인 작업(예: 백업, 시스템 점검, 로그 파일 정리 등)을 자동화하는 데 사용된다."크론(Cron)"은 시스템의 시간 기반 작업 스케줄러이고, "탭(Tab)"은 특정 작업의 예약 목록을 의미한다. 크론탭의 기본 구성은 다음과 같다.시간 설정: 작업이 실행될 시간, 날짜, 요일 등을 지정명령어 실행: 예약된 시간에 실행할 명령어를 지정즉, 크론탭은 시스템에서 cron 서비스를 통해 관리되며, 이 서비스는 백그라운드에서 주기적으로 실행되어 지정된 작업을 수행한다. 크론탭 설치 방법 대부분의 경우, Red Hat 계열 배포판 (RHEL, CentOS, Fedora 등)..
디스크 입출력 성능과 dd 명령어
·
Linux
운영중에 있는 서버가 갑자기 느려져서 서버의 입출력 성능을 측정하기 위해 dd명령어를 사용하게 되었고, 이에 대해 정리해보고자 한다.디스크 I/O 성능이란? 디스크 I/O(Input/Output) 성능은 시스템 성능에 중요한 영향을 미치는 요소 중 하나이다. 특히 데이터베이스 서버나 파일 서버와 같이 디스크에서 데이터를 읽고 쓰는 작업이 많은 경우, I/O 성능이 병목이 될 수 있다. 디스크 I/O 성능이 낮으면 시스템 전체의 성능이 저하될 수 있으므로, 서버를 최적화하기 위해서는 디스크 I/O 성능을 파악하고 관리하는 것이 필수적이다. 디스크 I/O 성능을 측정하는 주요 지표는 다음과 같다:Throughput(처리량): 초당 처리할 수 있는 데이터의 양(예: MB/s).Latency(지연 시간): 디스..
하드 링크와 심볼릭 링크
·
Linux
하드링크와 심볼릭 링크에 대해 알기 전에, 먼저 아이노드에 대한 기본적인 이해가 필요하다. 아이노드에 대해 간단하게 알아보자.아이노드 유닉스 계열 파일 시스템에서 파일이나 디렉토리에 대한 메타데이터를 저장하는 데이터 구조체이다. 각 파일이나 디렉토리는 고유한 inode 번호를 가지고 있으며, 파일의 실제 데이터와는 별도로, 파일의 속성 정보(파일 메타데이터)를 관리하는 역할을 한다.# -i 옵션을 통해 확인 가능ls -li 아이노드가 포함하는 정보파일 유형: 일반 파일, 디렉토리, 심볼릭 링크 등의 유형파일 크기: 파일의 크기 정보소유자 및 그룹 정보: 파일의 소유자와 그룹파일 권한: 읽기, 쓰기, 실행 권한파일의 생성/수정/접근 시간: 파일의 타임스탬프 정보링크 수: 해당 inode를 참조하는 하드 링..