《Linux从小白到高手》理论篇(九):Linux的资源监控管理

本篇介绍Linux的资源监控管理。

1、CPU 资源管理

进程调度:
Linux 采用公平的进程调度算法,确保每个进程都能获得合理的 CPU 时间。调度算法会根据进程的优先级、等待时间等因素来决定哪个进程获得 CPU 使用权。
可以通过调整进程的优先级来影响其获得 CPU 的机会。例如,使用nice和renice命令可以调整进程的优先级,数值越低优先级越高。
多核处理器管理:
Linux 能够充分利用多核处理器的优势,将进程分配到不同的核心上执行,提高系统的并行处理能力。
可以使用taskset命令将特定的进程绑定到指定的 CPU 核心上,以确保某些关键进程能够获得稳定的 CPU 资源。

2、内存资源管理

内存分配与回收:
Linux 使用虚拟内存管理系统,将物理内存和磁盘空间结合起来,为进程提供内存资源。当进程需要内存时,系统会从空闲的物理内存中分配;当物理内存不足时,会将部分不常用的内存页交换到磁盘上的交换空间(swap)。
可以通过调整/proc/sys/vm/swappiness参数来控制系统将内存页交换到 swap 的倾向。值为 0 表示尽量不使用 swap,值为 100 表示积极使用 swap。
内存缓存与缓冲:
Linux 会使用一部分内存作为文件系统缓存和磁盘缓冲,以提高文件和磁盘 I/O 的性能。这些缓存会根据系统的内存使用情况自动调整大小。
可以使用free命令查看系统的内存使用情况,包括总内存、已使用内存、空闲内存、缓存和缓冲等信息。

3、磁盘资源管理

文件系统管理:
Linux 支持多种文件系统,如 ext4、XFS 等。不同的文件系统在性能、可靠性和功能方面有所不同,可以根据实际需求选择合适的文件系统。
可以使用文件系统的工具和命令来管理磁盘空间,如df命令查看磁盘使用情况,du命令查看目录和文件的磁盘占用情况。
磁盘调度策略:
Linux 内核有多种磁盘调度算法,如 CFQ(完全公平排队)、Deadline 和 Noop。不同的调度算法适用于不同的应用场景,可以根据系统的负载和需求进行调整。
可以通过修改/sys/block/sda/queue/scheduler(假设磁盘设备为sda)文件来选择磁盘调度策略。

4、网络资源管理

网络带宽控制:
Linux 可以通过流量整形(traffic shaping)和队列规则(queue discipline)来控制网络带宽的使用。例如,可以使用tc命令来设置网络接口的带宽限制、优先级等。
可以根据不同的网络应用或用户需求,为特定的网络流量分配不同的带宽份额,确保关键应用的网络性能。
网络连接管理:
Linux 可以通过防火墙(如iptables或firewalld)来管理网络连接,控制哪些 IP 地址、端口和协议可以访问系统。
可以使用网络监控工具(如iftop、nethogs等)来实时查看网络流量的使用情况,以便及时发现和解决网络问题。

5、资源监控与调整

资源监控工具:
Linux 提供了许多工具来监控系统资源的使用情况,如top、htop用于监控 CPU 和内存使用情况,iostat用于监控磁盘 I/O 性能,netstat和ss用于监控网络连接等。
这些工具可以帮助管理员及时发现资源瓶颈和问题,并采取相应的措施进行调整。
资源调整策略:
根据资源监控的结果,可以采取不同的调整策略。例如,如果发现某个进程占用过多的 CPU 资源,可以调整其优先级或限制其 CPU 使用率;如果磁盘空间不足,可以清理不必要的文件或扩展磁盘容量。
通过合理的资源管理,Linux 系统可以在不同的工作负载下保持高效、稳定的运行,为用户提供良好的性能和可靠性。

6、Linux资源管理常用命令

free内存监控

