云服务器内容精选

  • CPU使用率高问题处理 对于导致CPU使用率高的具体进程,如果确认是异常进程,可以直接通过top命令终止进程。对于kswapd0进程导致的CPU使用率高的问题,则需要对应用程序进行优化,或者通过增加内存进行系统规格的升级。 kswapd0是系统的虚拟内存管理程序,如果物理内存不够用,系统就会唤醒kswapd0进程,由kswapd0分配磁盘交换空间用作缓存,因而占用大量的CPU资源。 使用top命令终止CPU占用率高的进程 您可以直接在top运行界面快速终止相应的异常进程。操作步骤如下: 在top命令运行的同时,按下小写的“k”键。 输入要终止进程的PID。 进程的PID为top命令回显的第一列数值。例如,要终止PID为52的进程,直接输入“52”后回车。 操作成功后,会出现如下图所示类似信息,按回车确认。 kswapd0进程占用导致CPU使用率高 可通过以下步骤排查进程的内存占用情况。 通过top命令查看kswapd0进程的资源使用。 如果kswapd0进程持续处于非睡眠状态,且运行时间较长,可以初步判定系统在持续的进行换页操作,可以将问题转向内存不足的原因来排查。 通过vmstat命令进一步查看系统虚拟内存的使用情况。 如果si和so的值也比较高,说明系统存在频繁的换页操作,系统物理内存不足。 si:每秒从交换区写到内存的大小,由磁盘调入内存。 so:每秒写入交换区的内存大小,由内存调入磁盘。 对于内存不足问题,可以通过free、ps等命令进一步查询系统及系统内进程的内存占用情况,做进一步排查分析。 临时可通过在业务空闲期重启应用或者系统释放内存。 如果要从根本上解决内存不足的问题,需要对服务器内存进行扩容,扩大内存空间。如果不具备扩容的条件,可通过优化应用程序,以及配置使用大页内存来进行缓解。
  • 带宽使用率高问题分析 如果是正常业务访问以及正常应用进程导致的带宽使用率高,需要升级服务器的带宽进行解决。如果是非正常访问,如某些特定IP的恶意访问,或者服务器遭受到了CC攻击。或者异常进程导致的带宽使用率高。可以通过流量监控工具nethogs来实时监测统计各进程的带宽使用情况,并进行问题进程的定位。 使用nethogs工具进行排查 执行以下命令,安装nethogs工具。 yum install nethogs -y 安装成功后可以通过netgos命令查看网络带宽的使用情况。 nethogs命令常用参数说明如下: -d:设置刷新的时间间隔,默认为 1s。 -t:开启跟踪模式。 -c:设置更新次数。 device:设置要监测的网卡,默认是eth0。 运行时可以输入以下参数完成相应的操作: q:退出nethogs工具。 s:按发送流量大小的顺序排列进程列表。 r:按接收流量大小的顺序排列进程列表。 m:切换显示计量单位,切换顺序依次为KB/s、KB、B、MB。 执行以下命令,查看指定的网络端口每个进程的网络带宽使用情况。 nethogs eth1 回显参数说明如下: PID:进程 ID。 USER:运行该进程的用户。 PROG RAM :进程或连接双方的IP地址和端口,前面是服务器的IP和端口,后面是客户端的IP和端口。 DEV:流量要去往的网络端口。 SENT:进程每秒发送的数据量。 RECEIVED:进程每秒接收的数据量。 终止恶意程序或者屏蔽恶意访问IP。 如果确认大量占用网络带宽的进程是恶意进程,可以使用kill PID命令终止恶意进程。 如果是某个IP恶意访问,可以使用iptables服务来对指定IP地址进行处理,如屏蔽IP地址或限速。 使用 Web应用防火墙 防御CC攻击 若服务遭受了CC攻击,请在Web应用防火墙控制台开启CC安全防护。Web应用防火墙的使用指导请参见配置CC防护策略。
  • CPU占用率高问题定位 使用VNC功能登录云服务器。 执行如下命令查看当前系统的运行状态。 top 系统回显样例如下: 查看显示结果。 命令回显第一行:20:56:02 up 37 days,1 user, load average: 0.00, 0.01, 0.05的每个字段含义如下: 系统当前时间为20:56:02,该云服务器已运行37天,当前共有1个用户登录, 最近1分钟、最近5分钟和最近15分钟的CPU平均负载。 命令回显第三行:CPU资源总体使用情况。 命令回显第四行:内存资源总体使用情况。 回显最下方显示各进程的资源占用情况。 在top页面,可以直接输入小写“q”或者在键盘上按“Ctrl+C”退出。 除了直接输入命令,您还可以单击VNC登录页面屏幕右上角的“Input Command”,在弹出的对话框中粘贴或者输入相应命令,单击“Send”。 在top运行中常用的内容命令如下: s:改变画面更新频率。 l:关闭或开启第一部分第一行top信息的表示。 t:关闭或开启第一部分第二行Tasks和第三行Cpus信息的表示。 m:关闭或开启第一部分第四行Mem和 第五行Swap信息的表示。 N:以PID的大小的顺序排列进程列表。 P:以CPU占用率大小的顺序排列进程列表。 M:以内存占用率大小的顺序排列进程列表。 h:显示命令帮助。 n:设置在进程列表所显示进程的数量。 通过ll /proc/PID/exe命令可以查看每个进程ID对应的程序文件。
  • 排查思路 如果打开网站有报错提示信息,首先应该根据报错提示信息,排查可能的原因。 您可以参考通用请求返回值中错误码说明排查可能原因。 如果报错提示信息无法帮助您准确定位问题,请记录资源信息和问题时间,然后单击提交工单,填写工单信息,获取技术支持。 您还可以根据以下排查思路进行问题定位,排查思路根据可能原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。 如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。 图1 网站无法访问排查思路 表1 网站无法访问排查思路 可能原因 处理措施 检查端口通信 检查Web端口是否正常监听,详细操作请参考检查端口通信问题。 检查安全组规则 检查安全组是否放通Web端口,详细操作请参考检查安全组规则。 检查防火墙配置 测试防火墙关闭后是否可以正常访问,详细操作请参考检查防火墙配置。 检查云服务器路由配置 查看云服务器路由表中网关信息配置是否正确,详细操作请参考检查云服务器路由配置。 检查本地网络 更换手机热点或其他网络测试是否可以正常访问,详细操作请参考检查本地网络。 检查云服务器CPU利用率 定位影响云服务器CPU利用率高的进程并优化进程,详细操作请参考检查云服务器CPU利用率。 检查 域名 解析(适用于域名访问的场景) 域名解析配置是否配置正确,详细操作请参考检查备案与域名解析是否正常(使用域名无法访问时适用)。 检查域名备案(适用于域名访问的场景) 网站的域名和服务器IP是否备案成功,详细操作请参考检查备案与域名解析是否正常(使用域名无法访问时适用)。
  • 检查端口通信问题 确保服务进程和端口正常工作,处于LISTEN状态。表2为常见TCP状态。 Linux操作系统云服务器端口通信问题排查 使用netstat -antpu命令检查服务的状态,确认端口是否正常监听。 例如:netstat -antpu |grep sshd 图2 查看端口监听状态_linux 如果端口被正常监听,请执行检查安全组规则。 如果端口没有被正常监听,请检查Web服务进程是否启动或者正常配置。 Windows操作系统云服务器端口通信问题排查 使用远程端口检测命令: 打开CMD命令行窗口。 执行netstat -ano | findstr “端口”命令查看进程使用的端口号。 例如:netstat -ano | findstr “80” 图3 查看端口监听状态_windows 如果端口被正常监听,请执行检查安全组规则。 如果端口没有被正常监听,请检查Web服务进程是否启动或者正常配置。 表2 常见TCP状态 TCP状态 说明 对应场景 LISTEN 侦听来自远方的TCP端口的连接请求 正常TCP服务端 ESTABLISHED 代表一个打开的连接 正常TCP连接 TIME-WAIT 等待足够的时间以确保远程TCP接收到连接中断请求的确认 已关闭的TCP连接,一般1分钟后清除。 CLOSE-WAIT 等待从本地用户发来的连接中断请求 应用程序BUG,没有关闭socket。出现在网络中断后。一般是进程死循环或等待其他条件。可以重启对应进程。 FIN-WAIT-2 从远程TCP等待连接中断请求 网络中断过,需要12分钟左右自行恢复。 SYN-SENT 再发送连接请求后等待匹配的连接请求 TCP连接请求失败。一般是服务端CPU占用率过高,处理不及时导致。DDos攻击也会出现此情况。 FIN-WAIT-1 等待远程TCP连接中断请求,或先前的连接中断请求的确认 网络中断过,此状态可能不会自行修复(等15分钟以上确认),如果长期占用端口需要重启OS恢复。
  • 检查云服务器路由配置 Linux操作系统云服务器 使用route命令查看路由策略,确保0.0.0.0的默认路由指向网关,使用的IP和网关在相同网段,如下图第1行和第3行所示。 使用ifconfig或者ip addr命令查看实例的IP地址。 图4 ifconfig命令查看IP地址 图5 ip addr命令查看IP地址 使用route -n命令通过路由表查看网关。 图6为示例,具体以云服务器网关实际地址为准。 图6 route -n命令查看网关
  • 检查云服务器CPU利用率 云服务器的带宽和CPU利用率过高可能导致网站无法访问。如果您已经通过 云监控服务 创建过告警任务,当CPU或带宽利用率高时,系统会自动发送告警给您。 定位影响云服务器带宽和CPU利用率高的进程。 Windows操作系统本身提供了较多工具可以定位问题,包括任务管理器、性能监视器(Performance Monitor)、资源监视器(Resource Monitor)、Process Explorer、Xperf (Windows server 2008 以后)和抓取系统Full Memory Dump检查。 Linux操作系统执行top命令查看当前系统的运行状态。 问题处理:排查进程是否正常,并分类进行处理。 正常进程:优化程序,或参考变更规格通用操作变更 云服务器配置 。 异常进程:建议您手动关闭进程,您也可以借助第三方工具关闭进程。
  • 检查备案与域名解析是否正常(使用域名无法访问时适用) 完成上述的排查后,请使用弹性公网IP进行访问。如果使用IP地址可以访问,但是域名访问失败,则可能是域名备案或者解析相关问题造成网站无法访问。 网站的访问与域名的状态、域名实名认证状态、网站备案状态、解析是否生效、网站网络环境等多个环节有关系。在这些环节中,任意一个环节出现问题,都会导致网站无法访问。 关于域名与备案解析的排查思路请参考网站无法访问排查思路(排查域名与备案解析)。 检查域名备案。 备案是中国大陆的一项法规,网站的域名和服务器IP需要进行备案,备案成功后您的域名才可以指向服务器开通访问。 如果您使用中国大陆节点服务器提供互联网信息服务,需要先在服务器提供商处提交备案申请,备案成功后域名才可以指向服务器开通访问。如何备案? 如果您使用的是中国大陆地区以外的服务器(包括中国港澳台及其他国家、地区)提供互联网信息服务,无需备案。 如果您的域名已在其他接入商办理过备案并取得备案号,现在更换到华为云服务器进行域名解析(或者二级域名指向华为云),因接入商有变更,需要您在华为云做接入备案。 请确保网站内容与备案信息一致,且备案信息真实有效。 如果您的网站已备案成功仍无法访问,请等待一个工作日。由于信息同步延迟,备案通过一个工作日后网页会自动开放。 检查域名解析。 如果域名已备案,但未正确配置域名解析也可能会导致域名无法Ping通。 您可以DNS服务控制台查看域名解析详情。 检查DNS服务器配置。 如果ping 域名显示找不到主机可能是DNS服务器速度慢,导致的访问卡顿,建议您参考案例:弹性云服务器访问中国大陆外网站时加载缓慢怎么办?进行优化。
  • 分析处理 在您采取措施处理问题前,首先需要判断影响CPU或带宽占用率高的进程和驱动是否正常,并分类进行处理。 正常进程分析处理建议 如果您的操作系统是Windows 2008/Windows 2012,请检查内存大小,建议内存配置在2GB或以上。 检查后台是否有执行Windows Update的行为。 检查杀毒软件是否正在后台执行扫描操作。 核对云服务器运行的应用程序中是否有对网络和CPU要求高的需求,如果是,建议您变更云服务器的配置或修改带宽。 如果云服务器配置已经比较高,建议考虑云服务器上应用场景的分离部署,例如将数据库和应用分开部署。 异常进程分析处理建议 如果CPU或带宽利用率高是由于病毒、木马入侵导致的,那么需要手动结束进程。建议的处理顺序如下: 使用商业版杀毒软件或安装微软安全工具Microsoft Safety Scanner,在安全模式下扫描病毒。 安装Windows最新补丁。 使用MSconfig禁用所有非微软自带服务驱动,检查问题是否再次发生,具体请参考:如何在Windows中执行干净启动。 若服务器或站点遭受DDOS攻击或CC攻击等,短期内产生大量的访问需求。 您可以登录管理控制台执行以下操作: 查看Anti-DDOS攻击是否开启,并检查防护策略是否配置合适;如未配置,请参考:配置开启Anti-DDoS防护。 查看CC防护策略是否开启,并检查防护策略是否配置合适;如未配置,请参考:配置CC防护策略。 不明来源驱动分析处理建议 有些病毒和木马会通过文件系统过滤驱动加载。如果您发现不明来源的驱动,建议您卸载该驱动,也可以使用正规商业杀毒软件或第三方安全管理工具进行删除。 如果发现有无法删除的不明驱动,或者删除后还会再次出现的不明驱动,一般都是病毒或木马的驱动。如果使用正规商业杀毒软件或第三方安全管理工具也不能彻底删除,建议您重装操作系统,在这之前请做好数据备份避免造成损失。
  • 问题定位步骤 在管理控制台使用VNC方式登录云服务器。 打开“运行”窗口,输入“perfmon -res”。 图1 打开资源监视器 在“资源监视器”中,单击“CPU”或“网络”,查看CPU占用率或带宽使用情况。 图2 资源监视器 查看CPU和带宽占用率较高的进程ID和进程名。 在控制台VNC登录页面单击“Ctrl+Alt+Del”,打开“Windows任务管理器”。 或打开“运行”窗口,输入“taskmgr”,打开“Windows任务管理器”。 以下步骤为您介绍在任务管理器中打开PID,找到进程的具体位置,核对是否异常进程。 选择“详细信息”选项卡。 单击PID进行排序。 在查找到的CPU或带宽占用率高的进程上右键单击“打开文件位置”。 定位进程是否是正常或是否为恶意程序。 图3 检查进程 打开“运行”窗口,输入“fltmc”,查看系统的文件系统过滤驱动。 下图以windows10操作系统为例,不同操作系统内置驱动不同,请以官网网站说明为准。如果安装了第三方的驱动,也会在这个列表中显示。 图4 查看系统驱动 以下步骤为您介绍如何查看驱动的来源,核对是否为不明来源驱动。 打开系统路径“C:\Windows\System32\drivers”。 在不明驱动名称上单击,选择“属性”,查看详细信息。 选择“数字签名”,查看驱动的来源。 图5 查看驱动来源
  • Linux操作系统MTR介绍和使用 安装MTR 目前现有的Linux发行版本都预装了MTR,如果您的Linux云服务器没有安装MTR,则可以执行以下命令进行安装: CentOS 操作系统: yum install mtr Ubuntu 操作系统: sudo apt-get install mtr MTR相关参数说明 -h/--help:显示帮助菜单。 -v/--version:显示MTR版本信息。 -r/--report:结果以报告形式输出。 -p/--split:与 --report相对,分别列出每次追踪的结果。 -c/--report-cycles:指定每次探测发送的数据包数量,默认值是10。 -s/--psize:设置数据包的大小。 -n/--no-dns:不对IP地址做域名解析。 -a/--address:用户设置发送数据包的IP地址,主要用户单一主机多个IP地址的场景。 -4:IPv4。 -6:IPv6。 以本机到IP为119.xx.xx.xx的服务器为例。 执行以下命令,以报告形式输出MTR的诊断报告。 mtr 119.xx.xx.xx --report 回显信息如下: [root@ecs-0609 ~]# mtr 119.xx.xx.xx --report Start: Thu Aug 22 15:41:22 2019 HOST: ecs-652 Loss% Snt Last Avg Best Wrst StDev 1.|-- 100.xx.xx.xx 0.0% 10 3.0 3.4 2.8 7.5 1.3 2.|-- 10.xx.xx.xx 0.0% 10 52.4 51.5 34.2 58.9 6.3 3.|-- 10.xx.xx.xx 0.0% 10 3.2 5.0 2.7 20.8 5.5 4.|-- 10.xx.xx.xx 0.0% 10 1.0 1.0 1.0 1.1 0.0 5.|-- 192.xx.xx.xx 0.0% 10 3.5 4.2 2.8 11.6 2.5 6.|-- 10.xx.xx.xx 0.0% 10 35.3 34.5 6.0 56.4 22.6 7.|-- 10.xx.xx.xx 0.0% 10 3.3 4.7 3.1 14.7 3.6 8.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0 主要输出的信息如下: HOST:节点的IP地址或域名。 Loss%:丢包率。 Snt:每秒发送的数量包的数量。 Last:最近一次的响应时间。 Avg:平均响应时间。 Best:最短的响应时间。 Wrst:最长的响应时间。 StDev:标准偏差,偏差值越高,说明各个数据包在该节点的响应时间相差越大。
  • 常见的链路异常案例 目标主机配置不当 如下示例所示,数据包在目标地址出现了100%的丢包。从数据上看是数据包没有到达,其实很有可能是目标服务器网络配置原因,需检查目的服务器的防火墙配置。 Host Loss% Snt Last Avg Best Wrst StDev 1. ??? 2. ??? 3. 1XX.X.X.X 0.0% 10 521.3 90.1 2.7 521.3 211.3 4. 11X.X.X.X 0.0% 10 2.9 4.7 1.6 10.6 3.9 5. 2X.X.X.X 80.0% 10 3.0 3.0 3.0 3.0 0.0 6. 2X.XX.XX.XX 0.0% 10 1.7 7.2 1.6 34.9 13.6 7. 1XX.1XX.XX.X 0.0% 10 5.2 5.2 5.1 5.2 0.0 8. 2XX.XX.XX.XX 0.0% 10 5.3 5.2 5.1 5.3 0.1 9. 1XX.1XX.XX.X 100.0% 10 0.0 0.0 0.0 0.0 0.0 ICMP限速 如下示例所示,在第5跳出现丢包,但后续节点均未见异常。所以推断是该节点ICMP限速所致。该场景对最终客户端到目标服务器的数据传输不会有影响,分析时可以忽略此种场景。 Host Loss% Snt Last Avg Best Wrst StDev 1. 1XX.XX.XX.XX 0.0% 10 0.3 0.6 0.3 1.2 0.3 2. 1XX.XX.XX.XX 0.0% 10 0.4 1.0 0.4 6.1 1.8 3. 1XX.XX.XX.XX 0.0% 10 0.8 2.7 0.8 19.0 5.7 4. 1XX.XX.XX.XX 0.0% 10 6.7 6.8 6.7 6.9 0.1 5. 1XX.XX.XX.XX 60.0% 0 27.2 25.3 23.1 26.4 2.9 6. 1XX.XX.XX.XX 0.0% 10 39.1 39.4 39.1 39.7 0.2 7. 1XX.XX.XX.XX 0.0% 10 39.6 40.4 39.4 46.9 2.3 8. 1XX.XX.XX.XX 0.0% 10 39.6 40.5 39.5 46.7 2.2 环路 如下示例所示,数据包在第5跳之后出现了循环跳转,导致最终无法到达目标服务器。出现此场景是由于运营商相关节点路由配置异常所致,需联系相应节点归属运营商处理。 Host Loss% Snt Last Avg Best Wrst StDev 1. 1XX.XX.XX.XX 0.0% 10 0.3 0.6 0.3 1.2 0.3 2. 1XX.XX.XX.XX 0.0% 10 0.4 1.0 0.4 6.1 1.8 3. 1XX.XX.XX.XX 0.0% 10 0.8 2.7 0.8 19.0 5.7 4. 1XX.XX.XX.XX 0.0% 10 6.7 6.8 6.7 6.9 0.1 5. 1XX.XX.XX.65 0.0% 10 0.0 0.0 0.0 0.0 0.0 6. 1XX.XX.XX.65 0.0% 10 0.0 0.0 0.0 0.0 0.0 7. 1XX.XX.XX.65 0.0% 10 0.0 0.0 0.0 0.0 0.0 8. 1XX.XX.XX.65 0.0% 10 0.0 0.0 0.0 0.0 0.0 9. ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 链路中断 如下示例所示,数据包在第4跳之后就无法收到任何反馈。这通常是由于相应节点中断所致。建议结合反向链路测试做进一步确认。该场景需要联系相应节点归属运营商处理。 Host Loss% Snt Last Avg Best Wrst StDev 1. 1XX.XX.XX.XX 0.0% 10 0.3 0.6 0.3 1.2 0.3 2. 1XX.XX.XX.XX 0.0% 10 0.4 1.0 0.4 6.1 1.8 3. 1XX.XX.XX.XX 0.0% 10 0.8 2.7 0.8 19.0 5.7 4. 1XX.XX.XX.XX 0.0% 10 6.7 6.8 6.7 6.9 0.1 5. 1XX.XX.XX.XX 0.0% 10 0.0 0.0 0.0 0.0 0.0 6. 1XX.XX.XX.XX 0.0% 10 0.0 0.0 0.0 0.0 0.0 7. 1XX.XX.XX.XX 0.0% 10 0.0 0.0 0.0 0.0 0.0 8. 1XX.XX.XX.XX 0.0% 10 0.0 0.0 0.0 0.0 0.0 9 1XX.XX.XX.XX 0.0% 10 0.0 0.0 0.0 0.0 0.0
  • WinMTR和MTR的报告分析处理 以下图为例分析WinMTR和MTR的报告。 服务器本地网络:即图中A区域,代表本地局域网和本地网络提供商网络。 如果客户端本地网络中的节点出现异常,则需要对本地网络进行相应的排查分析。 如果本地网络提供商网络出现异常,则需要向当地运营商反馈问题。 运营商骨干网络:即图中B区域,如果该区域出现异常,可以根据异常节点的IP查询其所属的运营商,向对应运营商进行反馈。 目标端本地网络:即图中C区域,即目标服务器所属提供商的网络。 如果丢包发生在目的服务器,则可能是目的服务器的网络配置原因,请检查目的服务器的防火墙配置。 如果丢包发生在接近目的服务器的几跳,则可能是目标服务器所属提供商的网络问题。
  • Windows操作系统Tracert介绍和使用 Tracert是路由跟踪程序,Tracert命令用来显示数据包到达目标主机所经过的路径,并显示到达每个节点的时间。Tracert命令功能与Ping命令类似,但获得的信息要比Ping命令详细,它可以显示数据包所走的全部路径、节点的IP以及时间。 登录Windows云服务器。 打开cmd命令窗,执行以下命令跟踪IP地址。 tracert IP地址/网站地址 例如:tracert www.example.com 对数据节点分析如下: Tracert默认最大跳数30,第1列为起跳顺序号。 Tracert每次会发送三个数据包,第2、3、4列为对应三个数据包的返回时间。第5列为跳转的IP节点。 假如某一层中出现了“* * * request timed out”,那么则需要定位这层的问题,可能这里导致连接不到目标节点。
  • 原因分析 丢包或时延较高可能是链路拥塞、链路节点故障、服务器负载高、系统设置问题等原因引起。 在排除云服务器自身原因后,您可以使用Tracert或MTR工具进行进一步诊断。 使用网络诊断工具MTR可以帮助您确认网络问题的根因。 本节操作导航: Windows: (推荐使用)Windows操作系统Tracert介绍和使用。 Windows操作系统WinMTR介绍和使用。 Linux: Linux操作系统MTR介绍和使用。