接口响应过慢怎样排查?

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 服务变慢
    • 服务器全局慢
        • 包括cpu 慢,内存慢,io/磁盘慢,io/网络慢。
    • 服务器局部慢
        • 指得是发现某一个或者多个服务很慢。
  • 1.全局查询思路
    • 1.1 服务器整体情况(top)----- 进程,cpu,内存
    • 1.2 cpu使用情况(vmstat)
    • 1.3 内存(free)
    • 1.4 磁盘(df)
    • 1.5 磁盘io(iostat)
  • 2.局部查询思路
    • jps -ln (查看java 进程)
    • jmap -histo {pid}
    • grep waiting on
    • 服务变慢排查思路:


服务变慢

生产环境变慢问题,变慢这个问题主要是感官上的变慢,究其原因有两方面服务器全局慢服务器局部慢

服务器全局慢

包括cpu 慢,内存慢,io/磁盘慢,io/网络慢。

服务器局部慢

指得是发现某一个或者多个服务很慢。

1.全局查询思路

  • cpu 慢
  • 内存慢
  • io/磁盘慢
  • io/网络慢

1 top 命令(进程,cpu,内存)

1.1 服务器整体情况(top)----- 进程,cpu,内存

在这里插入图片描述
top命令说明

  • 第 1 行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)
  • 第 2 行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。一般情况下,只要没有僵死的进程,就没啥大问题。
  • 第 3 行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。
  • 第 4 行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量
  • 第 5 行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量
  • 第 6 行里面主要看 PID 和 COMMAND 这两个参数,其中 PID 就是进程 ID , COMMAND 就是执行的命令,能够看到比较靠前的两个进程都是 java 进程

在当前这个界面,按下数字键盘 1 能够看到各个 CPU 的详细利用率
在这里插入图片描述

1.2 cpu使用情况(vmstat)

在这里插入图片描述
在这里插入图片描述

1.3 内存(free)

在这里插入图片描述

1.4 磁盘(df)

在这里插入图片描述

1.5 磁盘io(iostat)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.局部查询思路

top 发现有问题的进程,对于进程进行查看,这里我只说java 进程的服务,cpu 标高,怀疑内存泄漏导致的full
gc 还有就是线程死锁,

jps -ln (查看java 进程)

在这里插入图片描述

jmap -histo {pid}

在这里插入图片描述
grep 一下GC 的信息,也可以查询GC 的 信息。(这里就能查询到是否都是FULL GC)

grep waiting on

(这里就可以查看到是否是有线程死锁的问题)

服务变慢排查思路:

  1. 是不是资源层面的瓶颈,硬件、配置环境之类的问题
  2. 针对查询类接口,是不是没有添加缓存,如果加了,是不是热点数据导致负载不均衡
  3. 是不是有依赖于第三方接口,导致因第三方请求拖慢了本地请求
  4. 是不是接口涉及业务太多,导致程序执行跑很久
  5. 是不是sql层面的问题导致的数据等待加长,进而拖慢接口
  6. 网络层面的原因?带宽不足?DNS解析慢
  7. 确实是代码质量差导致的,如出现内存泄漏,重复循环读取之类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/263414.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue实现rem自适应布局,无需安装插件,代码简单