在这里插入图片描述
1、基本用法
–直接运行free:输入free命令并回车,将显示系统内存的总量、已使用量、空闲量、共享内存量、缓冲 / 缓存量以及交换分区的使用情况。
–输出的单位通常是千字节(KB)。
2、显示单位选择
–以兆字节(MB)为单位显示:
–使用free -m命令,这样可以更直观地查看内存使用情况,尤其是在内存较大的系统中。
–例如,输出可能显示 “total used free shared buffers cached” 等字段,每个字段的值都是以兆字节为单位。
–以G字节(GB)为单位显示:
–使用free -g命令,适合内存非常大的系统。
3、显示特定信息
仅显示内存信息,不显示交换分区信息:
使用free -m --memonly或free -m -o,这样可以专注于内存的使用情况,排除交换分区的干扰。
以人类可读的格式显示:
使用free -h,它会自动选择合适的单位(KB、MB、GB 等)来显示内存和交换分区的大小,使输出更易于理解。
四、持续监测内存使用情况
使用watch命令结合free:
例如,watch -n 5 free -m将每 5 秒执行一次free -m命令,动态显示内存使用情况的变化。
五、输出字段解释
total:系统总的物理内存或交换分区大小。
used:已经被使用的内存或交换分区大小。
free:未被使用的内存或交换分区大小。
shared:被多个进程共享的内存大小。
buff/cache:用于磁盘缓存和缓冲区的内存大小。
注:buffers 与 cached 的区别:
–buffers 是指用来给块设备做的缓冲大小,他只记录文件系统的 metadata 以及 tracking in-flight pages.
–cached 是用来给文件做缓冲。也就是说:buffers 是用来存储,目录里面有什么内容,权限等等。
而 cached 直接用来记忆我们打开的文件
available(在一些系统中可能需要特定选项才能显示):表示系统中可供新进程使用的估计内存大小。
通过灵活使用free命令及其选项,可以方便地监控系统内存的使用情况,及时发现内存不足或内存泄漏等问题,以便采取相应的措施进行优化和调整。

2、vmstat

在 Linux 中,vmstat(Virtual Memory Statistics)命令用于显示虚拟内存、进程、CPU 活动等系统信息。
1、基本用法
直接运行vmstat:
–输入vmstat命令并回车,将显示系统的一些关键性能指标,包括进程、内存、交换分区、I/O、系统和 CPU 的信息。
–默认情况下,输出是一次性的,显示自系统启动以来的平均统计信息。
2、显示间隔和次数
以指定时间间隔显示统计信息:
–使用vmstat interval,其中interval是时间间隔,单位为秒。例如,vmstat 5将每 5 秒显示一次系统统计信息。
–显示指定次数的统计信息:
使用vmstat interval count,其中count是要显示的次数。例如,vmstat 2 3将每 2 秒显示一次系统统计信息,共显示 3 次。
3、输出字段解释
procs:
r:运行队列中的进程数,即等待 CPU 时间片的进程数量。
b:处于不可中断睡眠状态的进程数,通常是等待 I/O 完成的进程。
memory:
swpd:使用的交换分区大小(单位为 KB)。
free:空闲内存大小。
buff:用于缓冲区的内存大小。
cache:用于缓存的内存大小。
swap:
si:从磁盘交换到内存的页面数量(单位为 KB/s)。
so:从内存交换到磁盘的页面数量(单位为 KB/s)。
io:
bi:从块设备读取的块数量(单位为块 /s)。
bo:向块设备写入的块数量(单位为块 /s)。
system:
in:每秒的中断次数。
cs:每秒的上下文切换次数。
cpu:
us:用户空间占用 CPU 的百分比。
sy:内核空间占用 CPU 的百分比。
id:空闲 CPU 的百分比。
wa:等待 I/O 的 CPU 时间百分比。
st:被虚拟机偷走的 CPU 时间百分比(如果在虚拟化环境中)。
4、持续监控系统性能:
vmstat 5可以每 5 秒显示一次系统性能统计信息,实时了解系统的运行状态。如果发现某个指标异常,可以进一步分析问题所在。
分析内存使用情况:
关注swpd、free、buff和cache字段,可以了解系统的内存使用情况。如果swpd值不断增加,可能表示内存不足,系统正在频繁使用交换分区。
检查 CPU 负载:
us、sy、id和wa字段可以帮助你了解 CPU 的使用情况。如果us和sy值较高,可能表示用户进程和内核占用了较多的 CPU 时间;如果wa值较高,可能表示系统存在 I/O 瓶颈。
通过灵活使用vmstat命令,可以快速了解系统的性能状况,及时发现问题并采取相应的措施进行优化和调整。

