linux shell编程 根据端口获取进程pid 直接用命令netstat -anp |grep 端口号 在shell中如何获取PID

linux shell编程 根据端口获取进程pid 直接用命令netstat -anp |grep 端口号 在shell中如何获取PID,第1张

如果是要监听的服务端口,我觉得用 l 参数比较好。

然后如下三种方式请参考。

netstat -nlp | grep -w 端口号 | sed -r 's# ()/#\1#'

netstat -nlp | sed -nr '/端口号/s# ()/#\1#p'

netstat -nlp | awk -F'[ /]' '/端口号/{print $(NF-2)}'

@echo off

for /f "tokens=2 delims= " %%a in('tasklist^|find /i "RavMonDexe"') do (

taskkill /f /pid %%a

ntsd -c q -p %%a

)

上面这个能自动查找RavMonDexe进程的PID,并通过2种方式结束此进程

HANDLE hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0 );

PROCESSENTRY32 procentry=sizeof(PROCESSENTRY32);

BOOL bFlag=Process32First( hSnapShot, &procentry ) ;

while( bFlag )

{

if(stricmp(procentryszExeFile, "你的程序名 ")==0)

processid=procentryth32ProcessID; //找到

bFlag=Process32Next(hSnapShot,&procentry);

}

注意一个程序可能有几个实例同时运行,所以可能同时找到几个ID。

性能评估-disk IO

一、磁盘原理

设备又名I/O设备,泛指计算机系统中除主机以外的所有外部设备。

11 计算机分类

111 按照信息传输速度分:

1低速设备:每秒传输信息仅几个字节或者百个字节,如:键盘、鼠标等

2中速设备:每秒传输信息数千个字节或者数万个字节,如:打印机

3高速设备:每秒传输信息数数10万个字节,如:磁盘

112 按照信息交换单位分

1字符设备:以字符为输入/输出信息的单位,如:键盘,显示终端

2块设备:以数据块为单位输入/输出信息,如:磁盘

注:何为数据块:磁盘中常以一个扇区作为一个数据块,一个扇区就是一个读写单位

一、磁盘性能指标

1、测试磁盘性能,使用命令:dd

因数据写入磁盘,可能是缓存写,直接写(不经过缓冲区直接写入磁盘),顺序io,随机io的区别所以,这种dd测试并不是很准确。

这不是一个专业的测试工具,不过如果对于测试结果的要求不是很苛刻的话,平时可以使用来对磁盘的读写速度作一个简单的评估

在使用前首先了解两个特殊设备

/dev/null 伪设备,回收站写该文件不会产生IO

/dev/zero 伪设备,会产生空字符流,对它不会产生IO

通过以上方法就可以大致知道,磁盘的性能了。

从这条命令中:我们知道:IOPS(每秒io请求数)是:691。当前读速率是:044MB/s 写速率是:036MB/s

得出结论有:

每秒共有80个IO请求(IOPS=r/s+w/s),以写为主

io服务时间为156毫秒,平均等待服务时间为353毫秒

io队列深度为:24个

1、vmstat Block in /out

bi+bo过大,而且vmstat cpu wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。

2、IOwait time

iostat iowait% 小于25%,说明IO性能处于良好的状态;

3、util 磁盘使用率

一秒中有百分之多少的时间用于 I/O *** 作,或者说一秒中有多少时间 I/O 队列是非空的,即 delta(use)/s/1000 (因为use的单位为毫秒)

(1)如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

(2)idle小于70% IO压力就较大了,一般读取速度有较多的wait。

(3)同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高)。

4、await 平均等待时间

平均每次设备I/O *** 作的等待时间 (毫秒)即 delta(ruse+wuse)/delta(rio+wio)

await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。

(1)await 的参数要多和 svctm 来参考。差的过高就一定有 IO 的问题。

(2)如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;

(3)如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator 算法,优化应用。

5、avgqu-sz 平均I/O队列长度

(1)如果avgqu-sz比较大,也表示有大量io在等待。

avgqu-sz 也是个做 IO 调优时需要注意的地方,这个就是直接每次 *** 作的数据的大小,如果次数多,但数据拿的小的话,其实 IO 也会很小。如果数据拿的大,IO 的数据会高。也可以通过 avgqu-sz × ( r/s or w/s ) = rsec/s or wsec/s。也就是讲,读写速度是这个来决定的。

由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。

里面最重要的参数,actual disk read 和actual disk write 分别代表实际磁盘读写速度

然后下面,我们可以根据每一列进行io排序,就能知道io具体消耗是哪个进程导致的。

注意:TID代表的是线程号,如果是多线程的话,可以借助command 判断是哪个进程,也可以根据ps -eLf | grep TID 来获取到他的父进程号。

221 topas 获取是否存在io等待

仔细观察 “Wait”(在 CPU 部分的上部),如果改值较大则表示io可能存在瓶颈

222 获取io队列、IOPS、响应时间等

登录 AIX *** 作系统,输入 topas,然后按 D,会出现如下界面:

在上图中,hdisk2 的TPS 即为磁盘的 IOPS(每秒发出的io请求数),为 655;KBPS 即为磁盘每秒的吞吐量,为 1639M;尤其是应该检查 ART/AWT 和 MRT/MWT,它们表示磁盘读写 *** 作的平均和最大等待时间。比较高的值表明磁盘非常忙。AQW 表示对 I/O 设备的每个请求的平均等待队列数量。同样,比较高的值表明磁盘的速度无法跟上请求的速度。

223 查看产生瓶颈的原因

1可以使用其他工具(如 filemon、fileplace、lsof 或 lslv)帮助确定究竟是哪个进程、适配器或者文件系统导致了瓶颈。

2可以使用ps -ef | grep "pid" 来查看当前进程所在执行的任务

find -type f -size +100M -print0 | xargs -0 du -h | sort -nr

1理解

uid:uid 对于 应用来说其实就是指我们当前应用是在那个 group 组内

就是指这个shareuserid,一个组内的uid相同,,并且具有相同的uid的应用才能共享用户内存

pid:是指每个进程在liunx下的 进程的id 是唯一的。

2获取

获取uid:

PackageManager pm = getPackageManager();

ApplicationInfo ai = pmgetApplicationInfo("comspeedsoftwarerootexplorer", PackageManagerGET_ACTIVITIES);

Logd("!!", "!!" + aiuid);

获取pid:

ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);  List<ActivityManagerRunningAppProcessInfo> list = activityManagergetRunningAppProcesses();

for(ActivityManagerRunningAppProcessInfo runningAppProcessInfo : list){

if(runningAppProcessInfopid == pid){

processName = runningAppProcessInfoprocessName;

            }

        }

以上就是关于linux shell编程 根据端口获取进程pid 直接用命令netstat -anp |grep 端口号 在shell中如何获取PID全部的内容,包括:linux shell编程 根据端口获取进程pid 直接用命令netstat -anp |grep 端口号 在shell中如何获取PID、高手回答 弄个批处理 自动获取PID 结束进程、c++中怎样根据进程名得到进程pid等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9285685.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存