当前位置: 首页 > article >正文

[Python] Python运维:系统性能信息模块psutil和系统批量运维管理器paramiko

初次学习,如有错误还请指正

目录

系统性能信息模块psutil

获取系统性能信息

CPU信息

内存信息

磁盘信息

网络信息

其他信息

进程信息

实用的IP地址处理模块IPy

IP地址、网段的基本处理

多网络计算方法

系统批量运维管理器paramiko

paramiko 的安装

Linux系统部署Python环境

1.安装环境

2.解压

3.编译

4.创建软目录

5.pip国内镜像源配置

6.pip安装psutil

paramiko 的核心组件

SSHClient 类

SFTPClinent类


系统基础信息采集模块作为监控模块的重要组成部分,能够帮助运维人员了解当前系统的健康程度,同时也是衡量业务的服务质量的依据,比如系统资源吃紧,会直接影响业务的服务质量及用户体验,另外获取设备的流量信息,也可以让运维人员更好地评估带宽、设资源是否应该扩容。

系统性能信息模块psutil

psutl是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。

pip install psutil

获取系统性能信息

采集系统的基本性能信息包括 CPU、内存、磁盘、网络等,可以完整描述当前系统的运行状态及质量。psutil模块已经封装了这些方法,用户可以根据自身的应用场景,调用相应的方法来满足需求,非常简单实用。

CPU信息
print("CPU完整信息:",psutil.cpu_times(percpu=True))

#更直观的看出核心数
for i in psutil.cpu_times(percpu=True):print(i)

  • 看用户进程CPU信息:
print('用户进程CPU信息:',psutil.cpu_times().user)

  • 逻辑核心数:线程 / 物理核心数:核心
print('逻辑核心数:',psutil.cpu_count())
print('物理核心数:',psutil.cpu_count(logical=False))

内存信息

Linux 系统的内存利用率信息涉及total(内存总数)、used(已使用的内存数)、free(空闲内存数)、bufers(缓冲使用数)、cache(缓存使用数)、swap(交换分区使用数)等,分别使用psutil.virtualmemory()与psutil.swapmemory()方法获取这些信息。

import psutil
mem = psutil.virtual_memory()
print('内存总容量:',mem.total)
print('内存已使用:',mem.used)
print('内存占用:',mem.percent)
print('剩余:',mem.free)
  • 虚拟内存:
#虚拟内存
print('虚拟内存:',psutil.swap_memory())

磁盘信息
#磁盘信息
print('磁盘完整信息:',psutil.disk_partitions())
#直观方式:
for i in psutil.disk_partitions():print(i)

  • 获取单个盘:
print('E盘信息:',psutil.disk_usage('e://'))

  • 磁盘读写信息:
print('磁盘读写信息:',psutil.disk_io_counters())

for i in psutil.disk_io_counters(perdisk=True).items():print(i)

  • 每块磁盘读写信息:counters内加上perdisk=True
print('每块磁盘读写信息:',psutil.disk_io_counters(perdisk=True))

网络信息

系统的网络信息与磁盘IO类似,涉及几个关键点,包括bytessent(发送字节数)、bytesrecv(接收字节数)、packetssent(发送数据包数)、packetsrecv(接收数据包数)等。这些网络信息使用psutil.netiocounters()方法获取。

  • 获取网络信息
print('总网络信息:',psutil.net_io_counters())

每块网卡的网络信息:

print('每块网卡网络信息:',psutil.net_io_counters(pernic=True))
#直观
for i in psutil.net_io_counters(pernic=True).items():print(i)

其他信息
  • 当前登录用户
print('当前登录用户:',psutil.users())

  • 系统开机时间
#引入包以转换时间格式
import datetime
print('系统开机时间:',psutil.boot_time())
print('系统开机时间格式:',datetime.datetime.fromtimestamp(psutil.boot_time()).strftime('%Y-%m-%d %H:%M:%S'))

进程信息

  • 列出所有进程的pid:
print('正在运行的进程ID:',psutil.pids())

  • 创建进程对象:
p = psutil.Process(1000)
print('进程名称:',p.name())
print('进程路径:',p.exe())

  • 进入工作目录绝对路径(一般只在Linux中使用,在Windows中仅支持额外安装的程序使用):
print('进程绝对路径:',p.cwd())
  • 查看进程状态 / 开启时间
