Linux命令行性能监控工具大全

Linux命令行性能监控工具大全

作者:Arnold Lu

原文:https://www.cnblogs.com/arnoldlu/p/9462221.html

关键词:top、perf、sar、ksar、mpstat、uptime、vmstat、pidstat、time、cpustat、munin、htop、glances、atop、nmon、pcp-gui、collectl。

01-top

top是最常用的查看系统资源使用情况的工具,包括CPU、内存等等资源。这里主要关注CPU资源。

1.1 /proc/loadavg

load average取自/proc/loadavg。

9.53 9.12 8.37 3/889 28165

前三个数字是1、5、15分钟内进程队列中平均进程数,包括正在运行的进程+准备好等待运行的进程。

第四个数字分子表示正在运行的进程数,分母是进程总数。

最后一个数字是最近运行的进程ID号。

其中top取的是/proc/loadavg的前三个数。

1.2 top使用

打开top,可以指定更新的周期。

输入H,打开隐藏的线程;输入1,可以显示单核CPU使用情况。

top -H -b -d 1 -n 200 > top.txt,每个1秒统计一次,共200次,显示线程细节,并保存到top.txt中。

top采样来源你还依赖于/proc/stat和/proc//stat两个,这两个的详细介绍参考:/proc/stat和/proc/<pid>/stat。

其中CPU信息对应的含义如下:

us:user,统计nice小于等于0的用户空间进程,也即优先级为100~120。
ni:nice,统计nice大于0的用户空间进程,也即优先级为121~139。
sys:system,统计内核态运行时间,不包括中断。
id:idle,几系统处于空闲态。
wa:iowait,统计io等待时间。
hi:hardware interrupt,统计硬件中断时间。
si:software interrupt,统计软中断时间。
st:steal

在这里插入图片描述

在top运行之后,还可以通过交互命令动态改变top的显示输出。

z:彩色显示。

H:显示线程。

R:排序。

V:Forest view,显示所有进程间的属性结构。

u/U:输入仅看某些用户进程,all表示查看所有用户。

o/O:对某一列进行过滤。RES>100000,表示只显示RES列大于100000的行。

02-perf

系统级性能分析工具perf的介绍与使用有关于perf使用的详细介绍,这里重点关注CPU占用率。

通过sudo perf top -s comm,可以查看当前系统运行进程占比。

这里不像top一样区分idle、system、user,这里的占比是各个进程在总运行时间里面占比。

通过 sudo perf record 记录采样信息,然后通过 sudo perf report -s comm

在这里插入图片描述

03-sar和ksar

sar是System Activity Report的意思,可以用于实时观察当前系统活动,也可以生成历史记录的报告。

要使用sar需要安装 sudo apt install sysstat,然后对sysstat进行配置。

sar用于记录统计信息,ksar[4]用于将记录的信息图形化输出。

ksar下载地址在:https://github.com/vlsi/ksar/releases。

# 将 ENABLED=“false“ 改为ENABLED=“true“
$ sudo gedit /etc/default/sysstat# 修改sar的周期等配置
$ sudo gedit /etc/cron.d/sysstat# 重启sar服务
$ sudo /etc/init.d/sysstat restart# sar log存放目录
$ ls -l /var/log/sysstat/

使用sar记录开机到目前的统计信息到文件sar.txt。

LC_ALL=C sar -A > sar.txt

PS:这里直接使用sar -A,在ksar中无法正常显示。

如下执行java -jar ksar.jar,然后Data->Load from text file…选择保存的sar.txt文件。

得到如下的图表。

在这里插入图片描述

还可以通过sar记录一段时间的信息,指定采样周期和采样次数。

这些命令前加上LC_ALL=C之后保存到文件中,都可以在ksar中图形化显示。

sar 1 100-----------------所有cpu合一的统计信息
sar -P ALL 1 100--------包括cpu合一以及单个cpu的统计信息
sar -B 1 100---------------paging统计信息
sar -b 1 100---------------块设备IO统计信息
sar -d 1 100---------------块设备活动统计信息
sar -F 1 100----------------挂载的文件系统统计信息
sar -r ALL------------------ 显示详细的内存使用统计信息
sar -S ------------------------显示swap空间使用情况统计信息
sar -w----------------------- 显示进程创建以及进程切换统计信息
sar -W-----------------------显示swap换入换出统计信息。

更详细请参考《How To Create sar Graphs With kSar To Identifying Linux Bottlenecks》、《Collect and report Linux System Activity Information with sar》。