3、iostat

iostat(I/O statistics)命令用于报告 CPU 和磁盘 I/O 的统计信息。
1、基本用法
直接运行iostat:
–输入iostat命令并回车,将显示系统自启动以来的 CPU 和磁盘 I/O 的平均统计信息。
–输出包括 CPU 的%user(用户空间占用 CPU 百分比)、%nice(低优先级进程占用 CPU 百分比)、%system(内–核空间占用 CPU 百分比)、%iowait(等待 I/O 完成占用 CPU 百分比)等信息,以及每个磁盘设备的tps(每秒传输次数)、kB_read/s(每秒读取的千字节数)、kB_wrtn/s(每秒写入的千字节数)等信息。
2、显示时间间隔和次数
以指定时间间隔显示统计信息:
–使用iostat interval,其中interval是时间间隔,单位为秒。例如,iostat 5将每 5 秒显示一次系统统计信息。
显示指定次数的统计信息:
–使用iostat interval count,其中count是要显示的次数。例如,iostat 2 3将每 2 秒显示一次系统统计信息,共显示 3 次。
3、显示特定磁盘设备
显示特定磁盘设备的统计信息:
–使用iostat -d device,其中device是磁盘设备名称,如sda、hda等。例如,iostat -d sda将显示sda磁盘的 I/O 统计信息。
4、输出字段解释
CPU部分:
%user:用户空间进程占用 CPU 的百分比。
%nice:低优先级进程占用 CPU 的百分比。
%system:内核空间进程占用 CPU 的百分比。
%iowait:等待 I/O 完成占用 CPU 的百分比。
%steal:被虚拟机偷走的 CPU 时间百分比(如果在虚拟化环境中)。
%idle:空闲 CPU 的百分比。
Device部分(每个磁盘设备的信息):
tps:每秒传输次数,即每秒的 I/O 请求次数。
kB_read/s:每秒读取的千字节数。
kB_wrtn/s:每秒写入的千字节数。
kB_read:自系统启动以来读取的总千字节数。
kB_wrtn:自系统启动以来写入的总千字节数。
5、持续监控磁盘 I/O 性能:
–iostat -d 5可以每 5 秒显示一次磁盘 I/O 统计信息,帮助你实时了解磁盘的读写性能。如果发现某个磁盘设备的读写速度异常,可以进一步分析问题所在。
分析特定磁盘设备:
–如果你怀疑某个特定磁盘设备存在性能问题,可以使用iostat -d device来专门查看该设备的统计信息。例如,iostat —d sdb将只显示sdb磁盘的 I/O 情况。
结合其他工具进行性能分析:
可以将iostat的输出与其他性能监控工具(如top、vmstat等)结合使用,全面分析系统的性能状况。例如,如果iostat显示某个磁盘设备的 I/O 等待时间较高,可以使用top或vmstat查看是否有进程在大量占用该磁盘设备。
通过灵活使用iostat命令,可以有效地监控系统的磁盘 I/O 性能,及时发现性能瓶颈并采取相应的措施进行优化和调整。

4、uptime