import datetime
p = psutil.Process(1000)
print('进程名称:',p.name())
print('进程路径:',p.exe())
print('进程状态:',p.status())
print('进程开启时间:',datetime.datetime.fromtimestamp(p.create_time()).strftime('%Y-%m-%d %H:%M:%S'))

  • 进程UID信息和GID信息(Linux中使用)

  • 进程CPU时间:
p = psutil.Process(1000)
print('进程CPU时间:',p.cpu_times())

进程CPU亲和:

print('进程CPU亲和:',p.cpu_affinity)

  • 进程利用率:
print('进程内存占用:',p.memory_percent())
print('进程rss和vms使用:',p.memory_info())

  • 进程IO信息和开启的线程数
print('进程IO信息:',p.io_counters())
print('进程开启的线程数:',p.num_threads())

实用的IP地址处理模块IPy

IP地址规划是网络设计中非常重要的一个环节,规划的好坏会直接影响路由协议算法的效率,包括网络性能、可扩展性等方面,在这个过程当中,免不了要计算大量的地址,包括网段、网络掩码、广播地址、子网数、P类型等。Python 提供了一个强大的第三方模块IPy模块可以很好地辅助我们高效完成IP的规划工作。

IP地址、网段的基本处理

IPy模块包含IP类,使用它可以方便处理绝大部分格式为IPv6及IPv4的网络和地址。

  • 获取版本号
from IPy import IP
#获取版本号
v1 = IP('192.168.128.128/32').version()
print(v1)v2 = IP('::1').version()
print(v2)

  • 获取网段地址
#获取网段地址
ip = IP('192.168.128.0/24')
print('地址数量:',ip.len())

  • IP地址类型
#IP地址类型
print(IP('192.168.128.1/32').iptype())
print(IP('114.114.114.114/32').iptype())
print(IP('255.255.255.255/32').iptype())
print(IP('127.0.0.1/32').iptype())

  • 反向解析地址格式
print(ip.reverseNames())
  • IP地址格式转换
#IP地址格式
print(IP('192.168.1.0').make_net('255.255.255.0'))
print(IP('192.168.1.0/255.255.255.0',make_net=True))
print(IP('192.168.1.0-192.168.1.255',make_net=True))

  • 也可以通过 strNormal方法指定不同 wantprefxlen参数值以定制不同输出类型的网段,输出类型为字符串。
print(IP('192.168.1.0/24').strNormal(0))
print(IP('192.168.1.0/24').strNormal(1))
print(IP('192.168.1.0/24').strNormal(2))
print(IP('192.168.1.0/24').strNormal(3))

多网络计算方法

  • IP地址比较
# IP地址比较
print(IP('192.168.1.0/24')>IP('10.0.0.8'))

  • 判断IP地址和网段是否包含于另一个网段中
print('192.168.2.128' in IP('192.168.1.0/24'))

  • 判断两个网段是否存在重叠,采用IPy提供的overlaps方法,1代表重叠,0代表不重叠
print(IP('192.168.0.0/23').overlaps('192.168.1.0/24'))
print(IP('192.168.1.0/24').overlaps('192.168.2.0/24'))

  • 根据输入的IP或子网返回网络、掩码、广播、反向解析、子网数、IP类型等信息。
#根据输入的IP或者子网给出对应的信息
ips = IP(input('请输入IP或者网段:'))
if len(ips)>1:print('此为网段')print('子网掩码:',ips.netmask())print('网络号:',ips.net())print('广播地址:',ips.broadcast())print('地址数量:',len(ips))
else:print('此为IP地址')print('地址类型:',ips.iptype())print('反向解析地址:',ips.reverseNames())print('整数表示:',ips.int())print('二进制表示:',ips.strBin())print('十六进制表示:',ips.strHex())

系统批量运维管理器paramiko

paramiko 是基于Python 实现的SSH2远程安全连接,支持认证及密钥方式。可以实现远程命令执行、文件传输、中间 SSH代理等功能,相对于Pexpect,封装的层次更高,更贴近SSH协议的功能。

paramiko 的安装

Linux系统部署Python环境
1.安装环境
yum install -y openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libffi-devel gcc gcc-c++
2.解压

将python3的linux压缩包移至linux内解压

tar zxvf Python-3.13.2.tgz

解压完进入python3.13.2目录

cd Python-3.13.2/

输入

./configure --prefix=/usr/local/python3
3.编译
make && make install
4.创建软目录
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

之后可以检查一下是否安装完成

