Sur la base de la manière de définir la bande passante d'une instance Linux et de déterminer si le processeur est plein ou élevé, cet article se concentre sur les étapes spécifiques. Le contenu de cet article est compact et j'espère que vous pourrez gagner quelque chose. de là.
La bande passante et le processeur de l'instance Linux sont saturés ou exécutent un dépannage élevé
Lors de l'utilisation du serveur cloud ECS, si le service ralentit ou si l'instance ECS se déconnecte soudainement, vous pouvez considérer que la bande passante du serveur et le processeur sont y a-t-il un problème avec le fonctionnement à plein ou à haut niveau ? Si vous créez une tâche d'alarme à l'avance, le système émettra automatiquement un rappel d'alarme lorsque la bande passante et le processeur sont pleins ou élevés. Sous le système Linux, vous pouvez suivre les étapes suivantes pour dépanner :
Localisez le problème. Recherchez les processus spécifiques qui affectent la bande passante et le fonctionnement complet ou élevé du processeur.
Analyse et traitement. Vérifiez si les processus qui affectent la bande passante et le processeur fonctionnent à plein ou à un niveau élevé sont normaux et classez-les pour le traitement.
Pour les processus normaux : vous devez optimiser le programme ou mettre à niveau la configuration du serveur.
Pour les processus anormaux : vous pouvez vérifier et arrêter manuellement le processus, ou vous pouvez utiliser des outils de sécurité tiers pour vérifier et arrêter le processus.
Les configurations et instructions pertinentes contenues dans cet article ont été testées sur le système d'exploitation CentOS 6.5 64 bits. La configuration d'autres types et versions de systèmes d'exploitation peut être différente. Pour plus de détails, veuillez vous référer à la documentation officielle du système d'exploitation correspondant.
Si le processeur du système ECS Linux du serveur cloud continue de fonctionner à un niveau élevé, cela affectera la stabilité du système et les opérations commerciales. Cet article explique brièvement le dépannage et l'analyse du problème d'utilisation élevée du processeur.
Localisation du problème du processeur fonctionnant à plein ou à un niveau élevé
Si le processeur du serveur cloud ECS continue de fonctionner à un niveau élevé, cela affectera la stabilité et la stabilité du système est affectée. Sous les systèmes Linux, les commandes courantes pour afficher les processus sont les suivantes :
ps -aux ps -ef top
Dans les systèmes Linux, la commande top est généralement utilisée pour afficher les problèmes de charge du système et localiser les processus qui consomment plus de ressources CPU.
Étapes de fonctionnement
Connectez-vous à l'instance ECS via le terminal de gestion de la console, voir Se connecter à l'instance ECS à l'aide de la fonction de connexion à distance.
Remarque : lorsque la charge des ressources est anormale, la connexion à distance via SSH n'est généralement pas possible. Il est recommandé de vous connecter via le terminal de gestion de la console.
Affichez l'état de fonctionnement actuel du système via la commande supérieure.
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
Pour les problèmes de chargement, il vous suffit de prêter attention aux première et troisième lignes d'informations dans l'écho. Les détails sont les suivants.
Le contenu affiché dans la première ligne de la commande supérieure est 17:27:13 jusqu'à 27 jours, 3:13, 1 utilisateur, moyenne de charge : 0,02, 0,03, 0,05, qui sont l'heure actuelle du système et l'heure atteinte par le système jusqu'à présent. La durée d'exécution, le nombre d'utilisateurs actuellement connectés au système et la charge du système sont cohérents avec les résultats de la requête de l'exécution directe de la commande uptime.
La troisième ligne de la commande supérieure affichera l'utilisation globale actuelle des ressources du processeur, et l'utilisation des ressources de chaque processus sera affichée ci-dessous.
Utilisez la lettre P pour trier l'utilisation du processeur dans l'ordre inverse et localiser les processus qui occupent un processeur plus élevé dans le système.
Remarque : avec la touche alphabétique M, vous pouvez trier l'utilisation de la mémoire système. S'il existe un processeur multicœur, la touche numérique 1 peut afficher l'état de charge de chaque processeur cœur.
Vous pouvez afficher le fichier programme correspondant à chaque ID de processus via ll /proc/PID/exe.
Analyse et traitement du processeur fonctionnant à plein ou à niveau élevé
CPU fonctionnant à plein ou à niveau élevé, après avoir confirmé les résultats spécifiques du processus, en cas d'anomalie processus, vous devez les terminer via la commande top ; pour des problèmes tels qu'une mémoire insuffisante causée par le processus kswapd0, vous devez mettre à niveau les spécifications du système ou optimiser le programme.
Utilisez top pour terminer directement le processus qui consomme beaucoup de CPU
Vous pouvez rapidement terminer le processus anormal correspondant directement dans le top en cours d'exécution interface. Voici les étapes :
Si vous souhaitez arrêter un processus, appuyez simplement sur la touche k minuscule.
Entrez le PID du processus que vous souhaitez terminer (la première colonne de la sortie supérieure). Par exemple, si vous souhaitez terminer le processus avec le PID 86, saisissez 86 et appuyez sur Entrée.
Une fois l'opération réussie, un message d'invite similaire à Envoyer le signal pid 86 [15/sigterm] apparaîtra sur l'interface. Appuyez simplement sur Entrée pour confirmer.
L'occupation du processus kswapd0 entraîne une utilisation élevée du processeur
Le système d'exploitation utilise le mécanisme de pagination pour gérer la mémoire physique, et le système virtualiser une partie de l'espace du disque dur en utilisation mémoire. Étant donné que la mémoire est beaucoup plus rapide que le disque, le système doit suivre un certain mécanisme de pagination pour échanger les pages inutiles sur le disque et transférer les pages requises vers la mémoire.
kswapd0 est le processus responsable de la pagination dans la gestion de la mémoire virtuelle. Lorsque la mémoire du serveur est insuffisante, kswapd0 effectuera une opération de pagination qui consomme beaucoup de ressources CPU hôte. Les étapes sont les suivantes :
Affichez le processus kswapd0 via la commande top.
检查该进程是否持续处于非睡眠状态,且运行时间较长。若是,可以初步判定系统在持续地进行换页操作,kswapd0 进程占用了系统大量 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 安全防护中,启动状态按钮,并在模式中选择 正常。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!