uptime命令用于显示系统的运行时间以及当前的负载情况。
1、基本用法
直接运行uptime:
–输入uptime命令并回车,将显示系统自上次启动以来的运行时间、当前登录的用户数量以及系统在过去 1、5 和 15 分钟内的平均负载。
–例如,输出可能是“10:30:00 up 5 days, 2:23, 3 users, load average: 0.50, 0.32, 0.25”,表示当前时间是 10:30,系统已经运行了 5 天 2 小时 23 分钟,有 3 个用户登录,过去 1、5 和 15 分钟内的平均负载分别是 0.50、0.32 和 0.25。
2、输出字段解释
“up”后面的时间:
表示系统自上次启动以来的运行时间。格式通常是“天数,小时:分钟”。
“users”:
显示当前登录到系统的用户数量。
“load average”:
系统的平均负载,分别是过去 1、5 和 15 分钟内的平均负载。平均负载是指在特定时间间隔内,处于可运行状态(正在运行或等待运行)的进程的平均数量。
例如,“load average: 0.50, 0.32, 0.25”表示在过去 1 分钟内平均有 0.50 个进程处于可运行状态,过去 5 分钟内平均有 0.32 个进程,过去 15 分钟内平均有 0.25 个进程。
3、监控系统运行时间和负载:
–定期运行uptime命令可以了解系统的稳定性和负载情况。如果平均负载持续较高,可能表示系统资源紧张,需要进一步分析是 CPU、内存还是磁盘 I/O 等方面的问题。
4、结合其他工具进行性能分析:
–可以将uptime的输出与其他性能监控工具(如top、vmstat、iostat等)结合使用,全面了解系统的性能状况。例如,如果uptime显示平均负载较高,可以使用top查看哪些进程占用了较多的 CPU 资源。
通过使用uptime命令,可以快速了解系统的运行时间和负载情况,为系统管理和性能优化提供参考依据。

5、mpstat

mpstat(MultiProcessor Statistics)命令用于显示每个 CPU 的使用情况以及整个系统的 CPU 统计信息。
1、基本用法
直接运行mpstat:
–输入mpstat命令并回车,将显示自系统启动以来的平均 CPU 统计信息,包括每个 CPU 的用户空间占用时间百分比(% usr)、内核空间占用时间百分比(% sys)、空闲时间百分比(% idle)等。
–默认情况下,mpstat显示所有 CPU 的平均统计信息。
2、显示时间间隔和次数
以指定时间间隔显示统计信息:
使用mpstat interval,其中interval是时间间隔,单位为秒。例如,mpstat 5将每 5 秒显示一次 CPU 统计信息。
显示指定次数的统计信息:
使用mpstat interval count,其中count是要显示的次数。例如,mpstat 2 3将每 2 秒显示一次 CPU 统计信息,共显示 3 次。
3、输出字段解释
CPU:表示 CPU 的编号。如果系统有多个 CPU,每个 CPU 都有一行对应的统计信息。
%usr:用户空间进程占用 CPU 的百分比。
%nice:低优先级进程占用 CPU 的百分比。
%sys:内核空间进程占用 CPU 的百分比。
%iowait:等待 I/O 完成占用 CPU 的百分比。
%irq:处理硬件中断占用 CPU 的百分比。
%soft:处理软件中断占用 CPU 的百分比。
%steal:被虚拟机偷走的 CPU 时间百分比(如果在虚拟化环境中)。
%guest:运行虚拟机中的客户机占用 CPU 的百分比。
%gnice:运行带有低优先级的虚拟机中的客户机占用 CPU 的百分比。
%idle:空闲 CPU 的百分比。
4、特定用法
监控单个 CPU 的性能:
可以通过mpstat -P CPU_NUMBER来监控特定 CPU 的性能,其中CPU_NUMBER是 CPU 的编号。例如,mpstat -P 0将只显示编号为 0 的 CPU 的统计信息。
持续监控系统 CPU 性能:
mpstat 5可以每 5 秒显示一次系统的 CPU 统计信息,帮助你实时了解各个 CPU 的使用情况以及系统整体的 CPU 负载。如果发现某个 CPU 的负载异常高,可以进一步分析是哪个进程在该 CPU 上运行并消耗大量资源。
结合其他工具进行性能分析:
可以将mpstat的输出与其他性能监控工具(如top、vmstat、iostat等)结合使用,全面分析系统的性能状况。例如,如果mpstat显示某个 CPU 的%iowait较高,可以使用iostat查看是否该 CPU 对应的磁盘设备存在 I/O 瓶颈。
通过使用mpstat命令,可以深入了解系统中各个 CPU 的使用情况,及时发现性能问题并采取相应的措施进行优化和调整。

6、pmap