🤵 作者:coderYYY 🧑 个人简介:前端程序媛,目前主攻web前端,后端辅助,其他技术知识也会偶尔分享🍀欢迎和我一起交流!🚀(评论和私信一般会回&#…

Jenkins自动化构建打包,部署

1.环境准备 上传jdk,maven和tomcat的包,解压到/usr/local下并配置环境变量。 配置jdk [rootserver04 ~]# vim /etc/profile.d/java.sh JAVA_HOME/usr/local/java export PATH$JAVA_HOME/bin:$PATH##加载环境变量 [rootserver04 ~]# source /etc/profi…

电影《名侦探柯南:黑铁的鱼影》观后感

上周看了电影《名侦探柯南:黑铁的鱼影》,整体故事的话,就是柯南他们团队一起去岛屿去上参观,“正好”碰上了“海上信标案件”,在柯南的电影里,用“正好”多少有些反讽的意味,因为柯南好像走到哪,都正好碰到…

FFmpeg 简单文档

一、播放器框架 常用音视频术语 容器/文件(Conainer/File):即特定格式的多媒体文件,比如mp4、flv、mkv等。媒体流(Stream):表示时间轴上的一段连续数据,如一段声音数据、…

键盘失灵?别慌!三招帮你调出电脑软键盘

在电脑使用中,我们有时候需要输入文字,但可能会遇到键盘突然失灵的情况。这时,我们可以使用电脑自带的软键盘来解决问题。本文将介绍如何调出电脑软键盘,以便在需要时进行文字输入。 下面以Windows10系统电脑调出软键盘为例进行演…

如何将采购时间从几天缩短为几小时?

从事采购工作时,采购需要多长时间是面临的常见挑战之一。 采购是供应链中的一个环节,大家都不想看到整个流程被拖慢,但很多时候,事情往往向超出控制范围的方向发展。不过,企业可以通过多种方式简化采购和管理整个采购…

红队打靶练习:ESCALATE_LINUX: 1

信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:69:c7:bf, IPv4: 192.168.12.128 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.12.1 00:50:56:c0:00:08 …

Jenkins持续集成自动化测试

执行集成构建 持续,自动地构建&测试软件项目代码管理(git/svn)>编译(maven/ant/gradle)>打包>测试环境部署>自动化测试 研发体系中的迭代流程 1 源码分支管理: git或者svn, 将不同开发编…

MySQL 分表真的能提高查询效率?

背景 首先我们以InnoDB引擎,BTree 3层为例。我们需要先了解几个知识点:页的概念、InnoDB数据的读取方式、什么是树搜索?、一次查询花费的I/O次数,跨页查询。 页的概念 索引树的页(page)是指存储索引数据…

python可以做小程序研发嘛,python能做微信小程序吗

大家好,给大家分享一下python可以做微信小程序开发吗,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 大家好,给大家分享一下用python编写一个小程序,很多人还不知道这一点。下面详细解释一下用python代码…

计算机毕业设计-----JSP在线奶茶店销售网站平台

项目介绍 本系统分为前后台,分为普通用户和管理员两种角色; 管理员角色包含以下功能: 管理员登录,用户管理,分类管理,奶茶信息管理,订单管理,新闻管理等功能。 用户角色包含以下功能: 用户登录,按分类查看,查看商品详情,加入购…

BWS2000倾角传感器c++测试代码_时间延迟与时间同步问题【3】

详见昨天做的测试代码,代码网址:BWS2000倾角传感器c测试代码【2】-CSDN博客文章浏览阅读268次,点赞7次,收藏8次。倾角传感器测试与编写思路https://blog.csdn.net/m0_47489229/article/details/135128748 问题一:新的…

动能方案|NFC智能家电解决方案 基于13.56MHz的近场无线通信技术

众所周知,物联网(IoT)是一个连接日常物品和互联网的系统,它正在迅速改变我们执行日常任务的方式,物联网的影响如今几乎在每一个领域都有体现。IOT应用在智能家居领域的发展,相信大家都不陌生,日…

Searching for MobileNetV3(2019)

文章目录 Abstract主要内容实验结果 IntroductionRelated WorkEfficient Mobile Building BlocksNetwork SearchPlatform-Aware NAS for Block-wise SearchNetAdapt for Layer-wise Search Network ImprovementsRedesigning Expensive LayersNonlinearitiesLarge squeeze-and-e…

Jupyter Notebook修改默认工作目录

1、参考修改Jupyter Notebook的默认工作目录_jupyter文件路径-CSDN博客修改配置文件 2.在上述博客内容的基础上,这里不是删除【%USERPROFILE%】而是把这个地方替换为所要设置的工作目录路径, 3.【起始位置】也可以更改为所要设置的工作目录路径&#x…

3分钟部署自己独享的Gemini

3分钟部署自己独享的Gemini 在前面的几篇文章中,分别介绍了Gemini Pro的发布和Gemini Pro API的详细申请步骤,那么今天给大家分享的是如何快速搭建一个属于自己的Gemini 。 1️⃣ 准备工作 科学网络环境Github账号和Vercel账号Gemini Pro API Key&…

深度学习建模从零开始步骤流程

深度学习建模从零开始步骤流程 步骤如下: 环境准备三方库安装建模开发 环境准备 Anaconda安装: Anaconda下载网址,下载win10下的64位版本。 清华镜像站 下载完毕后点击安装,一直点确定或下一步 到上图点击 Just me&#xff…

Appium如何实现移动端UI自动化测试呢?

Appium是一个开源跨平台移动应用自动化测试框架。 既然只是想学习下Appium如何入门,那么我们就直奔主题。文章结构如下: 为什么要使用Appium?如何搭建Appium工具环境?(超详细)通过demo演示Appium的使用Appium如何实现移动端UI自…

Appium安装及配置

一、前置说明 Appium 是一个用于自动化移动应用程序的开源测试框架,它支持 Android 和 iOS,同时支持使用多种编程语言(如 Java、Python、JavaScript 等)进行测试脚本的编写。 二、操作步骤 1. 安装Node.js Appium Server 由 n…

【玩转TableAgent数据智能分析】借助全球高校数据多维度分析案例,体验TableAgent如何助力用户轻松洞察数据,赋能企业高效数智化转型

目录 前言 一、TableAgent介绍及其优势? 1、会话式数据分析,所需即所得 2、私有化部署,数据安全 3、支持企业级数据分析,大规模,高性能 4、支持领域微调,专业化 5、透明化过程,审计部署 二、使用Ta…