84-100关于进程命令和其他命令的介绍

本文介绍了Linux系统中常用的系统进程信息相关命令,如psaux、top、kill等,以及文件查找、软链接、硬链接、打包压缩的方法。同时,文章还讲解了如何使用apt命令进行软件的安装和卸载。

84-100
系统进程信息相关命令
1、ps aux,process status 查看进程的详细状况
提示:
1)单独使用ps时,默认只会显示当前用户通过终端启动的应用程序
2)a:显示终端上的所有进程,包括其他用户的进程;u:显示进程的详细状态;x:显示没有在控制终端启用的进行(计算机内部运行的所有进程),所以查询时一般用ps au ,很少需要用到x。

2、top,动态显示运行中的进程并且排序,要退出top可以直接输入q

3、kill [-9] 进程代号,终止指定代号的进程,-9 表示强行终止。使用kill命令时,最好只终止由当前用户开启的进程,而不要终止root身份开启的进程,否则可能导致系统崩溃。

find命令查找文件
find [路径] -name " *.py" 查找指定路径下扩展名是 .py的文件,包括子目录
如果省略路径,表示在当前文件夹下查找,文件名一般会结合通配符一起使用。

软链接
ln -s 被链接的源文件 链接文件,建立文件的软连接,用通俗的方式讲类似于Windows下的快捷方式
提示:源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,链接仍然能够正常使用。

硬链接
在使用ln创建链接时,如果没有-s选项,会创建一个硬链接,而不是软链接
在这里插入图片描述
在Linux中,文件名和文件数据是分开存储的,如果将软链接对应的文件删除,则软链接就无法读取对应的文件数据,而硬链接可以理解成文件的另一个名字,所以即使删掉源文件也不会导致硬链接无法读取。在日常工作中,几乎不会建立文件的硬链接。

打包压缩
在不同的系统中,常用的打包压缩方式是不同的
windows 常用 rar
Mac 常用 zip
Linux 常用 tar.gz

tar是Linux中最常用的备份工具,此命令可以把一系列文件打包到一个大的文件中,也可以把一个打包的大文件恢复成一系列文件,tar命令只负责打包,不负责压缩,tar的命令格式如下
1、tar -cvf 打包文件.tar 被打包的文件/路径,打包文件
2、tar -xvf 打包文件.tar ,解包文件
c:生成档案文件,创建打包文件 x:解开档案文件
v:列出归档解档的详细过程,显示进度
f:指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后,其他选项顺序可以随意。

在Linux中最常见的压缩文件格式是xxx.tar.gz,是用gzip压缩tar打包后的文件格式。
在tar命令中有一个选项-z可以调用gzip,从而可以方便实现压缩和解压缩的功能
命令格式如下:
1、压缩文件:tar -zcvf 打包文件.tar.gz 被压缩的文件/路径…
2、解压缩文件:tar -zxvf 打包文件.tar.gz
3、解压到指定路径:tar -zxvf 打包文件.tar.gz -C 目标路径
提示:
-C:解压缩到指定目录,注意要解压缩的目录必须存在。

还有一种压缩文件格式是xxx.tar.bz2,是使用bzip2压缩tar包后的文件格式
在tar命令中有一个选项-j可以调用bzip2,从而可以方便实现压缩和解压缩的功能
命令格式如下:
1、压缩文件:tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径…
2、解压缩文件:tar -jxvf 打包文件.tar.bz2
同样也可以使用-C解压到指定目录。

通过apt安装/卸载软件
1、安装软件:sudo apt install 软件名
2、卸载软件:sudo apt remove 软件名
3、更新已安装的包:sudo apt upgrade