python3 --version
5.pip国内镜像源配置
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/vim /root/.config/pip/pip.conf

文件内输入:

[global]
timeout=40
index-url=http://mirrors.aliyun.com/pypi/simple/
extra-index-url=https://pypi.tuna.tsinghua.edu.cn/simple/http://pypi.douban.com/simple/http://pypi.mirrors.ustc.edu.cn/simple/
[install]
trusted-host=pypi.tuna.tsinghua.edu.cnmirrors.aliyun.compypi.douban.compypi.mirrors.ustc.edu.cn
6.pip安装psutil
pip install psutil

paramiko 的核心组件

paramiko模块包含两个核心组件,一个为SSHClient类,另一个为SFTPClient类。

SSHClient 类

SSHClient类是SSH服务会话的高级表示,该类封装了传输(transport)、通道(channel)及SFTPClient的校验、建立的方法,通常用于执行远程命令。

1.connect 方法

connect方法实现了远程SSH连接并校验。

下面四个比较重要:

hostname(str类型),连接的目标主机地址; 
port(int类型),连接目标主机的端口,默认为22; 
username(str类型),校验的用户名(默认为当前的本地用户名); 
password(str类型),密码用于身份校验或解锁私钥; 

其余:

pkey(PKey类型),私钥方式用于身份验证;
key_filename(str or list(str)类型),一个文件名或文件名的列表,用于私钥的身份验证:
timeout(foat类型),一个可选的超时时间(以秒为单位)的TCP连接;
allow_agent(bool类型),设置为False 时用于禁用连接到 SSH 代理;
look_for_keys(bool类型),设置为 False 时用来禁用在~/.ssh 中搜索私钥文件;
compress(bool类型),设置为 True 时打开压缩。

2.exec_command 方法

远程命令执行方法,该命令的输入与输出流为标准输人(stdin)、输出(stdout)、错误(stderr)的 Python文件对象。

exec_command(self, command, bufsize=-1)

说明:

command(str类型),执行的命令串;
bufsize(int类型),文件缓冲区大小,默认为-1(不限制)。

3.setmissinghostkeypolicy方法

设置连接的远程主机没有本地主机密钥或HostKeys对象时的策略,目前支持三种,别是AutoAddPolicy、RejectPolicy(默认)、WarningPolicy,仅限用于SSHClient类。

ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

说明:

AutoAddPolicy,自动添加主机名及主机密钥到本地HostKeys对象,并将其保存;
RejectPolicy,自动拒绝未知的主机名和密钥;
WarningPolicy,用于记录一个未知的主机密钥的Python警告,并接受它,功能上与AutoAddPolicy相
似,但未知主机会有告警。

案例:创建ssh客户端远程指令free -m 获取内存状态信息

import paramiko
#目标主机IP
hosts = '192.168.112.122'
#端口
port= 22
#用户名
user = 'root'
#密码
pwd = '123123'#上面的内容需要改为自己的#生成日志文件和py源码在同一个目录
paramiko.util.log_to_file('system.log')
#创建一个ssh客户端
ssh_client = paramiko.SSHClient()
#定义连接策略,允许未知主机访问
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接服务器
ssh_client.connect(hostname=hosts,port=port,username=user,password=pwd,allow_agent=False)
#远程执行命令
stdin,stdout,stderr = ssh_client.exec_command('free -m')
#解析输出
for line in stdout:print(line)
#关闭资源
stdin.close()
#关闭客户端
ssh_client.close()

日志的输出:

SFTPClinent类

SFTPClient作为一个 SFTP 客户端对象,根据SSH传输协议的sftp 会话,实现远程文件操作,比如文件上传、下载、权限、状态等操作。

  • from_transport方法

创建一个已连同的SFTP客户端通道

from_transport(cls,t)
  • put方法

上传本地文件到远程SFTP服务端

put(self,localpath,remotepath,callback=None,confirm=True)

说明

主要:

localpath(str类型),需上传的本地文件(源); 
remotepath(str类型),远程路径(目标); 

其他:

callback(function(int,int)),获取已接收的字节数及总传输字节数,以便回调函数调用默认为 None;
confirm(bool类型),文件上传完毕后是否调用stat()方法,以便确认文件的大小。
  • get方法

从远程SFTP服务端下载文件到本地

get(self,remotepath,localpath,callback=None)

说明

主要:

remotepath(str 类型),需下载的远程文件(源); 
localpath(str 类型),本地路径(目标);