04-mpstat

mpstat是Multiprocessor Statistics。当没有参数时,mpstat显示系统系统以来所有信息平均值。

常见用法如下,-P ALL监控所有CPU,细节显示特定CPU;10表示每10秒监控一次;20表示监控20次。

mpstat -P ALL 10 20

结果如下:

在这里插入图片描述

05. uptime

uptime是一个简单获取系统总共运行多长时间,以及最近1分钟、5分钟、15分钟的平均负载。

uptime通过/proc/uptime和/proc/loadavg获取相关信息。

up前是当前系统时间,up后是系统运行时长。

load average后是1分钟、5分钟、15分钟平均负载。

11:15:41 up 82 days, 20:34,  8 users,  load average: 0.28, 0.40, 0.43

06-vmstat

vmstat主要用于监控系统内存使用情况的工具,但是也包含一些CPU相关信息。

使用方法vmstat 5 5表示运行5次,每次5秒。结果如下:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st1  0 472576 228688 559092 1061756    0    0     9    39    1    0  8  4 87  0  01  0 472576 228184 559100 1061756    0    0     0    13 1532 3395 10  6 84  0  01  0 472576 229308 559100 1061616    0    0     0     0 1446 3449 10  5 85  0  00  0 472576 229592 559108 1061616    0    0     0     6 1419 3474 10  5 85  0  01  0 472576 229804 559108 1061616    0    0     0     0 1446 3439 10  5 85  0  0

上面的参数可以分为6大部分:进程、内存、swap、io、中断和进程切换、cpu。

在这里插入图片描述

更加详细的解释:

在这里插入图片描述

参考文档:《Linux Performance Measurements using vmstat》

07-pidstat

pidstat主要用于监控全部或指定进程占用系统资源的情况。

7.1查看CPU使用情况

pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

# 显示所有的进程统计信息,包括idle进程。
pidstat -p ALL# 更加详细的显示了线程统计信息。
pidstat -p ALL -t# 周期采样和采样次数
pidstat [option] interval [count]

除此之外还可以通过-p获取指定进程的统计信息。

pidstat还可以通过-r获取内存使用统计信息,通过-d获取IO使用统计信息。

7.2 查看内存使用情况

pidstat -p ALL -r 结果如下:

151821UID       PID  minflt/s  majflt/s     VSZ     RSS   %MEM  Command
1518210         1      0.02      0.00  185316    3028   0.08  systemd
1518210         2      0.00      0.00       0       0   0.00  kthreadd
1518210         4      0.00      0.00       0       0   0.00  kworker/0:0H
1518210         6      0.00      0.00       0       0   0.00  mm_percpu_wq
1518210         7      0.00      0.00       0       0   0.00  ksoftirqd/0
1518210         8      0.00      0.00       0       0   0.00  rcu_sched

minflt/s: 每秒次缺页错误次数(minor page faults),次缺页错误次数意即虚拟内存地址映射成物理内存地址产生的page fault次数。

majflt/s: 每秒主缺页错误次数(major page faults),当虚拟内存地址映射成物理内存地址时,相应的page在swap中,这样的page fault为major page fault,一般在内存使用紧张时产生。

VSZ: 该进程使用的虚拟内存(以kB为单位)。

RSS: 该进程使用的物理内存(以kB为单位)。

%MEM: 该进程使用内存的百分比。

Command: 拉起进程对应的命令。

7.3 查看磁盘使用情况

pidstat -p ALL -d 结果如下:

152040UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command
1520400         1     -1.00     -1.00     -1.00 243523129  systemd
1520400         2     -1.00     -1.00     -1.00       0  kthreadd
1520400         4     -1.00     -1.00     -1.00       0  kworker/0:0H
1520400         6     -1.00     -1.00     -1.00       0  mm_percpu_wq
1520400         7     -1.00     -1.00     -1.00 714512328679  ksoftirqd/0
1520400         8     -1.00     -1.00     -1.00 417757303594  rcu_sched

kB_rd/s: 每秒进程从磁盘读取的数据量(以kB为单位)。

kB_wr/s: 每秒进程向磁盘写的数据量(以kB为单位)。

kB_ccwr/s:每秒进程被取消向磁盘写的数据量(以kB为单位)。

Command::拉起进程对应的命令。

08-time

time命令可以被用于统计指定程序的CPU耗时。

比如 time cksum nomachine_6.0.80_1.exe 得到如下结果。

