Linux下如何查看高CPU占用率线程 专题
Java 系统性能分析 命令
1. cpu分析
top , pidstat(sysstat)
pid -p PID -t 1 10
vmstat 1 CPU上下文切换、运行队列、利用率
ps Hh -eo tid
pcpu 查看具体线程的CPU消耗
sar 来查看一定世界范围内以及历史的cpu消耗情况信息
查看java线程信息
jstack pid | grep 'nid=0x9999'
2. cs sy消耗比较高
上下文切换性能偏高, jstack -l pid, 查看on object monitor
3. io消耗
pidstat -d -t -p pid 1 100
iostat
4. 网络io消耗
cat /proc/interruptes
sar -n FULL 1 2
tcpdump
http://www.cnblogs.com/lidabo/p/4738113.html
近期java应用,CPU使用率一直很高,经常达到100%,通过以下步骤完美解决,分享一下。
方法一:
转载:http://www.linuxhot.com/java-cpu-used-high.html
1.jps 获取Java进程的PID。
2.jstack pid >> java.txt 导出CPU占用高进程的线程栈。
3.top -H -p PID 查看对应进程的哪个线程占用CPU过高。
4.echo “obase=16; PID” | bc 将线程的PID转换为16进制,大写转换为小写。
5.在第二步导出的Java.txt中查找转换成为16进制的线程PID。找到对应的线程栈。
6.分析负载高的线程栈都是什么业务操作。优化程序并处理问题。
方法二:
1.使用top 定位到占用CPU高的进程PID
top
通过ps aux | grep PID命令
2.获取线程信息,并找到占用CPU高的线程
ps -mp pid -o THREAD,tid,time | sort -rn
譬如:
ps -mp -o THREAD,tid,time | sort -rn

