목차
시스템 리소스 사용량을 확인하십시오
특정 프로세스 문제를 분석합니다
로그를 확인하고 데이터를 모니터링합니다
일반적인 원인 및 치료 제안
시스템 튜토리얼 리눅스 느리거나 메모리 사용량이 높은 서버를 어떻게 디버깅 하시겠습니까?

느리거나 메모리 사용량이 높은 서버를 어떻게 디버깅 하시겠습니까?

Jul 06, 2025 am 12:02 AM

서버가 천천히 실행 중이거나 메모리 사용량이 너무 높으면 작동하기 전에 원인을 확인해야합니다. 먼저 시스템 리소스 사용법을 확인하고 Top, HTOP, Free -H, Iostat, SS -ANTP 및 기타 명령을 사용하여 CPU, 메모리, 디스크 I/O 및 네트워크 연결을 확인해야합니다. 둘째, 특정 프로세스 문제를 분석하고 PS, JSTACK, Strace와 같은 도구를 통해 고산성 프로세스의 동작을 추적합니다. 그런 다음 로그 및 모니터링 데이터를 확인하고 OOM 레코드보기, 예외 요청, 느린 쿼리 및 기타 단서; 마지막으로, 메모리 누출, 연결 풀 피로, 캐시 실패 폭풍 및 타이밍 작업 충돌, 코드 로직 최적화, 타임 아웃 재 시도 메커니즘을 설정하고 현재 한계 퓨즈를 추가하며 정기적으로 압력 측정 및 평가 리소스와 같은 일반적인 이유에 따라 타겟팅 처리가 수행됩니다.

느리거나 메모리 사용량이 높은 서버를 어떻게 디버깅 하시겠습니까?

서버가 천천히 실행 중이거나 메모리 사용이 너무 높으면 서두르지 마십시오. 먼저 문제가 무엇인지 알아보십시오. 그렇지 않으면 다음에 다시 한 번 다시 만들 것입니다. 이 유형의 문제는 일반적으로 자원 사용, 프로세스 예외 또는 구성 오류와 관련이 있습니다.

다음은 몇 가지 일반적인 문제 해결 방향과 실제 제안입니다.


시스템 리소스 사용량을 확인하십시오

우선, 현재 시스템의 부하 및 자원 소비를 알아야합니다. 일반적으로 사용되는 명령에는 top , htop (보다 직관적), free -hvmstat 포함됩니다.

  • CPU 사용 : top 또는 htop 사용하여 어떤 프로세스가 많은 양의 CPU를 차지하는지 확인하십시오.
  • 메모리 사용 : free -h 전체 메모리, 중고 메모리 및 캐시를 빠르게 볼 수 있습니다.
  • 디스크 I/O : iostat 또는 iotop 사용하여 자주 읽기 및 쓰기 프로세스가 디스크에 있는지 확인하십시오.
  • 네트워크 연결 : netstat -antp 또는 ss -antp 비정상적인 연결 또는 포트 점유가 있는지 여부를 알 수 있습니다.

프로세스가 갑자기 자원을 치우면 먼저 PID를 기록하고 나중에 더 분석 할 수 있습니다.


특정 프로세스 문제를 분석합니다

높은 자원을 차지하는 프로세스를 찾은 후 다음 단계는 그것이 무엇을하고 있는지 확인하는 것입니다. 예를 들어, Java 응용 프로그램은 전체 GC로 인해 빈번한 지연을 유발할 수 있습니다. PHP-FPM 프로세스는 코드에서 죽은 루프 또는 느린 쿼리를 초래할 수 있습니다.

다음 방법을 사용하여 깊이 분석 할 수 있습니다.

  • ps -p <pid></pid> 사용하여 프로세스의 기본 정보를보십시오.
  • Java 응용 프로그램의 경우 jstack <pid></pid> 사용하여 스레드 스택을 잡아서 어딘가에 붙어 있는지 확인할 수 있습니다.
  • strace -p <pid></pid> 사용하여 프로세스를 호출하는 시스템과 장기 차단 작업이 있는지 확인하십시오.
  • MySQL과 같은 데이터베이스 관련 서비스 인 경우 최적화되지 않은 SQL이 없는지 확인하려면 느린 쿼리 로그를 확인하십시오.

때로는 특정 프로세스가 많은 양을 차지하지만 실제로 백업 작업을 실행하는 것과 같은 정상적인 동작이라는 것을 알게됩니다. 그래서 우리는 비즈니스 로직과 함께 그것을 봐야합니다.