2401940638 32606752 nomachine_6.0.80_1.exe# 整个操作总耗时,0.263-0.094-0.011=0.158是IO等待耗时。
real    0m0.263s# 用户态耗时
user    0m0.094s# 内核态耗时
sys    0m0.011s
2401940638 32606752 nomachine_6.0.80_1.exe# 第二次执行就可以看出等待IO操作的时间基本上没有了。
real    0m0.098s
user    0m0.097s
sys    0m0.000s

09-cpustat

通过 sudo apt install cpustat 安装,cpustat -T -D -x 结果如下。

# 显示Load Avg信息和平均频率等
Load Avg 0.66 0.54 0.49, Freq Avg. 1.46 GHz, 4 CPUs online
# 进程切换次数、硬中断、软中断等等统计信息。
# CPU占用率、用户空间和内核空间占用率等。
3791.1 Ctxt/s, 1709.9 IRQ/s, 1800.0 softIRQ/s, 0.0 new tasks/s, 1 running, 0 blocked%CPU   %USR   %SYS   PID S  CPU   Time Task25.74  25.74   0.00 11435 R    3  2.29w /usr/bin/python315.84  15.84   0.00  9445 S    0  1.49w /usr/lib/xorg/Xorg10.89   9.90   0.99  2722 S    1  1.05w compiz7.92   0.00   7.92 32352 S    2 16.60s [kworker/2:1]0.99   0.00   0.99 32397 R    1  0.01s cpustat0.99   0.99   0.00 11046 S    2 16.20h compiz0.99   0.99   0.00  1317 S    0  8.76h /usr/NX/bin/nxnode.bin0.99   0.00   0.99 10293 S    1  1.24m [kworker/1:2]64.36  53.47  10.89 TotalLoad Avg 0.66 0.54 0.49, Freq Avg. 1.75 GHz, 4 CPUs online
2834.8 Ctxt/s, 1190.9 IRQ/s, 1183.3 softIRQ/s, 0.0 new tasks/s, 4 running, 0 blocked%CPU   %USR   %SYS   PID S  CPU   Time Task25.76  25.76   0.00 11435 R    3  2.29w /usr/bin/python318.18  18.18   0.00  9445 S    0  1.49w /usr/lib/xorg/Xorg7.58   7.58   0.00  2722 S    1  1.05w compiz6.06   0.00   6.06 32352 S    2 16.64s [kworker/2:1]1.52   0.00   1.52 32397 R    1  0.02s cpustat1.52   0.00   1.52     8 S    0  3.00h [rcu_sched]1.52   0.00   1.52 18409 S    0  1.16m update-notifier62.12  51.52  10.61 TotalDistribution of CPU utilisation (per Task):
% CPU Utilisation   Count   (%)0.00 -   1.97       706  98.881.97 -   3.94         0   0.003.94 -   5.91         0   0.005.91 -   7.88         2   0.287.88 -   9.85         0   0.009.85 -  11.82         0   0.0011.82 -  13.79         1   0.1413.79 -  15.76         0   0.0015.76 -  17.73         1   0.1417.73 -  19.70         1   0.1419.70 -  21.67         0   0.0021.67 -  23.64         0   0.0023.64 -  25.61         2   0.2825.61 -  27.57         0   0.0027.58 -  29.54         0   0.0029.55 -  31.51         0   0.0031.52 -  33.48         0   0.0033.48 -  35.45         0   0.0035.45 -  37.42         0   0.0037.42 -  39.39         1   0.14Distribution of CPU utilisation (per CPU):----------------------------------------------各CPU占用率,分用户空间和内核空间。CPU#   USR%   SYS%0  17.37   1.201   8.98   2.402   0.60   7.193  25.75   0.00

10-htop

htop和top的功能类似,但是可读性比top更好。在界面按下F5,可以看到进程里面的线程,树形结构表示了父子关系。

在这里插入图片描述

按下F2对htop进行设置,选择Display options:

在这里插入图片描述

Tree view:选择是否以树形结构表示进程线程间关系。

Hide kernel threads:可以选择是否将内核线程隐藏。

Hide userland process threads:选择是否显示用户空间进程的线程。

Show program path:是否显示进程程序完整路径。

11-atop

atop是一个监控系统资源和进程的工具。它通过CPU使用率来对列表中的进程进行降序排列,而每一个进程则包含了CPU、内存、磁盘和网络状态等信息。它的功能与top和htop类似。

在这里插入图片描述

12-glances