3.将需要的线程ID转换为16进制格式
printf "%x\n" tid
4.打印线程的堆栈信息
jstack pid |grep tid -A 30
http://www.cnblogs.com/pangguoping/p/5715848.html
c233 plugins # ps -elf|head -1
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 28149 4204 0 80 0 - 16283 poll_s Jul05 ? 00:00:00 sshd: root
73
PROCESS FLAGS
The sum of these values is displayed in the "F" column, which is provided by the flags output specifier.
1 forked but didn't exec
4 used super-user privileges
(1)S列.
D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being traced.
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z Defunct ("zombie") process, terminated but not reaped by its parent.
(3)C列.C pcpu cpu utilization
(4)
command COMMAND see args. (alias args, cmd).
sz SZ size in physical pages of the core image of the process. This
includes text, data, and stack space. Device mappings are currently
excluded; this is subject to change. See vsz and rss.
(5)WCHAN列.
wchan WCHAN name of the kernel function in which the process is sleeping,
a "-" if the process is running, or a "*" if the process is
multi-threaded and ps is not displaying threads.
二、统计当前运行的线程总数."-L"
c233 plugins # ps -eLf|grep -v $$|wc -l //-L Show threads, possibly with LWP and NLWP columns
646
c233 plugins # ps -eLf|grep -v $$|tail
UID PID PPID LWP C NLWP STIME TTY TIME CMD
root 23678 1 688 0 36 Jul01 ? 00:00:06 /usr/sbin/nscd
root 23678 1 689 0 36 Jul01 ? 00:00:06 /usr/sbin/nscd
root 23678 1 690 0 36 Jul01 ? 00:00:06 /usr/sbin/nscd
root 23678 1 691 0 36 Jul01 ? 00:00:06 /usr/sbin/nscd
root 23678 1 692 0 36 Jul01 ? 00:00:06 /usr/sbin/nscd
root 23678 1 693 0 36 Jul01 ? 00:00:06 /usr/sbin/nscd
root 23678 1 694 0 36 Jul01 ? 00:00:06 /usr/sbin/nscd
root 23678 1 695 0 36 Jul01 ? 00:00:06 /usr/sbin/nscd
root 23678 1 696 0 36 Jul01 ? 00:00:06 /usr/sbin/nscd
root 28149 4204 28149 0 1 Jul05 ? 00:00:00 sshd: root
NLWP (number of threads)
LWP (thread ID)
c233 plugins # ps -ef|grep nscd
root 23678 1 0 Jun30 ? 00:15:32 /usr/sbin/nscd
三、Linux下查看某个进程的线程数量.
1.根据进程号进行查询:
# pstree -p 进程号 //-p pid
# top -Hp 进程号 //-H : Threads toggle
2.根据进程名字进行查询:
# pstree -p `ps -e | grep sshd | awk '{print $1}'`
# pstree -p `ps -e | grep sshd | awk '{print $1}'` | wc -l
http://www.cnblogs.com/itcomputer/p/4652140.html
003_监测域名证书过期时间
由于因为线上证书过期,出过比较大的事故,所以就有了如下的监测证书过期的脚本
#!/bin/sh
### SSL Certificate Expire Day Check Script ###
if [ "$1" = '' ];then
echo "Need URL."
exit
;fi
TARGET_URL=$
EXP_DAY=`openssl s_client -connect ${TARGET_URL}: < /dev/null > /dev/null | openssl x509 -text > /dev/null | grep "Not After" | sed -e 's/^ *//g' | cut -d " " -f ,,,,`
NOW_TIME=`date +%s`
EXP_TIME=`date +%s -d "${EXP_DAY}"`
if [ "${EXP_DAY}" != '' -a ${NOW_TIME} -lt ${EXP_TIME} ]; then
echo $(((EXP_TIME-NOW_TIME)/(**)))
else
echo "ERROR"
exit ;
fi
http://www.cnblogs.com/itcomputer/p/7192734.html
Linux通过PID查看进程完整信息
说明
通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。
先通过top查看进程PID
这时,我们需要通过以下的方法来查看进程的详细信息:
Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。
ll /proc/PID
解释
cwd符号链接的是进程运行目录;
exe符号连接就是执行程序的绝对路径;
cmdline就是程序运行时输入的命令行命令;
environ记录了进程运行时的环境变量;
fd目录下是进程打开或使用的文件的符号连接。
https://www.jianshu.com/p/383b998b77d0
Linux下如何查看高CPU占用率线程 专题的更多相关文章
- Linux下如何查看高CPU占用率线程
转于:http://www.cnblogs.com/lidabo/p/4738113.html 目录(?)[-] proc文件系统 proccpuinfo文件 procstat文件 procpidst ...
- Linux下如何查看高CPU占用率线程 LINUX CPU利用率计算
目录(?)[-] proc文件系统 proccpuinfo文件 procstat文件 procpidstat文件 procpidtasktidstat文件 系统中有关进程cpu使用率的常用命令 ps ...
- (笔记)Linux下如何查看高CPU占用率线程
在 Linux 下 top 工具可以显示 cpu 的平均利用率(user,nice,system,idle,iowait,irq,softirq,etc.),可以显示每个 cpu 的利用率.但是无法显 ...
- Linux下如何查看高CPU占用率线程 LINUX CPU利用率计算(转)
Java 系统性能分析 命令 1. cpu分析 top , pidstat(sysstat) pid -p PID -t 1 10 vmstat 1 CPU上下文切换.运行队列.利用率 ps Hh - ...
- Linux下分析某个进程CPU占用率高的原因
Linux下分析某个进程CPU占用率高的原因 通过top命令找出消耗资源高的线程id,利用strace命令查看该线程所有系统调用 1.top 查到占用cpu高的进程pid 2.查看该pid的线程 ...
- linux top命令中各cpu占用率含义
linux top命令中各cpu占用率含义 [尊重原创文章摘自:http://www.iteye.com/topic/1137848]0.3% us 用户空间占用CPU百分比 1.0% sy 内核空间 ...
- (转)linux top命令中各cpu占用率含义及案例分析
原文:https://blog.csdn.net/ydyang1126/article/details/72820349 linux top命令中各cpu占用率含义 0 性能监控介绍 1 确定应用类型 ...
- Visual Studio 2013 Ultimate因为CodeLens功能导致Microsoft.Alm.Shared.Remoting.RemoteContainer.dll高CPU占用率的折中解决方案
1.为什么Microsoft.Alm.Shared.Remoting.RemoteContainer.dll的CPU占用率以及内存使用率会那么高? 在Visual Studio 2013 Ultima ...
- [项目机会]citrix 虚拟桌面对于java等高CPU占用率如何解决
citrix 虚拟桌面对于java等高CPU占用率如何解决 问题1:java等客户端对于虚拟桌面cpu影响较大,但是有些用户的确需要使用java支持的程序,是否可以通过其他途径来解决? 问题2:对于其 ...
随机推荐
- boost1.59编译安装(可以完全安装,也可定制安装--buildtype=complete,link=static)
1.下载: 网址:http://sourceforge.net/projects/boost/files/boost/1.59.0/ 选择:boost_1_59_0.7z或者boost_1_59_0. ...
- Shell脚本实现在Linux系统中自动安装JDK
A:本脚本运行的机器,Linux B:待安装JDK的机器, Linux 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装jdk的机器B上,然后就可以在A上运行本脚本: 复制代码 代码如下: $ ...
- 怎样获取android手机联系人并按字母展示(三)
假设获取contact的头像信息并展示: 怎样依据photoId来获取bitmap: public static Bitmap getContactPhoto(Context context, lon ...
- Arcgis api for javascript学习笔记(4.6版本) - 二维MapView中的FeatureLayer显示标注
4.6版本api的FeatureLayer中有提供 labelsVisible 和 labelingInfo 两个属性,设置这两个属性可以实现显示将属性中某个字段作为标注.但是这两个属性只针对三维Sc ...
- WPF 设置了阴影效果后,Y轴位置会有变化的问题
原文:WPF 设置了阴影效果后,Y轴位置会有变化的问题 背景 最近遇到一个动画执行时,文本位置变化的问题.如下图: 如果你仔细看的话,当星星变小时,文本往下降了几个像素. 貌似有点莫名其妙,因为控件之 ...
- Android 4.0新增Space及GridLayout初谈
Android 4.0的SDK已经发布,在众多的新增特性中,其中对开发者来说比较重要的特性之一,是新增的两种界面布局方式:Space和Gridlayout,它们跟以往Android版本的sdk有什么不 ...
- 使用哈希加盐法来为密码加密(补充JAVA的实现)
使用哈希加盐法来为密码加密 转自:http://www.cnblogs.com/jfzhu/p/4023439.html 转载请注明出处 (一)为什么要用哈希函数来加密密码 如果你需要保存密码(比 ...
- DDD实战6 WebAPI
1.在Products解决方案文件夹下面新建一个项目 .net Core/Asp.net Core Web应用程序 取名Product.WebApi/选择Web Api core2.0版本 不进行身 ...
- android网络开源框架volley(五岁以下儿童)——volley一些细节
最近的一次volley整理出下一个.我以前没有再次遭遇了一些小问题,在该记录: 1.HttpUrlConnection DELETE 信息不能加入body问题:java.net.ProtocolExc ...
- uow Unit of work
通过学习圣杰的文章 UnitOfWork知多少 知道uow其实就是为了解决 一次提交所有更改 1.ef本身可以具备这样一个功能,但是我们在写仓储的实现的时候 经常会直接显式saveChanges了 ...