pmap命令用于显示进程的内存映射关系。
1、基本用法
显示特定进程的内存映射:
–pmap PID,其中PID是进程标识符。例如,pmap 1234将显示进程 ID 为 1234 的内存映射情况。
2、输出字段解释
地址范围:
–显示进程使用的内存地址范围,例如 “0000555555554000-0000555555555000”。
权限:
–表示该内存区域的访问权限,如 “r-xp” 表示可读、可执行但不可写。常见的权限标志包括 “r”(可读)、“w”(可写)、“x”(可执行)、“s”(共享)、“p”(私有)等。
偏移量:
-内存映射文件在文件中的偏移量。
设备:
–内存映射的设备编号,通常是磁盘设备或匿名内存的特殊设备编号。
大小:
–该内存区域的大小,以字节为单位。
映射名称:
–如果该内存区域是映射自一个文件,这里将显示文件的名称;如果是匿名内存,则可能显示类似于 “[heap]”、“[stack]” 等描述信息。
3、惯用用法
分析进程内存使用情况:
通过查看pmap的输出,可以了解一个进程使用了多少内存,哪些部分是代码、数据、堆、栈等,以及是否有大量的共享内存或内存泄漏的迹象。
查找内存占用较大的区域:
如果一个进程占用了大量内存,可以使用pmap来确定哪些内存区域是主要的占用者。例如,如果发现一个很大的匿名内存区域,可能是进程的堆空间在不断增长,提示可能存在内存泄漏问题。
与其他工具结合使用:
pmap可以与其他内存分析工具(如valgrind用于检测内存泄漏)结合使用,以更深入地了解进程的内存使用情况和潜在问题。通过使用pmap命令,可以深入了解进程的内存布局和使用情况,对于诊断内存相关问题和优化系统性能非常有帮助。

7、sar

sar(System Activity Reporter)命令是一个强大的系统性能监测工具。
1、基本用法
立即查看系统活动:
–sar:默认情况下,它会显示当天自零点以来的 CPU 使用率统计信息。例如,输出可能包括用户空间、系统空间、I/O 等待等 CPU 时间的百分比。
指定时间间隔和次数:
–sar interval count:其中interval是时间间隔,单位为秒;count是要显示的次数。例如,sar 5 3将每 5 秒显示一次系统统计信息,共显示 3 次。
2、监控特定资源
CPU 使用率:
sar -u:显示 CPU 的使用情况,包括用户空间、系统空间、空闲时间等百分比。
内存使用情况:
sar -r:显示内存的使用情况,包括物理内存总量、已使用内存、空闲内存、缓冲和缓存等信息。
磁盘 I/O 活动:
sar -b:显示磁盘块设备的活动情况,包括每秒读取和写入的块数量等。
sar -d:更详细地显示每个磁盘设备的 I/O 统计信息。
网络活动:
sar -n DEV:显示网络接口的活动情况,包括接收和发送的数据包数量、字节数等。可以指定不同的参数来查看特定类型的网络统计信息,如IP、Ethernet等。
3、输出字段解释

CPU 使用率(sar -u输出):
%user:用户空间进程占用 CPU 的百分比。
%nice:低优先级进程占用 CPU 的百分比。
%system:内核空间进程占用 CPU 的百分比。
%iowait:等待 I/O 完成占用 CPU 的百分比。
%steal:被虚拟机偷走的 CPU 时间百分比(如果在虚拟化环境中)。
%idle:空闲 CPU 的百分比。
内存使用情况(sar -r输出):
kbmemfree:空闲物理内存大小,单位为千字节。
kbmemused:已使用物理内存大小。
%memused:已使用内存的百分比。
kbbuffers:用于缓冲区的内存大小。
kbcached:用于缓存的内存大小。
磁盘 I/O 活动(sar -b或sar -d输出):
tps:每秒传输次数,即每秒的 I/O 请求次数。
rtps:每秒读取的传输次数。
wtps:每秒写入的传输次数。
bread/s:每秒读取的块数量。
bwrtn/s:每秒写入的块数量。
网络活动(sar -n DEV输出):
IFACE:网络接口名称。
rxpck/s:每秒接收的数据包数量。
txpck/s:每秒发送的数据包数量。
rxkB/s:每秒接收的千字节数。
txkB/s:每秒发送的千字节数。