glances是一个由python编写的,与Nmon功能类似的报告工具,它能够报告统计cpu、内存、网络、磁盘和进程。除了报告统计,glances不支持任何其他特性或功能。当程序运行时点击“h”可以显示帮助页面。

在这里插入图片描述

13-nmon

Nmon是一个非常容易使用,能够在一个屏幕上监视CPU、内存、网络、磁盘使用状况和进程列表的工具。除了无法管理进程和修改报告显示,Nmon与那些只用于报告的报告工具完全一样。另外,它可以将数据保存到电子表格文件。

在这里插入图片描述

14-pcp-gui

Performance Co-Pilot,简称PCP,是一个系统性能和分析框架。它从多个主机整理数据并实时的分析,帮你识别不正常的表现模式。它也提供API让你设计自己的监控和报告解决方案。

安装pcp相关工具。

sudo apt install pcp pcp-gui

File->Open View选择需要打开的视图,比如CPU、Disk、Memory等。

在这里插入图片描述

15-collectl、colplot

15.1 collectl使用

collectl是一款非常优秀并且有着丰富的命令行功能的实用程序,你可以用它来采集描述当前系统状态的性能数据。

不同于大多数其它的系统监控工具,collectl 并非仅局限于有限的系统度量,相反,它可以收集许多不同类型系统资源的相关信息,如 cpu 、disk、memory 、network 、sockets 、 tcp 、inodes 、infiniband 、 lustre 、memory、nfs、processes、quadrics、slabs和buddyinfo等。

同时collectl还可以替代常用工具,比如top、vmstat、ps、iotop等。

安装collectl:

sudo apt-get install collectl

collectl的使用很简单,默认collectl显示cpu、磁盘、网络信息。

#<----CPU[HYPER]-----><----------Disks-----------><----------Network---------->
#cpu sys inter  ctxsw KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut 0   0   162    460      0      0      0      0      0      0      0       0 1   0   308    820      0      0     36      1      0      0      0       0 1   0   572   2022      0      0     36      2      0      0      0       0 0   0   270    728      0      0      0      0      0      0      0       0 

collectl还可以显示更多的子系统信息,如果选项存在对应的大写选项,大写选项表示更细节的设备统计信息。

b – buddy info (内存碎片)

c – 所有CPU的合一统计信息;C - 单个CPU的统计信息。

d – 整个文件系统Disk合一统计信息;C - 单个磁盘的统计信息。

f – NFS V3 Data

i – Inode and File System

j – 显示每个CPU的Interrupts触发情况;J - 显示每个中断详细触发情况。

l – Lustre

m – 显示整个系统Memory使用情况;M - 按node显示内存使用情况。

n – 显示整个系统的Networks使用情况;N - 分网卡显示网络使用情况。

s – Sockets

t – TCP

x – Interconnect

y – 对系统所有Slabs (系统对象缓存)使用统计信息;Y - 每个slab使用的详细信息。

collectl --all显示所有子系统的统计信息,包括cpu、终端、内存、磁盘、网络、TCP、socket、文件系统、NFS。

#<----CPU[HYPER]-----><-----------------Int------------------><-----------------Memory-----------------><----------Disks-----------><----------Network----------><-------TCP--------><------Sockets-----><----Files---><------NFS Totals------>
#cpu sys inter  ctxsw Cpu0 Cpu1 Cpu2 Cpu3 Cpu4 Cpu5 Cpu6 Cpu7 Free Buff Cach Inac Slab  Map   Fragments KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut   IP  Tcp  Udp Icmp  Tcp  Udp  Raw Frag Handle Inodes  Reads Writes Meta Comm 5   1   749   2738   79   83   67  126  289   57   87   47   4G 107M   1G 640M 151M   1G nlsrkjebaas      0      0      0      0      0      0      0       0    0    2    0    0 1138    0    1    0  11648  71267      0      0    0    0 1   0   276   1323   22    8   12   37   76   19   33   72   4G 107M   1G 640M 151M   1G nlsrkjebaas      0      0     56     13      0      0      0       0    0    0    0    0 1138    0    1    0  11648  71264      0      0    0    0 1   0   298   1336   40    9   26   31   75   31   34   49   4G 107M   1G 640M 151M   1G olsrkjebaas      0      0     24      5      0      0      0       0    0    0    0    0 1138    0    1    0  11648  71256      0      0    0    0 

collectl --top 可以代替 top 命令:

