我们常常会在新开的服搭建一个游戏的server,有时候要进行压力測试,那么怎样来看呢,一般我们会通过top命令查看各个进程的cpu和内存占用情况,获得到了我们的进程id,然后我们或许会通过pstack命令查看里边的各个线程id以及相应的线程如今正在做什么事情,分析多组数据就能够获得哪些线程里有慢操作影响了server的性能,从而得到解决方式. 比方这种以组数据: [root@AY130816144542124256Z bin]# pstack 30222 Thread 9 (Thread 0x7…
#!/bin/bash [ $# -ne ] && exit jstack $ >/tmp/jstack.log -o THREAD,tid,time|sort -k2nr| sed -n '2,15p' |awk '{print$2"_"$(NF-1)}'`;do cpu=`echo $cpu_tid | cut -d_ -f1` tid=`echo $cpu_tid | cut -d_ -f2` xtid=`printf "%x\n" $t…
以root用户执行以下命令,以PID 5423举例: 1,根据top命令,找到占用CPU高的进程,找到PID  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND5423 root      20   0  8892 1284  856 R    0  0.0   0:00.04 top 2,找到该进程后,执行如下命令获取线程列表,并按照CPU占用高的线程排序:[root@xxxx]# ps -mp 5423 -o…
1.使用top命令找出占用cpu最高的JAVA进程pid号 2. 找出占用cpu最高的线程: top -Hp  -n 1 3. 打印占CPU最高JAVA进程pid的堆栈信息 jstack pid > /tmp/stacktrace.log 4. 把占CPU最高线程号码换算成16进制到stacktrace.log中寻找相应线程16进制值找到线程代码.…
pthread_kill: 别被名字吓到,pthread_kill可不是kill,而是向线程发送signal.还记得signal吗,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数. int pthread_kill(pthread_t thread, int sig); 向指定ID的线程发送sig信号,如果线程代码内不做处理,则按照信号默认的行为影响整个进程,也就是说,如果你给一个线程发送了SIGQUIT,但线程却没有实现signal处理函数…
列出所有进程 #include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h> #include <linux/sched.h> #include <linux/list.h> static __init int print_pid(void) { struct task_struct *task,*p; struct list_head *pos; ; pri…
可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等.退出 top 的命令为 q (在 top 运行中敲 q 键一次).top详解如下:1.作用top命令用来显示执行中的程序进程,使用权限是所有用户.2.格式top [-] [d delay] [q] [c] [S] [s] [n]3.主要参数 d:指定更新的间隔,以秒计算.q:没有任何延迟的更新.如果使用者有超级用户,则…
1.问题由来 近期发现堡垒机环境有如下问题,systemd占用大量cpu: 原文链接:https://www.cnblogs.com/yaohong/p/16046670.html 2.问题定位 2.1.什么是systemd 咋们可以先从systemd这个进程入手分析这个问题:根据文档<systemd (简体中文)>文档,我们可知如下图信息:作用: systemd 会给每个用户生成一个 systemd 实例,用户可以在这个实例下管理服务,启动.停止.启用以及禁用他们自己的单元. 工作原理: &…
查使用内存最多的5个进程:ps aux | head -1 && ps aux | grep -v USER | sort -nr -k 4 | head -5 查使用CPU最多的5个进程: ps aux | head -1 && ps aux | grep -v USER | sort -nr -k 3 | head -5 查询僵尸进程ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'ps -ef | grep defunct | g…
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;     同一个进程中的多个线程之间可以并发执行. 进程在执行过程中拥有独立的内存单元,而该进程的多个线程共享…