시스템 관리_02 리눅스 High I/O Wait(wa) 원인 분석 및 디스크 병목 프로세스 추적하기
출처 / 참고: 리눅스 성능 분석 및 I/O 서브시스템 트러블슈팅 가이드
명령어: top, iostat, iotop, pidstat, lsof
키워드: I/O Wait, wa, 디스크 병목, iostat, %util, D 상태 프로세스
사용처: CPU 사용률 중 wa 수치가 비정상적으로 치솟고 시스템 응답이 현저히 느려질 때, 병목을 유발하는 디스크 장치 및 범인 프로세스를 추적할 때
실행예제
top 실행 시 CPU 사용률 항목에서 %wa(I/O Wait)가 높게 치솟고, 로드 애버리지(load average)가 급격히 상승하며 콘솔 입력 및 서비스 응답이 지연되는...
시스템 관리_01 디스크 여유 공간이 있는데도 'No space left on device' 발생 시 해결하기 (Inode 고갈)
출처 / 참고: 리눅스 시스템 엔지니어링 & 파일 시스템 트러블슈팅 가이드
명령어: df, find, xargs, rm, wc
키워드: Inode, 디스크 공간, No space left on device, 파일 시스템, 가용 공간
사용처: df -h로 디스크 용량을 확인했을 때는 여유 공간이 충분하지만, 신규 파일 생성이나 서비스 기동 시 No space left on device 에러가 발생할 때
실행예제
파일을 생성하려고 할 때 장치에 남은 공간이 없다는 에러가 발생하지만, df -h로 확인하면 디스크 사용량은 30%대에 불과한 상황입니다.
$ tou...
우분투 본딩 Ubuntu Netplan을 이용한 네트워크 본딩(Active-Backup) 설정 및 트러블슈팅
출처 : 직접 경험 기반 (Ubuntu 22.04 LTS 환경)
명령어: netplan, ip link, cat /proc/net/bonding/bond0
키워드: 본딩(Bonding), Active-Backup, Netplan, 가용성, 장애 조치
사용처: 서버의 네트워크 이중화를 통해 물리적인 랜 카드나 케이블 장애 시에도 서비스 중단을 방지하고 싶을 때
실행예제
$ ip link show bond0
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT gro...
Oracle Standard Edition 대용량 로그 테이블 성능 개선 및 데이터 이관 전략
출처 : (Oracle Standard Edition)
명령어: DBMS_REDEFINITION, RENAME, INSERT APPEND, CTAS
키워드: 단편화(Fragmentation), Shadow Table, 인덱스 재설계, 데이터 정합성
사용처: 서비스 중단 없이 대용량 테이블의 쿼리 성능을 개선하고 데이터를 안전하게 이관하고 싶을 때
해설
Oracle Standard Edition(SE) 환경에서는 Enterprise Edition의 핵심 기능인 ‘파티셔닝’과 ‘온라인 재정의’를 사용할 수 없습니다.
따라서
1 단계적 벌크 복사와
2 최종 스왑 방식을 조합한 Shadow Ta...
사용자 인터페이스_10 파일 압축 시 실행 상태를 표시하는 진행바 표시하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: pv, tar, gzip
키워드: 압축, 진행바
사용처: 시간이 오래 걸리는 파일 처리 등에서 화면에 진행 상태를 나타내고 싶을 때
실행예제
$ ./tar-pv.sh
693MB 0:00:42 [16.4MB/s] [ <=> ]
스크립트
#!/bin/sh
DATA_DIR=/myapp/datadir
cd $DATA_DIR #------------------------------------------------- 1
tar cf -bigfile1.dat b...
사용자 인터페이스_09 달력을 이용해 특정 날짜의 로그 파일 삭제하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: dialog, awk, rm
키워드: 다이얼로그, 달력, 대화형, 선택
사용처: 날짜를 지정하는 대화식 달력을 표시해서 선택하고 싶을 때
실행예제
$ ./dialog-calendar.sh
스크립트
#!/bin/sh
LOG_DIR=/myapp/ap1/log
# dialog 명령어로 달력 출력
# 선택한 날짜는 표준 에러 출력이므로 임시 파일에 리다이렉트
dialog --calendar "Select Date" 2 60 2>cal.tmp #--------------- 1
# 달력 기능은 일/월/년 형식으로 ...
사용자 인터페이스_08 표시 문자 색 변경하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: echo
키워드: 터미널, 색상
사용처: 메시지 표시에 문자색을 바꾸거나 반전시키는 증 주의를 끌고 싶을 때
실행예제
$ ./color.sh
Script Start.
Importan Message <----- 색이 변함
Script End.
스크립트
#!/bin/sh
echo "Script Start."
# 배경을 회색(47), 문자색을 빨강(31)으로 바꿈
echo -e "\033[47;31m Important Message \033[0m" #--- 1
echo "Script End."
...
199 post articles, 29 pages.