로그를 확인하고 데이터를 모니터링합니다

로그는 종종 문제 발견의 핵심 단서입니다. 시스템 로그 (예 : /var/log/messages 또는 journalctl ), 응용 프로그램 로그 및 데이터베이스 로그를보아야합니다.

  • OOM (기억이없는)이 사망 한 기록이 있습니까? dmesg | grep -i kill 통해 볼 수 있습니다 dmesg | grep -i kill
  • 애플리케이션 로그에 비정상적인 요청, 시간 초과, 재 시도 및 기타 현상이 있습니까?
  • 데이터베이스 로그에 느린 쿼리, 잠금 대기 및 기타 상황이 있습니까?

모니터링 시스템 (예 : Prometheus Grafana)이있는 경우 트렌드를보기가 더 쉬울 것입니다. 예를 들어, 메모리 사용이 계속 상승합니까? 특정 시점에서 많은 수의 작업을 트리거하는 시간이 지정된 작업이 있습니까?


일반적인 원인 및 치료 제안

일부 문제는 실제로 다음과 같이 일반적입니다.

  • 메모리 누출 : 특정 언어 (예 : Node.js, Java)로 작성된 프로그램은 메모리 누출이 발생하기 쉽고 해당 도구를 사용하여 힙 메모리 스냅 샷을 분석 할 수 있습니다.
  • 연결 풀 피로 : 데이터베이스 연결이 해제되지 않으며 HTTP 요청이 설정되지 않으면 축적이 발생할 수 있습니다.
  • 캐시 실패 폭풍 : 캐시가 대규모로 무효화 된 후 모든 요청이 데이터베이스에 부딪쳐 눈사태가 발생합니다.
  • 시간이 정해진 작업 충돌 : 여러 작업이 동시에 실행되어 모든 자원을 섭취합니다.

이러한 문제가 발생하면 다음과 같은 측면에서 시작할 수 있습니다.

  • 불필요한 리소스 사용을 줄이기 위해 코드 로직을 최적화하십시오
  • 합리적인 시간 초과 및 재시도 메커니즘을 설정하십시오
  • 주요 인터페이스에 현재 제한과 퓨즈를 추가하십시오
  • 정기적 인 성능 스트레스 테스트 및 자원 평가

기본적으로 그게 다야. 서버가 속도가 느려지거나 메모리가 폭발되면 먼저 전체 리소스를보고 특정 프로세스를 찾은 다음 로그 및 모니터링을 확인한 다음 공통 패턴에 따라 판단을 내립니다. 매번 전문가 지식이 필요하지는 않지만 세부 사항, 특히 "정상적으로 보이지만 실제로 문제가있는"세부 사항에 많은 관심이 있습니다.

위 내용은 느리거나 메모리 사용량이 높은 서버를 어떻게 디버깅 하시겠습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Rhel, Rocky & Almalinux에 LXC (Linux 컨테이너)를 설치하십시오 Rhel, Rocky & Almalinux에 LXC (Linux 컨테이너)를 설치하십시오 Jul 05, 2025 am 09:25 AM

LXD는 차세대 컨테이너 및 가상 머신 관리자로 설명되어 컨테이너 또는 가상 머신으로 실행되는 Linux 시스템에 몰입감을 제공합니다. 지원이 포함 된 수많은 Linux 배포판에 대한 이미지를 제공합니다.

명확한 Linux 배포판 - 성능 및 보안에 최적화되었습니다 명확한 Linux 배포판 - 성능 및 보안에 최적화되었습니다 Jul 02, 2025 am 09:49 AM

Clear Linux OS는 최소하고 안전하며 안정적인 Linux 배포를 원하는 사람들에게 이상적인 운영 체제입니다. 인텔 아키텍처에 최적화되어있어 AMD SYS에서 Clear Linux OS를 실행하는 것을 의미합니다.

Linux Desktop에서 Firefox 브라우저 속도를 높이는 7 가지 방법 Linux Desktop에서 Firefox 브라우저 속도를 높이는 7 가지 방법 Jul 04, 2025 am 09:18 AM

Firefox 브라우저는 Ubuntu, Mint 및 Fedora와 같은 대부분의 최신 Linux 배포판의 기본 브라우저입니다. 처음에는 성능이 인상적 일 수 있지만 시간이 지남에 따라 브라우저가 빠르지 않고 반응이 아니라는 것을 알 수 있습니다.

