① linux查看线程占用cpu
top命令是最方便的,想看CPU列的话直接按字母 c 就会以cpu的使用高低来排列。 其实就每一列的第一个字母,如果想按cpu排列就按c ,按内存排列就按m。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND top [-] [d delay] [q] [c] [s] [S] [i] d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。 q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。 S 指定累计模式。 s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。 i 使top不显示任何闲置或者僵死进程。 c 显示整个命令行而不只是显示命令名但是无法显示每个线程的 cpu 利用率情况, 这时就可能出现这种情况,总的 cpu 利用率中 user 或 system 很高,但是用进程的 cpu 占用率进行排序时,没有进程的 user 或 system 与之对应。 可以用下面的命令将 cpu 占用率高的线程找出来: 这个命令首先指定参数'H',显示线程相关的信息,格式输出中包含:user,pid,ppid,tid,time,%cpu,cmd,然后再用%cpu字段进行排序。这样就可以找到占用处理器的线程了。
② 问题一、在linux系统中,如何查看apache某一时刻运行线程数(命令)和 内存的使用情况;
你所说的 必须要有一个脚本监控apache 和mysql进程 定期轮询 并把结果输出到文件中才能查看任一时刻的线程数和内存使用情况
ps ax | grep httpd -c
ps ax | grep mysqld -c
③ Linux内存使用情况查看命令
linux内存使用情况查看命令查看内存:free
www.dnjsb.com
total
used
free
shared
buffers
cachedMem:
8126976
7609376
517600
0
447392
1268632-/+
buffers/cache:
5893352
2233624Swap:
2928636
572388
2356248top查看进程,shift+f可以设置排序顺序,如果按照RES排序,可以保证清晰的查看到系统占用内存较大的线程。
www.dnjsb.com
ps:查看进程情况,
一般使用ps
-ef,
ps
-aux-A
:所有的
process
均显示出来,与
-e
具有同样的效用;-a
:不与
terminal
有关的所有
process
;-u
:有效使用者
(effective
user)
相关的
process
;x
:通常与
a
这个参数一起使用,可列出较完整信息。输出格式规划:l
:较长、较详细的将该
PID
的的信息列出;j
:工作的格式
(jobs
format)-f
:做一个更为完整的输出。红色为父进程idguest
12032
11991
0
21:32
pts/0
00:00:00
grep
httpdadmin
14969
26047
0
09:21
?
00:00:01
/usr/alibaba/httpd/bin/httpd
-d
/home/admin/run/deployadmin
20417
26047
0
09:36
?
00:00:01
/usr/alibaba/httpd/bin/httpd
-d
/home/admin/run/deployroot
26047
1
0
Nov19
?
00:00:00
/usr/alibaba/httpd/bin/httpd
-d
/home/admin/run/deploy通过pstree
-p
26047,
可以看到所有的子进程的线程!查看swap使用情况:#!/bin/bashPID=${1:-[1-9]*}total_swap=0GetSwap
()
{
pid=$1
cmdline=$(cat
/proc/$pid/cmdline
2>/dev/null|tr
''
'
')
pid_swap=$(awk
'BEGIN{total=0}/Swap/{total+=$2}END{print
total}'
/proc/$pid/smaps
2>/dev/null)
if
[
$pid_swap
!=
''
]
&&
[
$pid_swap
-gt
0
];
then
echo
PID=$pid
–
Swap
used:
$pid_swap
Kb
–
($cmdline)
fi}cd
/procfor
pid
in
$PID;
do
GetSwap
$pid
let
total_swap+=$pid_swapdoneecho
Total
swap:
$total_swap
Kb
④ 在linux 下怎么查看服务器的cpu和内存的硬件信息
以Linux centos 7服务器为例,查看服务器的cpu和内存的硬件信息方法如下:
1、鼠标右键点击桌面,选择“打开终端”,如下图所示。
⑤ 使用Linux该怎么查看进程线程
linux怎么查看进程线程?我们一起来了解一下吧。
1、打开linux系统,在linux的桌面的空白处右击。
2、在弹出的下拉选项里,点击打开终端。
3、使用命令ps-T-p+进程ID可以查看指定线程。
4、使用top-H命令可以查看所有线程。
⑥ linux 怎么查看一个进程的所有线程
1、top -H
手册中说:-H : Threads toggle
加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程版。
2、ps xH
手册中说:H Show threads as if they were processes
这样可以查权看所有存在的线程。
3、ps -mp <PID>
手册中说:m Show threads after processes
这样可以查看一个进程起的线程数。
更多详尽的解释还可以man ps,man top。
⑦ linux查看什么线程占用内存
:14;m
7: 4
4;cpuinfo |grep "cpuinfo |grep "cache;etc/.982
5.3:45 UTC 2014 x86_64 x86_64 x86_64 GNU/.20,核心数)
[root@MysqlCluster01 ~]# cat /、当前操作系统内核信息
[root@MysqlCluster01 ~]# uname -a
Linux MysqlCluster01 2;|uniq
cpu cores : 1761 6102
Swap;issue
CentOS release 6、查看物理CPU的个数
[root@MysqlCluster01 ~]# cat /proc/、查看逻辑CPU的个数
[root@MysqlCluster01 ~]# cat /.el6;cpuinfo |grep ".4 (Final)
Kernel \proc/.32-431;physical id"、查看CPU的主频
[root@MysqlCluster01 ~]# cat /proc/.6;cpuinfo |grep MHz|uniq
cpu MHz : 7863 2738 5125 0 141 835
-/、内存使用情况
[root@MysqlCluster01 ~]# free -m
total used free shared buffers cached
Mem;|sort |uniq|wc -l
1
2.x86_64 #1 SMP Thu Jun 19 21、查看CPU是几核(即;proc/、当前操作系统发行版信息
[root@MysqlCluster01 ~]# cat /cores"|wc -l
4
3: 2499;Linux
6;r on an \+ buffers/processor"
⑧ Linux最大线程数限制及当前线程数查询
查看系统允许的最大线程数:
Linux无法直接控制单个进程可拥有的线程数,但有参考公式max = VM/stack_size,默认stack为8k,可通过降低stack大小或增加虚拟内存来调大每个进程可拥有的最大线程数;
对于支持多线程的程序如Java,有可能会遇到一个进程无法创建更多线程的情形,其原因多种多样,而OS端可能由此参数造成.
查看系统允许的最大进程数:
ulimit -a 显示当前所有的资源限制
root用户下执行 ulimit -a 然后查看 max user processes 这个值通常是系统最大线程数的一半:/proc/sys/kernel/threads-max/2
普通用户下 ulimit -u 出现的max user processes的值 默认是 /etc/security/limits.d/20-nproc.conf(centos6 是90-nproc.conf) 文件中的
普通用户默认是1024
打开/etc/security/limits.conf (部分的系统是在/etc/security/limits.d/90-nproc.conf)
设置限制数量,第一列表示用户,* 表示所有用户
soft nproc :单个用户可用的最大进程数量(超过会警告);
hard nproc:单个用户可用的最大进程数量(超过会报错);
soft nofile :可打开的文件描述符的最大数(超过会警告);
hard nofile :可打开的文件描述符的最大数(超过会报错);
重启后生效
reboot
查询当前某程序的线程数
pstree -p 进程号 | wc -l
管道符号"|"左边命令的输出作为右边命令的输入
直接修改/etc/security/limits.conf 文件中的 * soft nproc 65535 值后,普通用户最大进程数无法达到65535 ,因为用户的max user processes的值,最后是受全局的kernel.pid_max的值限制。也就是说kernel.pid_max=1024 ,那么你用户的max user processes的值是127426 ,用户能打开的最大进程数还是1024。
永久修改系统最高进程数的方法
在/etc/sysctl.conf中添加kernel.pid_max = 65535
vim /etc/sysctl.conf
kernel.pid_max = 65535
或者:
echo "kernel.pid_max = 65535" >> /etc/sysctl.conf
然后重启机器。
临时修改的方法:
echo 65535 > /proc/sys/kernel/pid_max
所以以上都操作完成后,才算是正确修改了max user processes 的值