# TOP PROCESSES sorted by time (counters are /sec) 12:11:40
# PID  User     PR  PPID THRD S   VSZ   RSS CP  SysT  UsrT Pct  AccuTime  RKB  WKB MajF MinF Command
14557  al       20  7305    0 R   75M   28M  4  0.02  0.05   7  00:00.47    0    0    0    0 /usr/bin/perl 6985  al       20     1   36 S    1G  181M  3  0.01  0.03   4  01:48.14    0    4    0    1 /opt/google/chrome/chrome 7255  al       20  7000   21 S  955M  215M  1  0.00  0.04   4  01:30.44    0    0    0 1999 /opt/google/chrome/chrome 8006  al       20  7000   17 S  923M  135M  0  0.01  0.03   4  01:24.67    0    0    0    0 /opt/google/chrome/chrome 7294  al       20  2415    3 S  710M   60M  7  0.01  0.01   2  00:12.79    0    0    0    4 /usr/bin/python 

collectl --vmstat 可以代替 vmstat 命令:

#procs ---------------memory (KB)--------------- --swaps-- -----io---- --system-- ----cpu-----
# r  b   swpd   free   buff  cache  inact active   si   so    bi    bo   in    cs us sy  id wa2  0      0  4634M   108M  1535M   642M   481M    0    0     0   132  594  2523  2  0  96  00  0      0  4631M   108M  1539M   642M   481M    0    0     0     0 1006  5308  4  1  93  00  0      0  4623M   108M  1547M   642M   481M    0    0     0    48  564  2572  2  0  96  0

collectl -c1 -sZ -i:1 可以代替 ps 命令。

collectl和一些处理分析数据工具(比如colmux、colgui、colplot)结合能提供可视化图形。

colplot使用

colplot是collectl工具集的一部分,其将collectl收集的数据在浏览器中图形化展示。

colplot的介绍在此,相关源码可以再collectl-utils下载。

解压下载的colplot之后,sudo ./INSTALL 安装colplot。

安装之后重启apache服务:

sudo systemctl reload apache2
sudo systemctl restart apache2

在浏览器中输入http://127.0.0.1/colplot/,即可使用colplot。

通过Change Dir选择存放经过collectl -P保存的数据,然后设置Plot细节、显示那些子系统、plot大小等等。

在这里插入图片描述

最后Generate Plot查看结果。

在这里插入图片描述

参考文档:《Collectl: Linux 性能监控的全能冠军》、《Collectl Documentation》、《Collectl Examples - An Awesome Performance Analysis Tool in Linux》

其他:munin、rrdtool

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Weblogic12c T3 协议安全漏洞分析【CVE-2020-14645 CVE-2020-2883 CVE-2020-14645】

给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 关注公众号&#xff1a;b1gpig信息安全&#xff0c;文章推送不错过 ## 前言 WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAV…

Getshell总结

按方式分类&#xff1a; 0x01注入getshell&#xff1a; 0x02 上传 getwebshell 0x03 RCE getshell 0x04 包含getwebshell 0x05 漏洞组合拳getshell 0x06 系统层getcmdshell 0x07 钓鱼 getcmdshell 0x08 cms后台getshell 0x09 红队shell竞争分析 0x01注入getshell&#xff1a;…

python 到 poc

0x01 特殊函数 0x02 模块 0x03 小工具开发记录 特殊函数 # -*- coding:utf-8 -*- #内容见POC.demo; POC.demo2 ;def add(x,y):axyprint(a)add(3,5) print(------------引入lambad版本&#xff1a;) add lambda x,y : xy print(add(3,5)) #lambda函数,在lambda函数后面直接…

CVE-2021-41773 CVE-2021-42013 Apache HTTPd最新RCE漏洞复现 目录穿越漏洞

给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; CVE-2021-41773漏洞描述&#xff1a; Apache HTTPd是Apache基金会开源的一款流行的HTTP服务器。2021年10月8日Apache HTTPd官方发布安全更新&#xff0c;披…

SSRF,以weblogic为案例

给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 复习一下ssrf的原理及危害&#xff0c;并且以weblog的ssrf漏洞为案例 漏洞原理 SSRF(Server-side Request Forge, 服务端请求伪造) 通常用于控制web进而…

C++11 右值引用、移动语义、完美转发、万能引用

C11 右值引用、移动语义、完美转发、引用折叠、万能引用 转自&#xff1a;http://c.biancheng.net/ C中的左值和右值 右值引用可以从字面意思上理解&#xff0c;指的是以引用传递&#xff08;而非值传递&#xff09;的方式使用 C 右值。关于 C 引用&#xff0c;已经在《C引用…

