운영 및 유지보수 리눅스 운영 및 유지 관리 Linux 인스턴스 대역폭을 설정하고 CPU가 가득 찼거나 높은 경우 문제를 해결하는 방법

Linux 인스턴스 대역폭을 설정하고 CPU가 가득 찼거나 높은 경우 문제를 해결하는 방법

Sep 28, 2018 pm 02:22 PM
linux

이 글에서는 Linux 인스턴스의 대역폭을 설정하고 CPU가 가득 찼는지 아니면 높은지 문제를 해결하는 방법을 소개하고 구체적인 단계를 중점적으로 설명하며, 이 글에서 뭔가를 얻을 수 있기를 바랍니다.

Linux 인스턴스 대역폭 및 CPU가 가득 찼거나 높은 문제 해결

클라우드 서버 ECS를 사용할 때 서비스 속도가 느려지거나 ECS 인스턴스의 연결이 갑자기 끊어지면 서버 대역폭과 CPU가 가득 찼거나 높은지 여부를 고려할 수 있습니다. 미리 경보 작업을 생성하면 대역폭과 CPU가 가득 차거나 높을 때 시스템이 자동으로 경보 알림을 발행합니다. Linux 시스템에서는 다음 단계에 따라 문제를 해결할 수 있습니다.

문제를 찾습니다. 전체 또는 높은 속도로 실행되는 대역폭 및 CPU에 영향을 미치는 특정 프로세스를 찾으십시오.

분석 및 처리. 대역폭과 CPU에 영향을 미치는 프로세스가 Full 또는 High로 실행되고 있는지 확인하고 분류하여 처리합니다.

일반 프로세스의 경우: 프로그램을 최적화하거나 서버 구성을 업그레이드해야 합니다.

비정상 프로세스의 경우: 프로세스를 수동으로 확인하고 종료하거나 타사 보안 도구를 사용하여 확인하고 종료할 수 있습니다.

이 문서의 관련 구성 및 지침은 CentOS 6.5 64비트 운영 체제에서 테스트되었습니다. 기타 운영체제의 종류 및 버전에 따른 구성은 다를 수 있으며, 자세한 내용은 해당 운영체제의 공식 문서를 참조하시기 바랍니다.

클라우드 서버 ECS Linux 시스템의 CPU가 계속해서 높은 수준으로 실행되면 시스템 안정성과 비즈니스 운영에 영향을 미칠 수 있습니다. 이 문서에서는 높은 CPU 사용량 문제에 대한 문제 해결 및 분석을 간략하게 설명합니다.

CPU가 가득 찼거나 높게 실행되는 문제 위치

클라우드 서버 ECS의 CPU가 계속해서 높은 수준으로 실행되면 시스템 안정성과 비즈니스 운영에 영향을 미칠 수 있습니다. Linux 시스템에서 프로세스를 보는 일반적인 명령은 다음과 같습니다.

ps -aux
ps -ef
top
로그인 후 복사

Linux 시스템에서 top 명령은 일반적으로 시스템 로드 문제를 보고 더 많은 CPU 리소스를 소비하는 프로세스를 찾는 데 사용됩니다.

작업 단계

콘솔 관리 터미널을 통해 ECS 인스턴스에 연결합니다. 원격 연결 기능을 사용하여 ECS 인스턴스에 연결을 참조하세요.

참고: 리소스 로드가 비정상적인 경우 일반적으로 SSH를 통한 원격 연결이 불가능하므로 콘솔 관리 터미널을 통해 연결하는 것이 좋습니다.

top 명령을 통해 시스템의 현재 실행 상태를 확인하세요.

 top - 17:27:13 up 27 days,  3:13,  1 user,  load average: 0.02, 0.03, 0.05
 Tasks:  94 total,   1 running,  93 sleeping,   0 stopped,   0 zombie
 %Cpu(s):  0.3 us,  0.1 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.1 st
 KiB Mem:   1016656 total,   946628 used,    70028 free,   169536 buffers
 KiB Swap:        0 total,        0 used,        0 free.   448644 cached Mem
 PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 1 root      20   0   41412   3824   2308 S  0.0  0.4   0:19.01 systemd
 2 root      20   0       0      0      0 S  0.0  0.0   0:00.04 kthreadd
로그인 후 복사

로드 문제의 경우 에코의 첫 번째 줄과 세 번째 줄만 주의하면 됩니다.