其他:

callback(function(int,int)),获取已接收的字节数及总传输字节数,以便回调函数调用,默认为None。
  • 其他方法
mkdir,在SFTP 服务器端创建目录,如 sftp.mkdir("/home/userdir",0755)。
remove,删除SFTP服务器端指定目录,如sftp.remove("/home/userdir")。
rename,重命名SFTP服务器端文件或目录,如sfp.rename("/home/test.sh","/home/testfile.sh")。
stat,获取远程 SFTP服务器端指定文件信息,如sfp.stat("/home/testflie.sh")。
listdir,获取远程 SFTP服务器端指定目录列表,以Python的列表(List)形式返回,如sftp.listdir("/home")。

案例:实现了文件上传、下载、创建与删除目录等,需要注意的是,put和 get方法需要指定文件名,不能省略。

import paramikousername = 'root'
password = '145823'
hostname = '192.168.112.129'
port = 22try:#建立SSH传输连接# Transport 创建一个 SSH 传输通道,连接到 hostname:portt = paramiko.Transport((hostname,port))t.connect()#使用用户名和密码进行身份验证t.connect(username=username,password=password)#创建 SFTP 客户端#从传输通道 t 创建一个 SFTP 客户端 sftp,用于文件操作。sftp = paramiko.SFTPClient.from_transport(t)#上传文件,我们这里就是用之前生成的system.log日志文件sftp.put('system.log','/root/system.log')#下载文件(需提前在linux中准备这个test1.txt文件或选择linux中的其他文件)sftp.get('/root/test1.txt','D:\\PycharmProject\\code\\test1.txt')#在/root目录中创建usrdirsftp.mkdir('usrdir')sftp.mkdir('usrdir2')#重命名usrdir为testdirsftp.rename('usrdir','testdir')#删除usrdir2sftp.rmdir('usrdir2')#读取test1.txt属性信息print(sftp.stat('test1.txt'))#查看/root目录下的文件列表print(sftp.listdir('./'))t.close()
except Exception as err:print(err)

我们可以在Xftp中直观的看到执行的结果:

执行前:

执行后:


THE END

如有遗漏,欢迎补充,感谢 !

相关文章:

[Python] Python运维:系统性能信息模块psutil和系统批量运维管理器paramiko

初次学习,如有错误还请指正 目录 系统性能信息模块psutil 获取系统性能信息 CPU信息 内存信息 磁盘信息 网络信息 其他信息 进程信息 实用的IP地址处理模块IPy IP地址、网段的基本处理 多网络计算方法 系统批量运维管理器paramiko paramiko 的安装 Li…...

Linux 简单模拟实现C语言文件流

🌇前言 在 C语言 的文件流中,存在一个 FILE 结构体类型,其中包含了文件的诸多读写信息以及重要的文件描述符 fd,在此类型之上,诞生了 C语言 文件相关操作,如 fopen、fclose、fwrite 等,这些函数…...

ArcPy错误处理与调试技巧(3)

三、调试技巧 调试是编程过程中不可或缺的一部分,以下是一些常用的调试技巧: 1. 打印调试信息 在代码中添加print语句,可以帮助你了解程序的运行状态和变量的值。例如: # 打印提示信息,表示开始执行缓冲区分析 print(…...

小程序使用npm包的方法