<think> 首先,用户的问题是:“我想查找测试网络协议栈100Mb性能的方法”,意思是“我想查找测试网络协议栈100Mb性能的方法”。用户指定了100Mb,所以我需要专注于这个速率。 从系统级指令中,我必须使用中文回答,并且回答结构要清晰,帮助用户逐步解决问题。还要确保真实性。 引用部分提供了关于DPDK技术、用户态协议栈内核网络协议栈性能测试的信息- 引用[1]:讨论了内核网络协议栈效率低的问题,以及如何用DPDK绕开内核实现高性能网络。 - 引用[2]:涉及用户态协议栈基于DPDK,包括安装配置,以及UDP/TCP应用。 - 引用[3]:给出了系统内核网络协议栈PPS(Packets Per Second)测试的例子,针对1Gb带宽。 用户的问题是关于测试100Mb性能的方法。引用[3]提到了1Gb的测试范围,我可以将其换算到100Mb。 关键点: - PPS(Packets Per Second)是衡量网络性能的指标。 - 在引用[3]中,1Gb带宽的PPS范围是87267到1597830 pps,取决于包大小。 - 包大小影响PPS:小包(如84字节)导致更高PPS,大包(如1538字节)导致更低PPS。 对于100Mb带宽: - 1Gb = 1000Mb(通常,网络带宽以1000为基数,但引用中用了1024,我应该保持一致)。 在引用[3]中,1Gb = 1024 Mb,但标准网络带宽通常以1000Mb/s为1Gb/s。引用中用了1024,所以我会跟随引用。 计算PPS: 公式:PPS = Bandwidth (bits per second) / (Packet Size (bits) + Overhead) 在引用[3]中,它给出了带宽除以包大小(包括帧头)的bits。 例如: - 最小包大小:84 bytes(包括帧头),即84 * 8 = 672 bits - 最大包大小:1538 bytes(包括帧头),即1538 * 8 = 12304 bits 对于1Gb/s = 1024 * 1024 * 1024 bits/s = 1073741824 bits/s PPS min = 1073741824 / 12304 ≈ 87267 pps PPS max = 1073741824 / 672 ≈ 1597830 pps 现在,对于100Mb带宽: 首先,100Mb = 100 * 1024 * 1024 bits/s? 引用中用了1024,所以: 100Mb = 100 * 1024 * 1024 = 104857600 bits/s? 不,Mb是兆位。 标准:1 Mb/s = 1,000,000 bits/s,但引用中用了二进制前缀。 引用[3]说:1Gb = 1024 Mb,然后1Gb = 1024 * 1024 * 1024 bits = 1073741824 bits 所以100Mb = 100 * (1024 * 1024) = 100 * 1048576 = 104857600 bits/s? 1024 * 1024 = 1,048,576 是Kb到bits的转换? 混乱。 澄清: - 1 Gb (gigabit) = 1024 Mb (megabit) 在二进制中,但网络带宽通常用十进制。 引用中:1Gb = 1024 Mb = 1024 * 1024 Kb = 1024 * 1024 * 1024 bytes? 不,它说 bytes,但带宽是 bits。 引用[3]: "1Gb = 1024 Mb = 1024 * 1024 Kb = 1024 * 1024 * 1024 bytes" — 这是错误的,因为Kb是千位,bytes是字节。 它说:"1Gb = 1024 Mb = 1024 * 1024 Kb = 1024 * 1024 * 1024 bytes" — 但1Gb是gigabits,所以1024 * 1024 * 1024 bytes 是8 * 1024^3 bits,不一致。 更好忽略错误,直接使用计算。 在PPS计算中,它给出:1Gbits/ 84 * 8 bits = 1Gbits/672 bits,所以bandwidth是1Gbits/s,包大小是672 bits for min size packet. 1Gbits/s = 1,000,000,000 bits/s 或 1,073,741,824 bits/s? 引用用了1024^3 = 1,073,741,824 bits/s. 对于100Mb/s,同样:100 * 1024 * 1024 = 104,857,600 bits/s? 1024 Mb/s * 1024 = 1,048,576 Kb/s,但Mb是兆位。 定义:1 Mb = 1,048,576 bits (二进制) 或 1,000,000 bits (十进制)。引用用了二进制。 在引用[3]中:1Gb = 1024 Mb, 1Mb = 1024 Kb, 1Kb = 1024 bits? 但通常Kb是千位。 它说:1Gb = 1024 Mb = 1024 * 1024 Kb = 1024 * 1024 * 1024 bytes — 但Kb应该是千位,bytes是字节,所以不一致。 实际数字:PPS for 1Gb: min 87267 pps for large packets, max 1597830 pps for small packets. 对于100Mb,比例是1/10,因为100Mb = 0.1Gb。 所以PPS min ≈ 8726.7 pps, PPS max ≈ 159783 pps. 更准确: Bandwidth 100Mb/s = 100 * 1024 * 1024 bits/s? 既然1Gb/s = 1024^3 bits/s = 1,073,741,824 bits/s, so 100Mb/s = 100 * 1,048,576 bits/s? 1Mb = 1024 Kb = 1024 * 1024 bits = 1,048,576 bits. 所以100Mb/s = 100 * 1,048,576 = 104,857,600 bits/s. 然后包大小: - Min packet size: 84 bytes = 84 * 8 = 672 bits - Max packet size: 1538 bytes = 1538 * 8 = 12,304 bits PPS max (small packets) = bandwidth / min_packet_size_bits = 104,857,600 / 672 ≈ 156,000 pps? 计算:104,857,600 / 672. 104,857,600 ÷ 672. 672 * 156,000 = 672*150,000=100,800,000; 672*6,000=4,032,000; total 104,832,000; remainder 25,600, so ≈156,000 + 25600/672≈156,000+38.1≈156,038.1 pps PPS min (large packets) = bandwidth / max_packet_size_bits = 104,857,600 / 12,304 ≈ 8,520 pps? 计算:12,304 * 8,520 = 12,304*8,000=98,432,000; 12,304*520=6,398,080; total 104,830,080; close to 104,857,600, difference 27,520, so ≈8,520 + 27,520/12,304≈8,520+2.23≈8,522.23 pps 所以对于100Mb带宽,PPS范围大约是8522到156038 pps。 但用户想知道测试方法,不仅仅是理论PPS。 测试网络协议栈性能的常见方法: 1. **使用工具如 iperf, netperf, pktgen 等。** - iperf: 测试带宽、吞吐量。 - netperf: 类似,但更高级。 - pktgen: 用于生成数据包,测试PPS。 2. **设置测试环境:** - 需要两台机器:一台作为发送端,一台作为接收端。 - 配置网络为100Mb链路(例如,使用交换机或直接连接)。 - 确保没有其他网络负载。 3. **测试协议栈:** - 对于内核协议栈,可以使用标准工具。 - 对于用户态协议栈如DPDK,需要特定工具。 引用提到了DPDK,所以可能用户对高性能测试感兴趣。 用户问题:"测试网络协议栈100Mb性能的方法",没有指定内核或用户态,所以覆盖一般方法。 步骤: 1. **准备测试环境:** - 两台计算机,网络接口卡支持100Mb。 - 连接通过100Mb交换机或直接线缆。 2. **选择测试工具:** - **iperf**: 用于测试TCP/UDP吞吐量。 命令示例:在服务器端 `iperf -s`,在客户端 `iperf -c server_ip -t 30 -i 1` 测试30秒。 - **netperf**: 类似,但支持更多协议。 - **pktgen**: 用于包生成,测试PPS。 pktgen 是Linux内核模块,用于高性能包生成。 - **其他工具:** 如 DPDK pktgen 如果使用用户态协议栈。 3. **测试参数:** - 包大小:测试不同包大小,从64字节到1518字节(以太网标准)。 - 协议:TCP或UDP。UDP通常用于测试PPS,因为没有连接开销。 - 运行时间:足够长以获取稳定结果。 4. **测量指标:** - 吞吐量 (Throughput):以Mbps或Gbps为单位。 - 包率 (PPS):每秒包数。 - CPU利用率:协议栈处理时的CPU使用率。 - 延迟:对于某些测试。 5. **针对100Mb调整:** - 由于100Mb带宽,最大理论吞吐量是100Mbps。 - 测试应关注是否能达到线速。 6. **分析结果:** - 比较实际测量值与理论值。 - 如果性能低于理论值,检查瓶颈:CPU、内存、中断处理等。 从引用中,DPDK可以用于绕过内核协议栈,实现更高性能。 对于用户的问题,我可以建议使用工具如 iperf 或 pktgen。 在回答中,我需要引用来源。引用[1][3]相关。 引用[3]直接讨论了PPS测试。 生成相关问题,如指令所说。 回答结构: - 介绍测试方法。 - 逐步解释。 - 提供示例命令- 引用来源。 - 最后生成相关问题。 </think>### 测试网络协议栈100Mb性能的方法 测试网络协议栈在100Mb带宽下的性能是评估网络处理能力的关键步骤,尤其在验证系统能否达到理论线速时。以下是基于真实可靠方法的逐步指南,我将结合理论计算实际工具使用进行说明。测试主要关注吞吐量(Throughput, Mbps)、包率(Packets Per Second, PPS)CPU利用率等指标。引用内容来自站内资料,我会在相关部分标注。 #### 步骤1: 理解理论性能基准 在测试前,先计算100Mb带宽的理论性能范围,这有助于评估实际测试结果是否合理。网络性能受包大小影响:小包(如64字节)导致高PPS但低吞吐量,大包(如1500字节)导致低PPS但高吞吐量。 - **带宽计算**: 100Mb/s = 100 × 1024 × 1024 bits/s = 104,857,600 bits/s(使用二进制前缀,与引用[3]一致)。 - **包大小范围**: - 最小包大小:84字节(包括以太网帧头、FCS等开销),转换为 bits: 84 × 8 = 672 bits。 - 最大包大小:1538字节(标准以太网MTU包括开销),转换为 bits: 1538 × 8 = 12,304 bits。 - **理论PPS范围**: - PPS min(大包时): 带宽 / 最大包大小 bits = 104,857,600 / 12,304 ≈ 8,522 pps。 - PPS max(小包时): 带宽 / 最小包大小 bits = 104,857,600 / 672 ≈ 156,038 pps。 因此,100Mb网络的理论PPS范围为 **8,522 pps 到 156,038 pps**。实际测试中,协议栈的PPS应接近此范围;如果显著低于此值,表明协议栈存在瓶颈(如CPU开销或中断延迟)[^3]。 #### 步骤2: 准备测试环境 确保测试环境干净且可控,以避免外部干扰: - **硬件要求**: - 两台计算机:一台作为发送端(client),一台作为接收端(server)。均需配备100Mb以太网接口卡(NIC)。如果NIC支持更高速度,需在交换机或操作系统层面限制为100Mb(例如,使用 `ethtool` 命令设置速度)。 - 网络连接:通过100Mb交换机连接,或使用交叉线直连两台机器。确保线缆质量良好。 - **软件要求**: - 操作系统:Linux(推荐Ubuntu或CentOS,因工具支持更完善)。 - 关闭背景服务:禁用防火墙、限速工具(如 `tc`),并减少系统负载(例如,使用 `nice` 命令优先测试进程)。 - **初始检查**: - 确认链路速度:在Linux中运行 `ethtool eth0 | grep Speed`,确保输出为 "Speed: 100Mb/s"。 - 检查协议栈:默认测试内核协议栈;如测试用户态协议栈(如DPDK),需额外配置(见后文)。 #### 步骤3: 选择测试工具及方法 常用工具包括 `iperf`(测试吞吐量)、`pktgen`(测试包率PPS) `netperf`(综合测试)。以下是针对100Mb网络的详细步骤: ##### 方法1: 使用 `iperf` 测试吞吐量(推荐初学者) `iperf` 简单易用,适合测量TCP/UDP的吞吐量(单位Mbps),能反映协议栈的带宽利用率。 - **安装工具**: 在发送端接收端均安装: ```bash sudo apt-get install iperf3 # Ubuntu/Debian # 或 yum install iperf3 # CentOS/RHEL ``` - **测试UDP吞吐量(无连接开销,更适合压力测试)**: - 在接收端运行服务: ```bash iperf3 -s # 启动服务器 ``` - 在发送端运行客户端,指定100Mb带宽包大小(例如,测试不同包大小): ```bash iperf3 -c <server_ip> -u -b 100M -l 1472 -t 30 -i 1 # -u: UDP模式 # -b 100M: 目标带宽100Mbps # -l 1472: UDP包载荷大小(1472 bytes,对应1500字节以太网帧,减去开销) # -t 30: 测试30秒 # -i 1: 每秒报告结果 ``` 输出包括 "Bits per second" 值,应与100Mbps接近(如95Mbps以上表示协议栈高效)。 - **关键指标**: 记录平均吞吐量。如果低于理论值(如80Mbps),可能协议栈有瓶颈(例如,数据复制或中断处理延迟)。 - **测试TCP吞吐量(模拟真实应用)**: ```bash iperf3 -c <server_ip> -t 30 -i 1 # 默认TCP,不指定-b,让工具自动探测最大带宽 ``` 分析输出中的 "sender/receiver throughput"。 ##### 方法2: 使用 `pktgen` 测试包率(PPS) `pktgen` 是Linux内核模块,能生成高速数据包流,适合测量PPSCPU开销,尤其针对小包性能。 - **启用 pktgen**: ```bash sudo modprobe pktgen # 加载模块 ``` - **配置测试脚本**: 创建脚本(如 `pktgen_test.sh`),设置100Mb速率包大小。示例脚本: ```bash #!/bin/bash PGDEV="eth0" # 网络接口 PKT_SIZE=84 # 包大小(bytes),测试小包时设为84,大包时设为1538 RATE_PERCENT=100 # 100%线速(100Mb) # 计算PPS目标(基于理论值) if [ $PKT_SIZE -eq 84 ]; then TARGET_PPS=156000 # 近似156,038 pps else TARGET_PPS=8500 # 近似8,522 pps fi # 配置pktgen echo "rem_device_all" > /proc/net/pktgen/kpktgend_0 echo "add_device $PGDEV" > /proc/net/pktgen/kpktgend_0 echo "count 0" > /proc/net/pktgen/$PGDEV # 无限发送 echo "pkt_size $PKT_SIZE" > /proc/net/pktgen/$PGDEV echo "ratep $RATE_PERCENT" > /proc/net/pktgen/$PGDEV # 百分比线速 echo "dst <receiver_ip>" > /proc/net/pktgen/$PGDEV # 启动测试 echo "start" > /proc/net/pktgen/pgctrl # 等待10秒后停止 sleep 10 echo "stop" > /proc/net/pktgen/pgctrl # 查看结果 cat /proc/net/pktgen/$PGDEV ``` 运行脚本后,输出中的 "pps" 值应与理论范围比较(8,522–156,038 pps)。高CPU利用率(使用 `top` 监控)表示协议栈瓶颈。 - **注意**: `pktgen` 直接注入包到网络层,需确保接收端运行抓包工具(如 `tcpdump -i eth0 -n`)验证包计数。 ##### 方法3: 测试用户态协议栈(如DPDK) 如果协议栈基于用户态(如DPDK),性能更高,但测试方法不同。DPDK绕开内核协议栈,减少数据复制系统调用开销[^1]。 - **配置DPDK环境**(参考引用[2]): - 安装DPDK并绑定NIC到用户态驱动。 - 使用 `dpdk-pktgen` 工具:类似 `pktgen`,但专为DPDK优化。 - **测试命令示例**: ```bash ./app/dpdk-pktgen -c 0x3 -n 4 -- -P -m "1.0" -T # 使用核心01,100%线速 ``` 输出PPS应接近理论最大值,且CPU利用率低于内核协议栈。 #### 步骤4: 分析结果优化建议 - **指标分析**: - 吞吐量: 使用 `iperf` 结果,100Mb网络应接近100Mbps。低于90Mbps可能表示协议栈效率低。 - PPS: 使用 `pktgen` 结果,比较理论范围。例如,小包测试PPS低于150,000 pps时,检查中断合并(IRQ coalescing)或NAPI设置。 - CPU利用率: 高CPU使用(如>50%)表明协议栈是瓶颈,可能需要优化(如启用RSS多队列)。 - **常见瓶颈**: - 内核协议栈: 数据复制系统调用开销大,导致PPS低下(如在100Mb时低于10,000 pps)[^1]。 - 解决方法: 切换到用户态协议栈(如DPDK),或优化内核参数(如增加 `net.core.netdev_budget`)。 - **参考基准**: 在100Mb网络中,高效协议栈应达到: - 吞吐量: 95-100 Mbps (UDP/TCP)。 - PPS: 小包(84字节)≥150,000 pps;大包(1538字节)≥8,000 pps。 实际值会因硬件系统负载略有差异(引用[3]提供1Gb测试基准,我已换算为100Mb)。 #### 注意事项 - **安全测试**: 在隔离网络进行,避免影响生产环境。 - **重复测试**: 运行多次取平均值,包大小从64到1500字节变化,以覆盖全范围。 - **工具扩展**: 结合 `sar` 或 `perf` 监控CPU中断。 通过以上方法,您可以全面评估网络协议栈在100Mb环境下的性能。如果性能不足,考虑DPDK等用户态方案提升效率[^1][^2]。 ### 相关问题 1. 如何优化Linux内核网络协议栈以提升100Mb性能? 2. DPDK在100Mb网络中的实际性能提升幅度有多大? 3. 测试网络协议栈时,如何减少CPU利用率的影响?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值