상위 명령의 첫 번째 줄에 표시되는 내용은 17:27:13 최대 27일, 3:13, 사용자 1명, 로드 평균: 0.02, 0.03, 0.05이며 이는 시스템의 현재 시간, 현재까지 시스템이 실행되었으며, 현재 시스템에 로그인한 사용자 수와 시스템 부하가 uptime 명령을 직접 실행한 쿼리 결과와 일치합니다.

top 명령의 세 번째 줄에는 현재 CPU 리소스의 전체 사용량이 표시되며, 아래에는 각 프로세스의 리소스 사용량이 표시됩니다.

문자 키 P를 누르면 CPU 사용량을 역순으로 정렬하고 시스템에서 더 높은 CPU를 차지하는 프로세스를 찾을 수 있습니다.

참고: 문자 키 M을 사용하면 시스템 메모리 사용량을 정렬할 수 있습니다. 멀티 코어 CPU가 있는 경우 숫자 키 1을 사용하면 각 코어 CPU의 로드 상태를 표시할 수 있습니다.

ll /proc/PID/exe를 통해 각 프로세스 ID에 해당하는 프로그램 파일을 볼 수 있습니다.

풀 또는 하이로 실행 중인 CPU 분석 및 처리

CPU가 가득 찼거나 높을 때 특정 프로세스 결과를 확인한 후 kswapd0에 대해 비정상적인 프로세스를 종료해야 합니다. 메모리 부족 등 시스템 사양을 업그레이드하거나 프로그램을 최적화해야 합니다.

CPU를 많이 소모하는 프로세스를 직접 종료하려면 top을 사용하세요.

상위 실행 인터페이스에서 해당 비정상 프로세스를 직접 빠르게 종료할 수 있습니다. 단계는 다음과 같습니다.

프로세스를 종료하려면 소문자 k 키를 누르세요.

종료하려는 프로세스의 PID를 입력하세요(상단 출력의 첫 번째 열). 예를 들어, PID 86으로 프로세스를 종료하려면 86을 입력하고 Enter를 누르십시오.

작업이 성공하면 Send pid 86 signal [15/sigterm]과 유사한 프롬프트 메시지가 인터페이스에 나타납니다. Enter를 눌러 확인하세요.

kswapd0 프로세스 점유로 인해 CPU가 높아집니다.

운영 체제는 페이징 메커니즘을 사용하여 물리적 메모리를 관리하고 시스템은 하드 디스크 공간의 일부를 메모리로 가상화합니다. 메모리는 디스크보다 훨씬 빠르기 때문에 시스템은 불필요한 페이지를 디스크로 교환하고 필요한 페이지를 메모리로 전송하기 위해 특정 페이징 메커니즘을 따라야 합니다.

kswapd0은 가상 메모리 관리에서 페이징을 담당하는 프로세스입니다. 서버 메모리가 부족하면 kswapd0이 페이징 작업을 수행하여 호스트 CPU 리소스를 많이 소모합니다. 단계는 다음과 같습니다.

top 명령을 통해 kswapd0 프로세스를 봅니다.

检查该进程是否持续处于非睡眠状态,且运行时间较长。若是,可以初步判定系统在持续地进行换页操作,kswapd0 进程占用了系统大量 CPU 资源。

Linux 인스턴스 대역폭을 설정하고 CPU가 가득 찼거나 높은 경우 문제를 해결하는 방법

您可以通过 free 、ps 等指令进一步查询系统及系统内进程的内存占用情况,做进一步排查分析。

针对系统当前内存不足的问题,您可以重启 Apache,释放内存。

说明:从长远的角度来看,您需要对内存进行升级。

带宽跑满或跑高的分析处理

对于正常进程导致的带宽跑满或跑高的问题,需要对服务器的带宽进行升级。对于异常进程,有可能是由于恶意程序问题,或者是部分 IP 恶意访问导致,也可能是服务遭到了 CC 攻击。

通常情况下,您可以使用 iftop 工具或 nethogs 查看流量的占用情况,进而定位到具体的进程。

使用 iftop 工具排查

在服务器内部安装 iftop 流量监控工具。

 yum install iftop -y
로그인 후 복사

服务器外网带宽被占满时,如果通过远程无法登陆,可通过阿里云终端管理进入到服务器内部,运行下面命令查看流量占用情况:

 iftop -i eth1 -P
로그인 후 복사

注意:-P 参数将会显示请求端口。执行 iftop -i eth0 -P 命令,可以查看通过服务器哪个端口建立的连接,以及内网流量。举例如下:

在上图中,您可以查看到流量高耗的是服务器上 53139 端口和 115.205.150.235 地址建立的连接。

执行 netstat 命令反查 53139 端口对应的进程。

 netstat -tunlp |grep 53139
로그인 후 복사

经反查,服务器上 vsftpd 服务产生大量流量,您可以通过停止服务或使用 iptables 服务来对指定地址进行处理,如屏蔽 IP 地址或限速,以保证服务器带宽能够正常使用。

使用 nethogs 进行排查

在服务器内部安装 nethogs 流量监控工具。

 yum install nethogs -y
로그인 후 복사

通过 nethogs 工具来查看网卡上进程级的流量信息,若未安装可以通过 yum、apt-get 等方式安装。举例如下:

若 eth1 网卡跑满,执行命令 nethogs eth1。

查看每个进程的网络带宽情况以及进程对应的 PID。

确定导致带宽跑满或跑高的具体进程。

若进程确定是恶意程序,可以通过执行 kill -TERM 来终止程序。

说明: 如果是 Web 服务程序,您可以使用 iftop 等工具来查询具体 IP 来源,然后分析 Web 访问日志是否为正常流量。日志分析可以使用 logwatch 或 awstats 等工具进行。

使用 Web 应用防火墙防御 CC 攻击

若您的服务遭受了 CC 攻击,请在 Web 应用防火墙控制台尽快开启 CC 安全防护。

登录 Web应用防火墙 控制台。

在 CC 安全防护中,启动状态按钮,并在模式中选择 正常。

Linux 인스턴스 대역폭을 설정하고 CPU가 가득 찼거나 높은 경우 문제를 해결하는 방법

위 내용은 Linux 인스턴스 대역폭을 설정하고 CPU가 가득 찼거나 높은 경우 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Web.xml을 열는 방법 Web.xml을 열는 방법 Apr 03, 2025 am 06:51 AM

Web.xml 파일을 열려면 다음 방법을 사용할 수 있습니다. 텍스트 편집기 (예 : 메모장 또는 문자 메시지)를 사용하여 통합 개발 환경 (예 : Eclipse 또는 NetBeans)을 사용하여 명령을 편집하십시오 (Windows : Notepad Web.xml; Mac/Linux : Open -A Texted web.xml).

C 언어로 멀티 스레딩을 구현하는 4 가지 방법 C 언어로 멀티 스레딩을 구현하는 4 가지 방법 Apr 03, 2025 pm 03:00 PM

언어의 멀티 스레딩은 프로그램 효율성을 크게 향상시킬 수 있습니다. C 언어에서 멀티 스레딩을 구현하는 4 가지 주요 방법이 있습니다. 독립 프로세스 생성 : 여러 독립적으로 실행되는 프로세스 생성, 각 프로세스에는 자체 메모리 공간이 있습니다. 의사-다일리트 레딩 : 동일한 메모리 공간을 공유하고 교대로 실행하는 프로세스에서 여러 실행 스트림을 만듭니다. 멀티 스레드 라이브러리 : PTHREADS와 같은 멀티 스레드 라이브러리를 사용하여 스레드를 만들고 관리하여 풍부한 스레드 작동 기능을 제공합니다. COROUTINE : 작업을 작은 하위 작업으로 나누고 차례로 실행하는 가벼운 다중 스레드 구현.

가장 잘 사용되는 Linux는 무엇입니까? 가장 잘 사용되는 Linux는 무엇입니까? Apr 03, 2025 am 12:11 AM

Linux는 서버 관리, 임베디드 시스템 및 데스크탑 환경으로 사용되는 것이 가장 좋습니다. 1) 서버 관리에서 Linux는 웹 사이트, 데이터베이스 및 응용 프로그램을 호스팅하는 데 사용되어 안정성과 안정성을 제공합니다. 2) 임베디드 시스템에서 Linux는 유연성과 안정성으로 인해 스마트 홈 및 자동차 전자 시스템에서 널리 사용됩니다. 3) 데스크탑 환경에서 Linux는 풍부한 응용 프로그램과 효율적인 성능을 제공합니다.

데비안 하프 (Debian Hadoop)의 호환성은 어떻습니까? 데비안 하프 (Debian Hadoop)의 호환성은 어떻습니까? Apr 02, 2025 am 08:42 AM