有用的链接 npm init -y 这个命令很重要, 会初始化 package.json 再重新打开微信小程序开发工具 选择工具中npm构建 在程序中引用时在main.js中直接使用包名的方式引用即可 如安装的是generator包,npm构建后就会生成 const myPackage require(***-generato…...

Asp.Net Core SignalR的协议协商问题

文章目录 前言一、协议协商的原理二、常见的协商问题及解决办法1.跨域资源共享(CORS)问题2.身份验证和授权问题3.传输方式不兼容问题4.路由配置错误5.代理和负载均衡器问题6.自定义协商(高级) 总结 前言 在ASP.NET Core SignalR …...

Rust 学习笔记:发布一个 crate 到 crates.io

Rust 学习笔记:发布一个 crate 到 crates.io Rust 学习笔记:发布一个 crate 到 crates.io提供有用的文档注释常用标题文档注释作为测试注释所包含的项目 使用 pub use 导出一个方便的公共 API设置 crates.io 账户添加 metadata 到一个新的 crate发布到 c…...

剪枝中的 `break` 与 `return` 区别详解

在回溯算法的剪枝操作中: if (sum candidates[i] > target) break;这个 break 既不等效于 return,也不会终止整个回溯过程。它只会终止当前层循环的后续迭代,而不会影响其他分支的回溯。让我用图解和示例详细说明: &#x1…...

Spring Boot 4.0实战:构建高并发电商系统

Spring Boot 4.0作为Java生态的全新里程碑,首次原生支持虚拟线程(Virtual Threads)与Project Loom特性,单机QPS处理能力较3.x版本提升5-8倍。本文以电商系统为实战场景,深度解析Spring Boot 4.0在微服务架构、分库分表…...

Vert.x学习笔记-EventLoop与Context的关系

Vert.x学习笔记 1. EventLoop 的核心作用2. Context 的核心作用3. EventLoop 与 Context 的关系1. 事件循环(EventLoop)的核心职责2. 上下文(Context)的核心职责3. 事件循环与上下文的关系(1)一对一绑定&am…...

2025030给荣品PRO-RK3566开发板单独升级Android13的boot.img

./build.sh init ./build.sh -K ./build.sh kernel 【导入配置文件】 Z:\Android13.0\rockdev\Image-rk3566_t\config.cfg 【更新的内核】 Z:\Android13.0\rockdev\Image-rk3566_t\boot.img 【导入分区表,使用原始的config.cfg会出错的^_】 Z:\Android13.0\rockdev\…...

由enctype-引出post与get的关系,最后深究至请求/响应报文

本篇载自我的笔记,本次为第二次复习。我觉得我有能力理一下思路了。 --- 笔记截图。 enctype HTML 表单的 enctype(Encode Type,编码类型)属性用于控制表单数据在提交到服务器时的编码方式,不同取值的详细解析如下&a…...

排序算法衍生问题

排序算法衍生问题 引言 排序算法是计算机科学中基础且重要的算法之一,其应用广泛,如数据统计分析、数据库操作、网络排序等。随着计算机科学的发展,排序算法的研究不仅局限于传统的排序方法,还衍生出许多有趣且实用的衍生问题。…...

Mac电脑上本地安装 redis并配置开启自启完整流程

文章目录 一、安装 Redis方法 1:通过源码编译安装(推荐)方法 2:通过 Homebrew 安装(可选) 二、配置 Redis1. 创建配置文件和数据目录2. 修改配置文件 三、配置开机自启1、通过 launchd 系统服务&#xff08…...

STP(生成树协议)原理与配置

冗余链路与环路问题 冗余链路虽然提供网络可靠性,但会引发环路问题。广播风暴导致网络资源耗尽,MAC地址表频繁更新造成震荡,同一数据帧通过不同路径重复传输影响数据完整性。 STP工作机制 生成树协议通过选举机制消除环路,同时…...

搭建基于VsCode的ESP32的开发环境教程

一、VsCode搜索ESP-IDF插件 根据插件处搜索找到ESP-IDF并安装 安装完成 二、配置安装ESP-IDF 配置IDF 按照如下配置,点击安装 安装完成 三、使用案例程序 创建一个闪光灯的例子程序,演示程序编译下载。 选择blink例子,闪烁LED的程序 选…...

【MFC】初识MFC

目录 01 模态和非模态对话框 02 静态文本 static text 01 模态和非模态对话框 首先我们需要知道模态对话框和非模态对话框的区别: 模态对话框是一种阻塞时对话框,它会阻止用户与应用程序的其他部分进行交互,直到用户与该对话框进行交互并关…...

C++.二分法教程

二分法 1. 问题引入1.1 猜数字游戏2.1 二分法核心思想为什么需要二分法?二分法的基本步骤示例代码代码解析 2.2 二分法适用场景有序数组查找效率要求高示例场景示例代码代码解析 3.1 初始化左右边界示例代码代码解析 3.2 计算中间值示例代码代码解析 3.3 判断与更新…...

如何通过数据分析优化项目决策

通过数据分析优化项目决策需从明确数据分析目标、选择适当的数据分析工具、确保数据质量、建立数据驱动文化等方面入手,其中,明确数据分析目标是优化决策过程的基础,只有清晰明确的数据分析目标才能指导有效的数据采集与分析,避免…...

2024年数维杯国际大学生数学建模挑战赛B题空间变量协同估计方法研究解题全过程论文及程序

2024年数维杯国际大学生数学建模挑战赛 B题 空间变量协同估计方法研究 原题再现: 在数理统计学中,简单采样通常假设来自相同总体的采样点彼此独立。与数理统计相反,空间统计假设空间变量的采样点是相依的,并在其值中表现出某些趋…...

leetcode hot100刷题日记——34.将有序数组转换为二叉搜索树

First Blood:什么是平衡二叉搜索树? 二叉搜索树(BST)的性质 左小右大:每个节点的左子树中所有节点的值都小于该节点的值,右子树中所有节点的值都大于该节点的值。 子树也是BST:左子树和右子树也…...

thinkphp 5.1 部分知识记录<一>

1、配置基础 惯例配置->应用配置->模块配置->动态配置 惯例配置:核心框架内置的配置文件,无需更改。应用配置:每个应用的全局配置文件(框架安装后会生成初始的应用配置文件),有部分配置参数仅能在应用配置文件中设置。模块配置:每个模块的配置文件(相同的配置…...

RAG:面向知识密集型自然语言处理任务的检索增强生成

摘要 大型预训练语言模型已被证明能够在其参数中存储事实性知识,并在下游自然语言处理(NLP)任务的微调中取得了最先进的结果。然而,它们访问和精准操作知识的能力仍然有限,因此在知识密集型任务中,其表现落后于针对特定任务设计的架构。此外,如何为它们的决策提供出处(…...

MVVM、MVC的区别、什么是MVVM

一、什么是MVVM (一)定义 MVVM是Model - View - ViewModel的缩写,它是一种软件架构设计模式,主要用于构建用户界面。这种模式将应用程序分为三个主要部分: Model(模型层) 它是应用程序中负责…...

网页自动化部署(webhook方法)

实现步骤: 宝塔安装宝塔WebHook 2.5插件。 github 上配置网页仓库(或可在服务器的网页根目录clone)。 配置宝塔WebHook 2.5 添加hook脚本; 编辑添加syncJC脚本; #!/bin/bash # 定义网站根目录 WEBROOT"/www…...

线性代数入门:轻松理解二阶与三阶行列式的定义与理解

前言 行列式是线性代数中一个非常基础但又极其重要的概念。它不仅是解线性方程组的利器,还在矩阵理论、向量空间、特征值等问题中扮演着关键角色。今天,我将用最通俗易懂的方式,向高中生朋友们介绍二阶和三阶行列式的基本概念和计算方法。让…...

AU6825集成音频DSP的2x32W数字型ClaSSD音频功率放大器(替代TAS5825)

1.特性 ● 输出配置 - 立体声 2.0: 2 x 32W (8Ω,24V,THD N 10%) - 立体声 2.0: 2 x 26W (8Ω,21V,THD N 1%) ● 供电电压范围 - PVDD:4.5V -26.4V - DVDD: 1.8V 或者 3.3V ● 静态功耗 - 37mA at PVDD12V ● 音频性能指标 - THDN ≤ 0.02% at 1W,1kHz - SNR ≥ 107dB (A-wei…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1商用服务体验全流程

华为云 Flexus 与 DeepSeek-V3/R1 的深度整合,构建了一套 “弹性算力 智能引擎” 的协同体系。 Flexus 系列云服务器基于柔性计算技术,通过动态资源调度(如 Flexus X 实例)实现 CPU / 内存的实时弹性分配,尤其适合大模…...

Go语言的原子操作

当我们想要对某个变量并发安全的修改,除了使用官方提供的mutex,还可以使用sync/atomic包的原子操作,它能够保证对变量的读取或修改期间不被其他的协程所影响。 Golang提供的原子操作都是非侵入式的,由标准库sync/atmoic包提供&am…...

Visual Studio 2022 插件推荐

Visual Studio 2022 插件推荐 Visual Studio 2022 (简称 VS2022) 是一款强大的 IDE,适合各类系统组件、框架和应用的开发。插件是接入 VS2022 最重要的扩展方式之一,它们可以大幅提升开发效率、优化代码质量,并提供强大的调试和分析功能。 …...

【深度学习-pytorch篇】3. 优化器实现:momentum,NAG,AdaGrad,RMSProp,Adam

Optimization Algorithms Explained 1. Beale Function 与导数函数讲解 Beale 函数是一个著名的用于测试优化算法性能的函数,其具有多个局部极值点,适合评估不同优化器的表现: def beale(x1, x2):"""Beale 函数定义&#x…...