Linux에서 파일 및 디렉토리를 숨기는 방법 Linux에서 파일 및 디렉토리를 숨기는 방법 Jun 26, 2025 am 09:13 AM

때때로 Linux 데스크탑을 가족, 친구 또는 동료와 공유합니까? 그렇다면 개인 파일과 폴더를 숨길 수 있습니다. 도전은 Linux 시스템에서 이러한 파일을 숨기는 방법을 파악하는 것입니다.

OpenSSL을 사용하여 자체 서명 된 SSL 인증서를 만드는 방법은 무엇입니까? OpenSSL을 사용하여 자체 서명 된 SSL 인증서를 만드는 방법은 무엇입니까? Jul 03, 2025 am 12:30 AM

자체 서명 된 SSL 인증서를 작성하기위한 주요 단계는 다음과 같습니다. 1. 개인 키 생성, 명령을 사용하여 OpenSSLGENRSA-Outsigned.key2048을 사용하여 2048 비트 RSA 개인 키 파일, 선택적 매개 변수 -AES256을 생성하여 암호 보호를 달성합니다. 2. CSR (Certificate Request)을 작성하고 OpenSSLREQ-NEW-KEYSELFSIGNED.KEY-OUTSIGNED.CSR을 실행하고 관련 정보, 특히 "CommonName"필드를 작성합니다. 3. 자체 서명으로 인증서를 생성하고 OpenSSLX509-Req-Days365-inselfsigned.csr-signk를 사용하십시오

.tar.gz 또는 .zip 파일을 추출하는 방법은 무엇입니까? .tar.gz 또는 .zip 파일을 추출하는 방법은 무엇입니까? Jul 02, 2025 am 12:52 AM

Windows에서 .zip 파일을 압축하려면 마우스 오른쪽 버튼을 클릭하여 "모두 추출"을 선택할 수있는 반면 .tar.gz 파일은 7-zip 또는 winrar와 같은 도구를 사용해야합니다. MacOS 및 Linux에서 .zip 파일을 두 번 클릭하거나 압축을 해제 할 수 있으며, .tar.gz 파일은 TAR 명령으로 압축 해제하거나 직접 두 번 클릭 할 수 있습니다. 특정 단계는 다음과 같습니다. 1. Windows Processing.zip 파일 : 마우스 오른쪽 버튼 → "모두 추출"; 2. Windows Processing.tar.gz 파일 : 타사 도구를 설치하십시오 → 마우스 오른쪽 버튼을 클릭하여 압축을 피하십시오. 3. MacOS/Linux Processing.zip 파일 : unzipfilename.zip을 두 번 클릭하거나 실행합니다. 4. MacOS/Linux Processing.tar

Linux에서 시스템 로그는 어디에 있습니까? Linux에서 시스템 로그는 어디에 있습니까? Jun 24, 2025 am 12:15 AM

Linux 시스템의 로그는 일반적으로 /var /log 디렉토리에 저장되며 Syslog 또는 메시지 (레코드 시스템 로그), Auth.log (레코드 인증 이벤트), Kern.log (레코드 커널 메시지), dpkg.log 또는 yum.log (레코드 패키지 운영), boot.log (레코드 시작 정보)와 같은 다양한 주요 로그 파일이 포함되어 있습니다. 로그 콘텐츠는 CAT, Tail-F 또는 JournalCTL 명령을 통해 볼 수 있습니다. 응용 프로그램 로그는 종종 Apache의 Apache2 또는 HTTPD 디렉토리, MySQL 로그 파일 등과 같은 /var /log의 하위 디렉토리에 위치합니다. 동시에 로그 권한은 일반적으로 s를 요구한다는 점에 유의해야합니다.

Brasero를 사용하여 Linux에서 CD/DVD를 태우는 방법 Brasero를 사용하여 Linux에서 CD/DVD를 태우는 방법 Jul 05, 2025 am 09:26 AM

솔직히 말해서, 나는 CD/DVD 드라이브가있는 PC를 마지막으로 사용했을 때를 기억할 수 없습니다. 광학 디스크가 USB 드라이브 및 더 많은 스토리지를 제공하는 기타 소형 스토리지 미디어로 대체 된 끊임없이 진화하는 기술 산업 덕분입니다.

See all articles