系统监控命令
2016-02-22 22:38
330 查看
top命令
top -c: 在top命令显示界面显示出完整的进程名和启动参数
top -H: 在top命令中显示所有的线程状
top -p pid: 这个pid可以是进程pid,也可以是线程pid(进程的pid就是该进程主线程的pid), 该命令实际显示的是该线程所属进程的状态.
top -H -p pid: pid是一个线程号, 该命令列出该线程所属进程的所有线程的状态
gstack 参看进程堆栈
gstack pid:
1. pid是进程号时(主线程号),显示进程当前所有线程的调用堆栈
2. pid是线程号时(非主线程号), 显示当前线程的调用堆栈
gstack是实时的, 某个时刻的堆栈显示只是这个时刻的堆栈调用情况
rdtsc CPU clock计数
typedef struct CPUUsage
{
double
m_cycles; /* number of cycles */
} CPUUsage;
static inline unsigned long rdtsc(void)
{
unsigned int hi = 0;
unsigned int lo = 0;
asm volatile("rdtsc" : "=a"(lo), "=d"(hi));
return ((unsigned long)lo ) | (((unsigned long)hi) << 32);
}
static void
CPUUsageGetCurrent (CPUUsage *cur)
{
cur->m_cycles = rdtsc ();
}
static void
CPUUsageAccumDiff(CPUUsage *dst,
const CPUUsage *add,
const CPUUsage *sub)
{
dst->m_cycles += add->m_cycles - sub->m_cycles;
}
可以用于CPU计数, 一个时钟周期,CPU计数就加1, 通过计算两个点之间的CPU计数的差值, 就可以得出两个点之间的时间(计数差值/CPU频率).
问题:
1. 当CPU处于省电模式时, CPU频率可能跳变, 时间不准---- >解决方法: 关闭CPU省电,让CPU频率不变
2. 多核CPU时, 进程可能在不同CPU之间跳变, 如果CPU之间的时钟计数器不同步,计数差值会错误---->解决方法:
1):关闭CPU省电,同步CPU之间的计数(貌似很困难)
2):将进程与CPU绑定
top -c: 在top命令显示界面显示出完整的进程名和启动参数
top -H: 在top命令中显示所有的线程状
top -p pid: 这个pid可以是进程pid,也可以是线程pid(进程的pid就是该进程主线程的pid), 该命令实际显示的是该线程所属进程的状态.
top -H -p pid: pid是一个线程号, 该命令列出该线程所属进程的所有线程的状态
gstack 参看进程堆栈
gstack pid:
1. pid是进程号时(主线程号),显示进程当前所有线程的调用堆栈
2. pid是线程号时(非主线程号), 显示当前线程的调用堆栈
gstack是实时的, 某个时刻的堆栈显示只是这个时刻的堆栈调用情况
rdtsc CPU clock计数
typedef struct CPUUsage
{
double
m_cycles; /* number of cycles */
} CPUUsage;
static inline unsigned long rdtsc(void)
{
unsigned int hi = 0;
unsigned int lo = 0;
asm volatile("rdtsc" : "=a"(lo), "=d"(hi));
return ((unsigned long)lo ) | (((unsigned long)hi) << 32);
}
static void
CPUUsageGetCurrent (CPUUsage *cur)
{
cur->m_cycles = rdtsc ();
}
static void
CPUUsageAccumDiff(CPUUsage *dst,
const CPUUsage *add,
const CPUUsage *sub)
{
dst->m_cycles += add->m_cycles - sub->m_cycles;
}
可以用于CPU计数, 一个时钟周期,CPU计数就加1, 通过计算两个点之间的CPU计数的差值, 就可以得出两个点之间的时间(计数差值/CPU频率).
问题:
1. 当CPU处于省电模式时, CPU频率可能跳变, 时间不准---- >解决方法: 关闭CPU省电,让CPU频率不变
2. 多核CPU时, 进程可能在不同CPU之间跳变, 如果CPU之间的时钟计数器不同步,计数差值会错误---->解决方法:
1):关闭CPU省电,同步CPU之间的计数(貌似很困难)
2):将进程与CPU绑定
相关文章推荐
- LAMP架构搭建与优化(3.0-3.2)
- Linux 命令之查看和修改机器名称
- Deep Learning 深度学习 学习教程网站集锦
- Tomcat集群配置学习篇-----分布式应用
- 制作initrd(5):解剖Ubuntu安装盘
- Linux 环境变量
- Nginx/LVS/HAProxy负载均衡软件的优缺点详解
- OpenLayers中的图层(转载)
- 造轮子:网站服务架构
- OpenLayers介绍和第一个例子(转载)
- 【NanoPi2试用体验】编译系统的问题
- 【NanoPi2试用体验】nanopi远程监控
- [每日一学]apache camel简介
- Linux kamailio Sip服务器的编译与安装(Ubuntu14.04)
- eclipse web项目缺少tomcat lib的解决
- Linux下C语言字符串操作之分割字符串总结
- hadoop入门学习--WordCount
- 【三层架构】对于三层架构的认识和总结
- linux uart
- CentOS 没有root权限下Caffe 安装的小问题