Linux查看网络连接数
netstat命令
netstat -anp
a:表示显示所有选项
n:拒绝显示别名,尽可能的把一些别名转换成一个数字
p:建立相关连接的程序名也显示出来
第1列:协议类型
第4列:本地地址
第5列:远端地址
在网络编程中,我们都知道,去描述一个连接需要一个五原组:原IP,原端口,目的IP,目的端口和协议类型。
State:当前连接的状态(对TCP来说,有意义,UDP不涉及State)
PID/Program name:表示当前连接锁定的进程的进程id和进程名字
我们直接输入 -nap,打印的结果比较多,我们实际中可能需要搭配grep进行筛选。
例子1
查看8080端口是否被占用:
当前8080端口没有被进程占用
例子2
netstat还可以查看指定进程名字都有哪些连接
查看python进程对应的网络连接:
top命令
帮助我们查看一台主机上的进程相关信息:
第一部分是统计信息
第二部分是进程列表
第一部分:
第一行第二行:描述当前主机的运行复杂情况
我们看第一部分的load:表示系统负载 后面有3个数字,数字越大,当前系统越繁忙
负载的含义:当前系统的任务队列中队列的长度是多长
第三行:当前CPU的使用情况
第四行第五行:内存的使用情况
第四行的total:当前主机共有多少物理内存
free:当前哪些内存还没有被使用
used:已经使用了的内存
buff/cache:当前哪些内存被缓存使用了
第二部分:进程id,进程所属的用户,进程优先级,进程所占用的虚存,进程所占用的物理内存,共享内存。
我们注意一下RES,当主机上的进程所占用的实存比较多的时候,可能就会出现再去申请内存就容易失败的情况
top的用法:查看当前主机上哪些进程占用内存比较多
执行top后,按shift+m
此时的进程列表按照内存使用情况进行降序排序
top的用法:查看cpu占用情况最多的前几个进程:
shift+p
此时的进程列表按照cpu的内存使用情况进行降序排序
如果是一个多核cpu的主机,这里的cpu占用率可能会超过100%,有2个核最多可能会达到200%,以此类推。
top还可以查看进程里面包含的线程信息。
查看ip地址
ifconfig
为什么有多个ip?
因为我们当前主机上,可能同时存在多个网络接口
所以网络接口可能对应到一张网卡或者一张虚拟网卡上