Debianlinux는 안정성과 보안으로 유명하며 서버, 개발 및 데스크탑 환경에서 널리 사용됩니다. 현재 Debian 및 Hadoop과 직접 호환성에 대한 공식 지침이 부족하지만이 기사에서는 Debian 시스템에 Hadoop를 배포하는 방법을 안내합니다. 데비안 시스템 요구 사항 : Hadoop 구성을 시작하기 전에 Debian 시스템이 Hadoop의 최소 작동 요구 사항을 충족하는지 확인하십시오. 여기에는 필요한 JAVA 런타임 환경 (JRE) 및 Hadoop 패키지 설치가 포함됩니다. Hadoop 배포 단계 : 다운로드 및 unzip hadoop : 공식 Apachehadoop 웹 사이트에서 필요한 Hadoop 버전을 다운로드하여 해결하십시오.

GO를 사용하여 Oracle 데이터베이스에 연결할 때 Oracle 클라이언트를 설치해야합니까? GO를 사용하여 Oracle 데이터베이스에 연결할 때 Oracle 클라이언트를 설치해야합니까? Apr 02, 2025 pm 03:48 PM

GO를 사용하여 Oracle 데이터베이스에 연결할 때 Oracle 클라이언트를 설치해야합니까? GO에서 개발할 때 Oracle 데이터베이스에 연결하는 것이 일반적인 요구 사항입니다 ...

데비안 문자열은 여러 브라우저와 호환됩니다 데비안 문자열은 여러 브라우저와 호환됩니다 Apr 02, 2025 am 08:30 AM

"Debiantrings"는 표준 용어가 아니며 구체적인 의미는 여전히 불분명합니다. 이 기사는 브라우저 호환성에 직접 언급 할 수 없습니다. 그러나 "Debiantrings"가 Debian 시스템에서 실행되는 웹 응용 프로그램을 지칭하는 경우 브라우저 호환성은 응용 프로그램 자체의 기술 아키텍처에 따라 다릅니다. 대부분의 최신 웹 응용 프로그램은 크로스 브라우저 호환성에 전념합니다. 이는 웹 표준에 따라 웹 표준과 잘 호환 가능한 프론트 엔드 기술 (예 : HTML, CSS, JavaScript) 및 백엔드 기술 (PHP, Python, Node.js 등)을 사용하는 데 의존합니다. 응용 프로그램이 여러 브라우저와 호환되도록 개발자는 종종 브라우저 크로스 테스트를 수행하고 응답 성을 사용해야합니다.

MySQL에 루트로 로그인 할 수 없습니다 MySQL에 루트로 로그인 할 수 없습니다 Apr 08, 2025 pm 04:54 PM

Root로 MySQL에 로그인 할 수없는 주된 이유는 권한 문제, 구성 파일 오류, 암호 일관성이 없음, 소켓 파일 문제 또는 방화벽 차단입니다. 솔루션에는 다음이 포함됩니다. 구성 파일의 BAND-ADDRESS 매개 변수가 올바르게 구성되어 있는지 확인하십시오. 루트 사용자 권한이 수정 또는 삭제되어 재설정되었는지 확인하십시오. 케이스 및 특수 문자를 포함하여 비밀번호가 정확한지 확인하십시오. 소켓 파일 권한 설정 및 경로를 확인하십시오. 방화벽이 MySQL 서버에 연결되는지 확인하십시오.

libv는 두입니다 libv는 두입니다 Apr 03, 2025 pm 08:03 PM

Lua-Libuv라는 프로젝트를 개발했으며 내 경험을 공유하게되어 기쁩니다. 이 프로젝트의 원래 의도는 Libuv (C로 작성된 비동기 I/O 라이브러리)를 사용하여 C 언어를 심층적으로 배울 필요없이 간단한 HTTP 서버를 구축하는 방법을 탐색하는 것입니다. Chatgpt의 도움으로 Http.c의 기본 코드를 완료했습니다. 지속적인 연결을 다룰 때 적절한 시간에 연결을 닫고 리소스를 자유롭게하는 것을 성공적으로 구현했습니다. 처음에는 연결을 닫아 기본 프로그램을 종료 한 간단한 서버를 만들려고했지만 문제가있었습니다. 스트리밍을 사용하여 데이터 블록을 전송하려고 시도했지만 작동하는 동안 메인 스레드가 차단됩니다. 결국, 나는 내 목표가 C 언어를 깊이 배우는 것이 아니기 때문에이 접근법을 포기하기로 결정했습니다. 마지막으로, 나는

See all articles