Java安全(一) : java类 | 反射

给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 1.java基础 Java平台共分为三个主要版本Java SE&#xff08;Java Platform, Standard Edition&#xff0c;Java平台标准版&#xff09;、Java EE&#xff0…

对某公司一次弱口令到存储型xss挖掘

转自我的奇安信攻防社区文章:https://forum.butian.net/share/885 免责声明: 渗透过程为授权测试,所有漏洞均以提交相关平台,博客目的只为分享挖掘思路和知识传播** 涉及知识: xss注入及xss注入绕过 挖掘过程: 某次针对某目标信息搜集无意发现某工程公司的项目招标平台 …

C++11新特性选讲 语言部分 侯捷

C11新特性选讲 语言部分 侯捷 本课程分为两个部分&#xff1a;语言的部分和标准库的部分。只谈新特性&#xff0c;并且是选讲。 本文为语言部分笔记。 语言 Variadic Templatesmove semanticsautoRange-based for loopInitializer listLambdas… 标准库 type_traitsunodered…

java安全(二):JDBC|sql注入|预编译

给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 1 JDBC基础 JDBC(Java Database Connectivity)是Java提供对数据库进行连接、操作的标准API。Java自身并不会去实现对数据库的连接、查询、更新等操作而是通…

java安全(三)RMI

给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 1.RMI 是什么 RMI(Remote Method Invocation)即Java远程方法调用&#xff0c;RMI用于构建分布式应用程序&#xff0c;RMI实现了Java程序之间跨JVM的远程通信…

java安全(四) JNDI

给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 1.JNDI JNDI(Java Naming and Directory Interface)是Java提供的Java 命名和目录接口。通过调用JNDI的API应用程序可以定位资源和其他程序对象。JNDI是Java…

java安全(五)java反序列化

给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 1. 序列化 在调用RMI时,发现接收发送数据都是反序列化数据. 例如JSON和XML等语言,在网络上传递信息,都会用到一些格式化数据,大多数处理方法中&#xff0c…

git merge和rebase的区别与选择

git merge和rebase的区别与选择 转自&#xff1a;https://github.com/geeeeeeeeek/git-recipes/wiki/5.1-%E4%BB%A3%E7%A0%81%E5%90%88%E5%B9%B6%EF%BC%9AMerge%E3%80%81Rebase-%E7%9A%84%E9%80%89%E6%8B%A9#merge BY 童仲毅&#xff08;geeeeeeeeekgithub&#xff09; 这是一篇…

java安全(六)java反序列化2,ysoserial调试

给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; ysoserial 下载地址&#xff1a;https://github.com/angelwhu/ysoserial ysoserial可以让⽤户根据⾃⼰选择的利⽤链&#xff0c;⽣成反序列化利⽤数据&…

java安全(七) 反序列化3 CC利用链 TransformedMap版

给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 目录图解代码demo涉及的接口与类&#xff1a;TransformedMapTransformerConstantTransformerInvokerTransformerChainedTransformerdome理解总结&#xff1a…

java安全(八)TransformedMap构造POC

给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 给个关注&#xff1f;宝儿&#xff01; 上一篇构造了一个了commons-collections的demo 【传送门】 package test.org.vulhub.Ser;import org.apache.commons.collections.Transformer; import org…

Pytorch Tutorial 使用torch.autograd进行自动微分

Pytorch Tutorial 使用torch.autograd进行自动微分 本文翻译自 PyTorch 官网教程。 原文&#xff1a;https://pytorch.org/tutorials/beginner/basics/autogradqs_tutorial.html#optional-reading-tensor-gradients-and-jacobian-products 在训练神经网络时&#xff0c;最常使用…

TVM:编译深度学习模型快速上手教程

TVM&#xff1a;编译深度学习模型快速上手教程 本文将展示如何使用 Relay python 前端构建一个神经网络&#xff0c;并使用 TVM 为 Nvidia GPU 生成一个运行时库。 注意我们需要再构建 TVM 时启用了 cuda 和 llvm。 TVM支持的硬件后端总览 在本教程中&#xff0c;我们使用 cu…

TVM:设计与架构

TVM&#xff1a;设计与架构 本文档适用于想要了解 TVM 架构和/或积极开发项目的开发人员。页面组织如下&#xff1a; 示例编译流程概述了 TVM 将模型的高层描述转换为可部署模块所采取的步骤。要开始使用&#xff0c;请先阅读本节。 逻辑架构组件部分描述了逻辑组件。后面的部…