首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

程序员必备Linux性能分析工具和方法

哪个进程占用了大多数 CPU? 通过 top 命令进程排序列表确定占用大量 CPU 的进程。 进程在内核还是用户空间花费了时间?...使用 time 命令查看进程在内核和用户空间花费的时间,这里不一定非得任意一方非得大多数时间。如进程在内核占用超过25%以上的时间,说明内核也排查是重点。 进程在哪些系统调用上花费了较多时间?...如果函数调用次数过多,则检查是否存在不必要的调用次数,如 for 循环判断条件里不断调用某个函数或者 debug 日志里调某个函数得到一个字符串序列。...哪个进程在使用共享内存? 使用 ipcs -p 查看哪些进程创建和使用了共享内存。对于共享内存过大问题,可以查看其程序代码看分配是否合理。对于共享内存数不断增加,是否存在创建后未删除等问题。 ‍...使用 iptraf 查看流量类型(协议/端口号)。 是否有进程处理该类型的流量? 使用 netstat 查看是否有进程在流经该网络端口的流量。 哪个远程系统发送了流量?

21910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何查看端口被哪个进程占用?

    netstat -lnp|grep 1521 --windows netstat -ano | findstr "1521" tasklist | findstr "3572" windows知道端口号如何哪个进程占用...同事今天早上来进行常规开发,突然发现之前能用的链接今天突然发现都返回404,然而nginx的配置都没改变过,使用F12发现返回的地址是127.0.0.1:62251,进而去查询哪个服务在占用这个端口...查出服务后杀掉,能够正常访问。 以下为举例,端口不是当时的端口。...2.想要查询某个进程具体是哪个进程,可以使用tasklist命令,具体方法tasklist|findstr "8060"(注:8060是进程PID) 可以查出是openV**客户端占用的这个端口...1、lsof -i:端口号 2、netstat -tunlp|grep 端口号 都可以查看指定端口被哪个进程占用的情况 【步骤一】lsof -i lsof -i 用以显示符合条件的进程情况,

    19.9K20

    关于OOM故障复盘

    b 对比法 对于应用程序来说,一般都有两个后端,后端都是负载均衡的,所以如果是一个挂了的话,那么就可以使用对比法,对比两个服务器的使用的资源消耗,从而看看哪个方面的数据不正常。...c 日志 从应用程序角度查看应用的日志,看看是否出现相关的报错,看看是否出现内存剧增,看看是否出现oom的日志。...从应用程序的链路查看相关日志,这个服务正常,下游的服务呢,服务的追踪链条,就像有一个人错了,从而导致这一条线全错了。...d 原理 如果是内存OOM了,那么哪些进程使用了超级多的内存?为什么使用了那么多的内存?如果内存消耗都是正常,那么是否应该考虑扩容,本身的资源不足导致的?...潜在的风险就是一种错误预算,这是一种共同的责任,而不是某个单独的人来抗。。。在创新的同时,要容忍错误,但是不在同一个问题上犯错误。 今日最好的表现,是明天最低的要求。。。这就是变化。

    86030

    Linux性能检查命令总结

    如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?...shift+M:按照内存使用进行排序;shift+P:按照cpu时间排序;shift+T:按照cpu累计使用时间排序多核cpu,按“1”进入top视图 sar -u 3(间隔时间) 查看cpu总体消耗比...里面的uninterruptedsleep的任务数量 uninterruptedsleep的任务会被计入cpu load,如磁盘堵塞 网络瓶颈 cat /var/log/messages 查看内核日志,查看是否丢包...cpu的消耗是否很大,如果大说明磁盘存在大的瓶颈,同时关注await,表示磁盘的响应时间以便小于5ms iostat -x 查看系统各个磁盘的读写性能 重点关注await和iowait的cpu比...iotop 查看哪个进程在大量读取IO 一般先通过iostat查看是否存在io瓶颈,再定位哪个进程在大量读取IO df -hl 查看磁盘剩余空间 du -sh 查看磁盘使用了多少空间 应用瓶颈

    2.1K40

    渗透测试基础 - - - linux入侵排查

    检查隐藏帐户及弱口令 使用last命令查看下服务器近期登录的帐户记录,确认是否有可疑 IP 登录过机器 通过less /var/log/secure|grep 'Accepted'命令,查看是否有可疑...IP 成功登录机器 检查系统是否采用 默认管理端口 检查/etc/passwd文件,看是否有非授权帐户登录 检查恶意进程及非法端口 运行netstat -antp,查看服务器是否有未被授权的端口被监听,...进入 cron 文件目录,查看是否存在非法定时任务脚本 检查第三方软件漏洞 如果您服务器内有运行 Web、数据库等应用服务,请您限制应用程序帐户对文件系统的写权限,同时尽量使用非 root 帐户运行...· fuser -n tcp [端口号]查看该端口对应的进程pid Part4检查主机服务 service --status-all(枚举主机的所有服务) Part5检查历史命令 · history...,也需要对服务运行的日志进行排查 Part11登陆排 · who (查看当前登录的用户) · w(显示已登陆的用户,且在执行的命令) · last (查看登录成功的用户) lastb(查看最近登录失败的用户

    91620

    linux 网口_网络管理员网址

    , ---- 插口包含了端口,因为插口 = (IP地址,端口号)。...插口由应用程序产生,并指明它将由客户还是服务器来使用。当应用进程创建一个插口时,要指明该插口使用的端口号。...---- 端口port,是应用层服务的的一种代号,它用来标志应用层的进程,一个程序一个端口号 正在运行服务的端口:#ss -tnl 端口是一个16 bit的整数(范围0-65535),各种服务器使用的端口号都是保留端口号...例如万维网服务器使用的端口号是80。 在发送数据时,应用层的数据通过端口向下交付到运输层。在接收数据时,运输层的数据通过适当的端口向上交付到应用层的某个应用程序。...---- API接口: 应用程序角度的接口: 内部接口: 最常见的就是开发过程中,后端开发写好了一个方法,封装成了一个接口,供前端开发人员调用,来实现某个特定功能,我们就可以通过在页面上做操作,来间接调用这个接口实现某个特定功能

    5.3K30

    关于面试总结7-linux经典面试题

    如何查看所有java进程 grep是搜索关键字 ps -ef | grep java -aux 显示所有状态 ps -aux | grep java kill 杀掉进程 3.如何杀掉某个服务的进程 kill...netstat -anp | grep 端口号 ?...图中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了 查看82端口的使用情况,如图 netstat -anp |grep...此处注意,图中显示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,查看具体端口时候,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了 查看当前所有已经使用的端口情况,如图...-type f -size +100M 9.如果知道一个文件名称,怎么这个文件在linux下的哪个目录,如:要查找tnsnames.ora文件 find / -name tnsnames.ora 查到

    6.7K30

    问题排查:nginx的反向代理感觉失效了一样

    今天就是负责一个问题,app上一个头像上传的接口,之前都好好的,不知道怎么就不能访问了,报错现象是在请求后等待n秒超时,然后服务端报错502。...vnc登录进去后,根据端口号找到对应的进程,发现是Apache HTTP Server,这个东西我也不熟悉,知道它类似于nginx,功能类似,但是几乎一直没用过,所幸,在程序的根目录下,找到了一个配置文件...然后,我想着是不是我配置文件没看对,我以为会走某个location,该不会没匹配上,走到别的location了,然后转发到其他后端去了? 后面仔细观察了请求接口的url,感觉还是没问题。...当时,基于两个原因,决定采用strace去看看nginx的系统调用: 看看是不是我把location看错了,nginx把请求发到其他机器去了,所以在9901的java服务才看不到日志 看看是不是nginx...image-20230824205407186 看我上图标红的下面那一行,是我们服务端nginx往客户端发的,68个字节,也有个重传字样,看起来,意思是我们也发生了重传,重传了哪个包呢,就是包2,也就是握手时候的我方回复的

    90430

    TCPIP(八)之总结TCPIP四层模型

    其实这个问题我也上网了一下资料。   tcp/ip是事实标准,分4层。osi模型是国际标准,分7层。讲课的时候,一般把他们综合起来讲,就说是5层。他把网络接口层分开为数据链路层和物理层了。   ...在收到服务请求时,操作系统动态地为客户端的应用程序分配端口号。       在服务器端,每种服务在"众所周知的端口"(Well-Know Port)为用户提供服务。     ...有时,我们把一个IP地址和一个端口号合称为一个套接字(Socket),而一个套接字对(Socket pair)可以唯一地确定互连网络中每个TCP连接的双方(客户IP地址、客户端口号服务器IP地址、服务端口号...同时,有些应用层协议占用了两个不同的端口号,如FTP的20、21端口,SNMP的161、162端口。这些应用层协议在不同的端口提供不同的功能。...还有一些协议使用了传输层的不同协议提供的服务。如DNS协议同时使用了TCP 53端口和UDP 53端口。DNS协议在UDP的53端口提供域名解析服务,在TCP的53端口提供DNS区域文件传输服务

    11.5K70

    千兆以太网在国产FPGA(智多晶)上的实现

    以下为 原理实现框图: 至于使用哪一个,看自己的模块使用的总线类别而定;我使用的是智多晶的开发板,这个模块是rgmii总线的,具体型号好像是2000系列的,可以去官网一下 读者在设计时一定要清楚RGMII...区分服务: 8 位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使用过.1998年这个字段改名为区分服务.只有在使用区分服务(DiffServ)时,这个字段才起作用.一般的情况下都不使用这个字段...RFC 指定,当前值为 64.发送 ICMP回显应答时经常把 TTL 设为最大值 255 协议: 8 位,指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程,...UDP 协议的报头格式: UDP 报头由 4 个域组成,其中每个域各占用 2 个字节,具体如下: ① UDP 源端口号 ② 目标端口号 ③ 数据报长度 ④ 校验和 UDP 协议使用端口号为不同的应用保留其各自的数据传输通道...如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此 UDP 协议可以检测是否出错。

    84930

    Docker 下 Nginx 端口转发至 Mysql 服务

    由于我的 Nginx 和 Mysql 都是基于容器运行的,对于外网只暴露了 80 和 443 端口用于 web 服务,由于后续开发的网址导航功能使用 Serverless ,同时需要访问 Mysql 服务...Mysql 用户配置 添加一个 Mysql 新用户来授权远程访问,同时赋予该用户仅有的增删改功能。...# 添加用户,并设置为远程可连接,同时设置密码 CREATE USER 'noxxxx'@'%' IDENTIFIED BY '12345'; 含义: 主机名称:指定该用户在哪个主机上可以登陆,如果是本地用户可用...表名 TO 'noxxxx'@'%'; GRANT ALL ON *.* TO 'noxxxx'@'%'; GRANT ALL ON 数据库名.* TO 'noxxxx'@'%'; 使用第三条命令即可对某个数据库下的所有表赋予全部权限...生效权限配置 flush privileges 查看是否生效 phpmyadmin 里: Sequel Pro 下,我们可以远程登录进入 mysql,并且只能看到被授权的数据库,增删改功能可以使用。

    76520

    Docker 下 Nginx 端口转发至 Mysql 服务

    由于我的 Nginx 和 Mysql 都是基于容器运行的,对于外网只暴露了 80 和 443 端口用于 web 服务,由于后续开发的网址导航功能使用 Serverless ,同时需要访问 Mysql 服务...Mysql 用户配置 添加一个 Mysql 新用户来授权远程访问,同时赋予该用户仅有的增删改功能。...# 添加用户,并设置为远程可连接,同时设置密码 CREATE USER 'noxxxx'@'%' IDENTIFIED BY '12345'; 含义: 主机名称:指定该用户在哪个主机上可以登陆,如果是本地用户可用...表名 TO 'noxxxx'@'%'; GRANT ALL ON *.* TO 'noxxxx'@'%'; GRANT ALL ON 数据库名.* TO 'noxxxx'@'%'; 使用第三条命令即可对某个数据库下的所有表赋予全部权限...生效权限配置 flush privileges 查看是否生效 phpmyadmin 里: Sequel Pro 下,我们可以远程登录进入 mysql,并且只能看到被授权的数据库,增删改功能可以使用。

    1.2K30

    线上问题定位--OOM

    服务器上部署了Java服务,出现了OutOfMemoryError,问题应该如何定位?...解决思路 Java服务OOM,最常见的原因为: 有可能是内存分配确实过小,而正常业务使用了大量内存 某一个对象被频繁申请,却没有释放,内存不断泄漏,导致内存耗尽 某一个资源被频繁申请,系统资源耗尽,例如...:不断创建线程,不断发起网络连接 更具体的,可以使用以下的一些工具逐一排。...jmap -heap 2820 如上图,可以查看新生代,老生代堆内存的分配大小以及使用情况,看是否本身分配过小。...上图中内存最多的对象是byte,共占用内存71M,值得关注,后续再MAT中再次分析。 四、确认是否是资源耗尽 查看进程创建的线程数,如果资源耗尽,也可能出现OOM。

    1.2K31

    linux查看端口号占用命令-netstat

    查看端口号 netstat 如果发现某个端口被占用后,可以用命令查看,该端口到底是被哪个进程所占用。命令如下: netstat -pan | grep 5623 #其中5623位端口号 如图: ?...发现5623的端口,被28425的进程id所占用,继续进一步跟踪,到底是哪个程序所占用了。 通过进程id查找程序–ps 直接通过:ps -aux | grep pid 查看,进程程序名称, ?...通过netstat查找端口占用的pid,再通过pid进一步的查找程序名称,能够确认目前冲突的端口是哪个程序已经占用了,我们是重新启用换一个端口号,还是结束已经占用的端口号所用的程序,清空被占用的端口号。...FIB; -g或--groups:显示多重广播功能群组组员名单; -h或--help:在线帮助; -i或--interfaces:显示网络界面信息表单; -l或--listening:显示监控中的服务器的...Socket; -M或--masquerade:显示伪装的网络连线; -n或--numeric:直接使用ip地址,而不通过域名服务器; -N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称

    19.4K20

    zabbix监控常见系统报错

    server:system.swap.size[,pfree].last(0)}<10 告警等级:警告 2)Lack of available memory on server {HOST.NAME} 主机服务器上缺少可用的内存...grep 'processor'|wc -l 查看cpu核数 top 查看cpu总体消耗,包括分项消耗如user,system,idle,nice等消耗 sar -u 3(间隔时间) 查看cpu总体消耗比...查看系统内核日志 磁盘瓶颈 iostat -x -k -d 1 详细列出磁盘的读写情况 当看到I/O等待时间所占CPU时间的比重很高的时候,首先要检查的就是机器是否正在大量使用交换空间,同时关注iowait比...IO 一般先通过iostat查看是否存在io瓶颈,再定位哪个进程在大量读取IO df -hl...查看磁盘剩余空间 du -sh 查看磁盘使用了多少空间 应用瓶颈 ps -ef | grep

    1.9K20

    linux查看端口号占用命令-netstat

    1 查看端口号 netstat 如果发现某个端口被占用后,可以用命令查看,该端口到底是被哪个进程所占用。...命令如下: netstat -pan | grep 5623 #其中5623位端口号 1 2 如图: ? 发现5623的端口,被28425的进程id所占用,继续进一步跟踪,到底是哪个程序所占用了。...通过netstat查找端口占用的pid,再通过pid进一步的查找程序名称,能够确认目前冲突的端口是哪个程序已经占用了,我们是重新启用换一个端口号,还是结束已经占用的端口号所用的程序,清空被占用的端口号。...FIB; -g或--groups:显示多重广播功能群组组员名单; -h或--help:在线帮助; -i或--interfaces:显示网络界面信息表单; -l或--listening:显示监控中的服务器的...Socket; -M或--masquerade:显示伪装的网络连线; -n或--numeric:直接使用ip地址,而不通过域名服务器; -N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称

    6.4K20

    linux查看端口号占用命令-netstat

    查看端口号 netstat 如果发现某个端口被占用后,可以用命令查看,该端口到底是被哪个进程所占用。...命令如下: netstat -pan | grep 5623 #其中5623位端口号 如图: 发现5623的端口,被28425的进程id所占用,继续进一步跟踪,到底是哪个程序所占用了。...通过进程id查找程序–ps 直接通过:ps -aux | grep pid 查看,进程程序名称, 通过netstat查找端口占用的pid,再通过pid进一步的查找程序名称,能够确认目前冲突的端口是哪个程序已经占用了...,我们是重新启用换一个端口号,还是结束已经占用的端口号所用的程序,清空被占用的端口号。...FIB; -g或--groups:显示多重广播功能群组组员名单; -h或--help:在线帮助; -i或--interfaces:显示网络界面信息表单; -l或--listening:显示监控中的服务器的

    17.9K60
    领券