4、惯用用法
持续监控系统性能:
sar -u 5 10可以每 5 秒显示一次 CPU 使用率统计信息,共显示 10 次。这对于观察系统在一段时间内的 CPU 负载变化非常有用。
分析磁盘 I/O 瓶颈:
如果系统的磁盘 I/O 性能较差,可以使用sar -d来查看每个磁盘设备的 I/O 活动情况。如果发现某个设备的tps、rtps或wtps很高,或者await(平均等待时间)很长,可能表示该设备存在 I/O 瓶颈。
检查网络问题:
sar -n DEV可以帮助了解网络接口的活动情况。如果发现接收或发送的数据包数量异常高,或者网络带宽使用率很高,可能表示网络存在问题。可以进一步分析是哪个应用程序在大量使用网络资源。
通过灵活使用sar命令,可以全面了解系统的性能状况,及时发现问题并采取相应的措施进行优化和调整。

本篇完结。
码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数学分析笔记】第4章第2节 导数的意义和性质(1)

4. 微分 4.2 导数的意义与性质 4.2.1 导数在物理中的背景 物体在OS方向上运动,位移函数为 s s ( t ) ss(t) ss(t),求时刻 t t t的瞬时速度,找一个区间 [ t , t △ t ] [t,t\bigtriangleup t] [t,t△t],从时刻 t t t变到时刻 t…

架构设计笔记-5-软件工程基础知识-2

知识要点 构件组装是将库中的构件经适当修改后相互连接,或者将它们与当前开发项目中的软件元素连接,最终构成新的目标软件。 构件组装技术大体可分为: 1. 基于功能的组装技术:基于功能的组装技术采用子程序调用和参数传递的方式将构件组装起来。它要求库中的构件以子程序…

产品经理的学习

初学 接需求 画原型 写文档 日常产出 流程图 举例购物的流程 结构图 一个应用的全部功能,用思维导图的方式去罗列出来 竞品分析文档 竞品分类 竞品选择 竞品采集 竞品文档书写 也可以做一个产品的产品结构图 需求文档 干系人 需求方 记录人 产品经理 其他项目干系人…

时序必读论文15|TimeXer:通过外部变量增强Transformer在时间序列预测中的能力

论文标题:TimeXer: Empowering Transformers for Time Series Forecasting with Exogenous Variables 论文链接:https://arxiv.org/abs/2402.19072 前言 仅仅关注内生变量,通常不足以保证准确的预测,外部序列可以为内生变量提供…

蓝桥杯【物联网】零基础到国奖之路:十六. 扩展模块之矩阵按键

蓝桥杯【物联网】零基础到国奖之路:十六. 扩展模块之矩阵按键 第一节 硬件解读第二节 CubeMX配置第三节 MDK代码 第一节 硬件解读 扩展模块和ADC模块是一摸一样的,插在主板上。 引脚对应关系: PB6-ROW1 PB7-ROW2 PB1-COLUMN1 PB0-COLUMN2 PA8-COLUMN3 …

外贸财务软件精选,提升管理效率与精准度

ZohoBooks、QuickBooks等六款会计软件各具特色,支持多币种、国际化等功能,适合不同规模外贸企业。其中,ZohoBooks功能全面,QuickBooks操作简便,SageIntacct适合复杂业务,用友U8和金蝶K/3面向中大型企业&…

【开源免费】基于SpringBoot+Vue.JS微服务在线教育系统(JAVA毕业设计)

本文项目编号 T 060 ,文末自助获取源码 \color{red}{T060,文末自助获取源码} T060,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

微服务Redis解析部署使用全流程

目录 1、什么是Redis 2、Redis的作用 3、Redis常用的五种基本类型(重要知识点) 4、安装redis 4.1、查询镜像文件【省略】 4.2、拉取镜像文件 4.3、启动redis并设置密码 4.3.1、修改redis密码【可以不修改】 4.3.2、删除密码【坚决不推荐】 5、S…

微信小程序 图片的上传

错误示范 /*从相册中选择文件 微信小程序*/chooseImage(){wx.chooseMedia({count: 9,mediaType: [image],sourceType: [album],success(res) {wx.request({url:"发送的端口占位符",data:res.tempFiles[0].tempFilePath,method:POST,success(res){//请求成功后应该返…

机器学习-朴素贝叶斯

分类是机器学习最常见的任务。 定义:给定一个对象 X,将其划分到预定义好的某一个类别 yi中 –输入 X –输出Y (取值于有限集 {y1,y 2,…yn }) 应用: –人群,新闻分类,Query分类,商品分类&a…

一次实践:给自己的手机摄像头进行相机标定

文章目录 1. 问题引入2. 准备工作2.1 标定场2.2 相机拍摄 3. 基本原理3.1 成像原理3.2 畸变校正 4. 标定解算4.1 代码实现4.2 详细解析4.2.1 解算实现4.2.2 提取点位 4.3 解算结果 5. 问题补充 1. 问题引入 不得不说,现在的计算机视觉技术已经发展到足够成熟的阶段…

用于视觉的MetaFormer基线模型

摘要 https://arxiv.org/pdf/2210.13452 摘要——MetaFormer,即Transformer的抽象架构,已被发现在实现竞争性能中发挥着重要作用。在本文中,我们再次通过将研究重点从令牌混合器(token mixer)设计转移开,来…

leetcode每日一题day19(24.9.29)——买票需要的时间

思路:对于位置k在队伍最末尾时,位置k前的人对于某一个人需要等的时间为 ​​​​​​​min(tickets[k],tickets[i]) 对于当前的人前方的的人可以使用上述策略,但对于后方由于当前的人有更高的优先,而导致情况有所不…

51单片机应用开发---keil 创建一个新工程并用Protues 8仿真(以点亮LED为例)

实现目标 1、掌握keil V5软件 创建一个新工程; 2、具体目标:1.会新建一个工程;2.编程实现点亮开发板的LED1. 一、新建工程步骤 1.1 在桌面上新建一个名字为 LED的文件夹 1.2 双击打开Keil uVision5 软件,点击 Project —>…

目标检测技术的发展:从R-CNN、YOLO到DETR、DINO

“深度人工智能”是成都深度智谷科技旗下的人工智能教育机构订阅号,主要分享人工智能的基础知识、技术发展、学习经验等。此外,订阅号还为大家提供了人工智能的培训学习服务和人工智能证书的报考服务,欢迎大家前来咨询,实现自己的…

修改Kali Linux的镜像网站

由于官方的镜像可能会出现连接不上的问题导致无法安装我们所需要的包,所以需要切换镜像站为国内的,以下是一些国内常用的Kali Linux镜像网站,它们提供了与Kali Linux官方网站相同的软件包和资源,但访问速度更快: #官方…

【CKA】二、节点管理-设置节点不可用

2、节点管理-设置节点不可用 1. 考题内容: 2. 答题思路: 先设置节点不可用,然后驱逐节点上的pod 这道题就两条命令,直接背熟就行。 也可以查看帮助 kubectl cordon -h kubectl drain -h 参数详情: –delete-empty…

User-Agent在WebMagic爬虫中的重要性

对于需要从网站上抓取数据的开发者来说,WebMagic是一个强大的工具。它是一个简单灵活的Java爬虫框架,用于抓取网页数据。在爬虫技术中,User-Agent(用户代理)是一个关键的HTTP请求头,它告诉服务器关于客户端…

LeetCode 面试经典150题 50.Pow(x,n)

题目&#xff1a;实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数&#xff08;即&#xff0c; &#xff09;。 思路&#xff1a; 代码&#xff1a; class Solution {public double myPow(double x, int n) {double ans 1;long N n;if (N < 0) {N -N;x 1 / x;}…

YOLOv11改进策略【损失函数篇】| Shape-IoU:考虑边界框形状和尺度的更精确度量

一、本文介绍 本文记录的是改进YOLOv11的损失函数&#xff0c;将其替换成Shape-IoU。现有边界框回归方法通常考虑真实GT&#xff08;Ground Truth&#xff09;框与预测框之间的几何关系&#xff0c;通过边界框的相对位置和形状计算损失&#xff0c;但忽略了边界框本身的形状和…