企业 Linux进程管理

补充centos7软件包的方式/编译安装源码包软件/企业案例/linux进程管理/企业管理进程系列命令(企业经验)--8820字详谈 开发人员编写好的程序源代码,并且没有将其编译为一个能正常使用的工具或软件。计算机软件或代码被执行,运行与内存的时候,称之为进程,系统会为其分配内存资源,并且分配到pid,网路端口,运行用户及文件描述符。 阅读详情

一、进程基础概念

 

1. 进程定义

 

- 进程:程序的一次执行实例,包含代码、数据、资源(如文件句柄、内存)及执行状态。

 

- PID(进程ID):唯一标识进程的整数(1≤PID≤32768,1通常为 systemd 或 init )。

 

- 父进程与子进程:通过 fork() / exec() 创建,父进程ID(PPID)记录于进程元数据中。

 

2. 核心特性

 

- 独立性:进程间资源隔离(通过Namespace/Cgroups实现)。

  并发性:多个进程可同时运行(CPU分时调度)。

 

生命周期:创建( fork )→ 运行 → 终止(正常退出或信号终止)。

 

二、进程监控工具: ps  深度解析

 

1. 语法与常用选项

 

选项 作用 典型场景 

 -a  显示所有用户的进程(不含会话 leader) 查看非当前用户进程 

 -u  显示用户相关信息(如用户名、启动时间) 按用户筛选进程 

 -x  显示无控制终端的进程(如后台服务) 监控守护进程(如 sshd ) 

 -e / -A  显示所有进程 全局进程扫描 

 -f  全格式输出(含PPID、命令行参数) 分析进程父子关系 

 -o  自定义字段(如 -o pid,ppid,cmd ) 按需提取关键信息 

 2.  ps -aux  输出字段详解(实例解析)

 

bash

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND  

root 1 0.0 0.1 170856 6800 ? Ss Feb17 350:48 /sbin/init  

 

 

- USER:启动进程的用户(如 root 、 ubuntu )。

 

- PID:进程ID(如 1 为初始化进程)。

 

- %CPU:CPU占用率(累计值,非实时,需结合 top )。

 

- %MEM:物理内存占用率( RSS /总内存)。

 

- VSZ:虚拟内存大小(KB,包含未分配内存)。

 

- RSS:常驻内存大小(KB,实际占用的物理内存)。

 

- TTY:控制终端( ? 表示无终端,如守护进程; pts/0 表示远程终端)。

 

- STAT:进程状态(核心!见下表)。

 

- START:进程启动时间(如 Feb17 表示2月17日启动)。

 

- TIME:累计CPU时间(非运行时间,多线程进程会累加)。

 

- COMMAND:进程启动命令(完整参数可通过 ps -ef 查看)。

 

3. 进程状态(STAT)全解

 

状态码           含义        实例与说明 

R 运行态(Running/Ready) 正在CPU运行(R+)或等待调度(R),带 + 表示前台进程。 

S 可中断睡眠(Sleeping) 等待I/O或信号(如 sshd 等待连接), kill 可唤醒。 

D 不可中断睡眠(Disk Sleep) 等待磁盘I/O(如读取文件时卡住),此时进程不可被 kill ,需修复I/O问题。 

T 停止态(Stopped) 被 SIGSTOP 信号暂停(如终端中按 Ctrl+Z ),可通过 kill -CONT 恢复。 

Z 僵尸态(Zombie) 进程已终止,但父进程未回收状态( ps 输出中 COMMAND 带 [ ] ,如 [defunct] )。 

s 会话领导者(Session Leader) 如终端启动的主进程(例: bash 进程STAT为 Ss , s 表示会话 leader)。 

< 高优先级进程 优先级高于默认值(通过 nice 调整,值越小优先级越高)。 

n 低优先级进程 优先级低于默认值( nice 值为1-19)。 

 

4. 实战场景:僵尸进程处理

 

现象:系统中存在状态为 Z 的进程,占用PID资源,长期存在可能导致PID耗尽。

  步骤:

1. 查找僵尸进程:

bash

ps -ef | grep ' Z ' # STAT列包含空格+Z,排除grep自身  

ps -A -ostat,ppid,pid,cmd | grep -e '^\[Zz\]' # 更精准匹配僵尸进程格式  

 

 

2. 定位父进程(PPID):

bash

pid=1234 # 僵尸进程PID  

ps -o ppid= -p $pid # 输出父进程PID(如5678)  

 

 

3. 终止父进程:

bash

kill -9 5678 # 强制终止父进程,僵尸进程会被`init`(PID 1)回收  

 

 

- 注意:若父进程是 systemd 等核心进程,需谨慎操作,优先排查父进程为何未回收子进程(如代码中未调用 wait() )。

 

三、动态监控工具: top  vs  htop  vs  iotop 

 

1.  top :实时进程监控

 

- 核心功能:动态显示CPU、内存、进程状态,支持交互操作(按键盘快捷键)。

 

- 输出解析(关键部分):

bash

top - 17:01:55 up 60 days, 6:30, 1 user, load average: 2.55, 1.74, 1.88  

Tasks: 473 total, 1 running, 472 sleeping, 0 stopped, 0 zombie  

%Cpu(s): 0.2us(用户空间), 0.4sy(内核空间), 0.0ni(低优先级用户), 99.4id(空闲), 0.0wa(I/O等待), 0.0hi(硬件中断), 0.0si(软件中断), 0.0st(虚拟机偷取时间)  

MiB Mem : 64050.7 total, 29284.5 free, 6963.5 used, 27802.7 buff/cache  

 

 

- 常用选项:

 

-  -d 5 :每5秒更新一次(默认3秒)。

 

-  -p 1234 :仅监控PID为1234的进程。

 

-  -u username :仅显示用户 username 的进程。

 

- 交互命令:

 

-  P :按CPU占用排序(默认)。

 

-  M :按内存占用排序。

 

-  k :输入PID后按 Enter ,可发送信号(如 9 强制终止)。

 

-  q :退出 top 。

 

2.  htop :增强型交互式工具

 

- 优势:

 

- 可视化:彩色界面、树状进程视图(按 F5 显示父子关系)。

 

- 便捷操作:直接通过方向键选择进程,按 F9 发送信号。

 

- 实时统计:显示每个进程的CPU核心占用、线程数等。

 

- 安装:

bash

# Ubuntu/Debian  

sudo apt install htop  

# CentOS/RHEL  

sudo yum install htop  

# Fedora  

sudo dnf install htop  

 

 

- 常用快捷键:

 

-  F2 :设置界面(如隐藏无关列)。

 

-  F6 :选择排序字段(如按 %MEM 排序)。

 

-  F4 :过滤进程(输入关键字,如 nginx )。

 

3.  iotop :磁盘I/O监控

 

- 作用:定位占用磁盘读写的进程,解决I/O瓶颈(如日志写入过多、数据库频繁读写)。

 

- 输出示例:

bash

Total DISK READ: 10.00 K/s | Total DISK WRITE: 20.00 K/s  

PID USER DISK_READ DISK_WRITE SWAPIN %CPU COMMAND  

1234 root 5.00 K/s 10.00 K/s 0.0% /usr/sbin/rsyslogd  

 

 

- 常用选项:

 

-  -o :仅显示有I/O活动的进程。

 

-  -d 2 :每2秒更新一次。

 

-p 1234 :监控指定PID的I/O。

 

 安装:

bash

# Ubuntu/Debian  

sudo apt install iotop  

# CentOS/RHEL(需先启用EPEL源)  

sudo yum install iotop  

 

 

四、典型场景实战

 

1. CPU占用过高排查

 

1. 通过 top / htop 找到 %CPU 高的进程(如PID 5678)。

 

2. 用 ps -ef | grep 5678 查看完整命令,确认是否为正常程序(如编译任务、异常进程)。

 

3. 若为异常进程,用 kill -9 5678 终止,或通过 nice 调整优先级( nice -n 10 ./process 降低优先级)。

 

2. 内存泄漏定位

 

1.  top 按 M 键排序,找到 %MEM 高的进程。

 

2. 用 ps -o pid,ppid,cmd,rsz %MEM 查看详细内存占用。

 

3. 结合 free -h 查看系统内存使用,若 buff/cache 过高,可通过 echo 3 > /proc/sys/vm/drop_caches 释放(谨慎操作)。

 

3. I/O瓶颈分析

 

1. 运行 iotop ,观察 DISK_READ / DISK_WRITE 高的进程(如日志服务持续写入)。

 

2. 优化方向:减少不必要的磁盘操作(如合并日志写入、使用异步I/O)。

 

五、总结

 

- 基础工具: ps 用于静态进程信息查询, top / htop 用于动态监控, iotop 聚焦I/O分析。

 

- 核心目标:通过状态码(STAT)判断进程健康度,结合资源占用(CPU/MEM/I/O)定位性能瓶颈。

 

- 最佳实践:

 

- 定期巡检僵尸进程(避免PID耗尽)。

 

- 对关键进程设置监控报警(如通过Prometheus+Grafana)。

 

- 区分进程状态(如 D 状态需优先处理I/O问题,而非直接终止)。

【企业SRE/DevOps向的精通Linux课程培训课程】第 13 天:进程管理与调度 进程管理与调度 的学习。内容包括 Linux 进程查看、控制和优先级设置(`ps`、`top`、`kill`、`nice`),以及任务自动化调度工具 `cron`(周期性)、`at`(一次性)和 `anacron`(间歇性系统)的使用、语法和故障排除。 阅读详情

相关推荐

3.4 【任务调度】Linux后台进程与定时任务实战:nohup、screen、tmux、crontab企业级应用场景

Linux任务调度实战:后台进程与定时任务管理 本文系统讲解了Linux任务调度的核心技术与工具,包括: 后台进程管理: &符号实现简单后台运行 nohup确保终端关闭后进程继续执行 disown将任务从shell作业表中移除 会话管理工具: screen基础终端复用器 tmux现代终端复用器(支持分屏和鼠标操作) 定时任务调度: crontab时间格式详解(分钟/小时/日期/月份/星期) 常见定时任务配置示例 编辑和管理crontab的方法 文章通过大量实用案例和对比表格,帮助读者掌握从基础到高级

yonggeit的博客 2946

20.Linux进程管理-企业案例

1.管理进程状态 当程序运行为进程后,如果希望停止进程,怎么办呢? 那么此时我们可以使用linux的kill命令对进程发送关闭信号。当然除了kill、还有killall,pkill 1.使用kill -l列出当前系统所支持的信号 我们最为常用的3个信号 数字编号 信号含义 信号翻译 1 SIGHUP 通常用来重新加载配置文件 9 SIGKILL 强制杀死进程 ...

weixin_30488313的博客 230

全面Linux系统管理课件

本文还有配套的精品资源,点击获取 简介:Linux作为强大的开源操作系统,提供了广泛的应用和服务。本文分享的Linux课件包含系统管理、命令行操作、编程接口、网络服务、安全配置等多个关键知识点。内容从基础知识覆盖到高级概念,旨在帮助用户全面掌握Linux系统的使用和管理,从命令行操作到系统安全,从shell脚本编程到进程管理,还包括了网络服务配置、软件安装、用户和权限管理等...

weixin_28729843的博客 1531

RHEL 企业级红帽运维工程师 (六)Linux系统中的进程管理

1.进程定义 #进程的定义: 程序是静态的代码文件 进程是指程序运行时的形态 进程是程序的一个副本 进程是有生命周期的(准备期,运行期,终止期) #进程&线程 进程是资源调用的最小单位 线程是进程的最小单位 程序执行流是从上倒下贯穿运行的 当进程是多任务,cpu是多核心,多任务应该同时被每个核心处理,每个核心处理的 任务叫线程 ...

weixin_42437801的博客 923

实战指南:基于华为Ascend NPU的大模型W8A8量化调优与精度提升

本文提供了一份基于华为Ascend NPU进行大模型W8A8量化的实战调优指南。详细介绍了从环境搭建、使用msmodelslim框架进行基础量化,到通过离群值抑制、校准集优化和量化回退等关键技术提升精度的全流程。旨在帮助开发者在华为NPU硬件上实现模型推理的显著加速,同时有效控制精度损失。

weixin_29227425的博客 271

2023-2024深度学习框架之争——选pytorch还是tensorflow?

深度学习是人工智能领域的一个重要分支,它利用多层神经网络来模拟人类的学习和推理能力,解决各种复杂的问题,如图像识别、自然语言处理、语音识别、推荐系统等。深度学习框架是一种软件工具,它提供了构建、训练、测试和部署深度学习模型的便利,使得开发者和研究者可以更高效地进行深度学习的开发和应用。目前,市场上有许多不同的深度学习框架,如PyTorch、TensorFlow、Keras、MXNet、Caffe2等,它们各有优劣,适用于不同的场景和需求。

flchen_nchu的博客 6756

Linux运维必备:20个高频命令解析与企业级应用实践

本文精选20个核心Linux命令,针对企业网络运维场景提供高效解决方案。96.3%的服务器运行Linux,掌握这些命令可提升5倍故障排查效率。内容涵盖文件操作、权限管控、网络诊断、进程管理等高频场景,如日志归档、增量备份、网络延迟分析等。特别提供企业级实战案例,包括磁盘空间告警处理和安全加固方案,并附命令速查表。同时指出新手常见操作风险(如rm -rf误用)及其防范措施,推荐从基础到认证的渐进式学习路径。所有命令均在CentOS7/Ubuntu22.04实测验证。

2301_82106265的博客 796

从零到一:Cadence AC仿真中的运放性能参数深度解析与实战避坑指南

本文深度解析Cadence AC仿真中运放性能参数的精确测量方法,包括开环增益、带宽和相位裕度等关键指标。通过实战案例分享常见设置错误的避坑技巧,帮助工程师提升设计成功率和仿真效率,特别针对全差分运放和工艺角分析提供专业指导。

www00的博客 294

【Linux】进程管理命令(ps, lsof ,kill pkill killall,vmstat)

进程管理命令

Linux小白一只~正处于学习阶段,觉得我写的还好的请多多给我点赞呀,谢谢大家!!(๑>ڡ<)☆ 2307

PX4飞控神经网络控制:从仿真到嵌入式部署实战

神经网络控制正逐步革新传统PID在无人机领域的统治地位。通过将深度学习模型部署到PX4飞控硬件,实现了从传感器数据直接生成电机指令的端到端控制。这种架构依赖TensorFlow Lite Micro等轻量级推理框架,在STM32等嵌入式处理器上可达到93μs级推理速度。关键技术突破包括:基于NVIDIA Isaac Gym的高效仿真训练、模型量化压缩技术(如8位整数量化)、以及与PX4原生安全架构的无缝集成。该方案在mRobotics Pixracer Pro等硬件上验证了可行性,为无人机姿态控制、视觉导航

weixin_30570101的博客 403

MatLab:数字图像处理实验

图像处理基本处理实验目的实验环境实验内容题目一代码结果题目二平移平移代码平移结果水平镜像水平镜像代码水平镜像结果垂直镜像垂直镜像代码垂直镜像结果放大放大代码放大结果缩小缩小代码缩小结果旋转旋转代码旋转结果双线性旋转旋转代码旋转结果 实验目的 1、熟悉并掌握MATLAB工具的使用;  2、实现图像的读取、显示、存储、平移、镜像、放大、缩小及旋转操作; 3、掌握常用的插值方法,并了解其优缺点。 实验环境 MatLab2016 实验内容 题目一 读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分别显

luoyao_的博客 9696

进程管理(二)

目录 进程的优先级 远程连接不上操作步骤 企业案例,linux假死 后台进程管理 系统平均负载 进程的优先级 那么在系统中如何给进程配置优先级 在启动进程时,为不同的进程使用不同的调度策略。 nice值越高:表示优先级越低,例如19,该进程容...

weixin_30507481的博客 196

保姆级教程:用Seurat 5.0.1搞定单细胞测序数据从质控到细胞注释的全流程

本文提供了一份详细的Seurat 5.0.1单细胞测序数据分析教程,涵盖从数据质控到细胞注释的全流程。通过R代码示例和可视化分析,帮助用户掌握单细胞RNA测序数据处理的核心技术,包括数据标准化、降维聚类和细胞类型注释,适用于生物信息学研究和临床数据分析。

weixin_29067143的博客 197

Linux操作系统编程教学pdf全套资源:全面掌握Linux编程技能

Linux操作系统编程教学pdf全套资源:全面掌握Linux编程技能 【下载地址】Linux操作系统编程教学pdf全套资源 探索Linux操作系统编程的奥秘,从这里开始!我们为您精心准备了全套的教学PDF资源,涵盖了从基础概念到高级技巧的丰富内容。无论您是编程新手还是希望提升技能的老手,这套资料都能为您提供全面的指导。从...

gitblog_06721的博客 998

一文搞懂数据标注

数据标注即通过分类、画框、标注、注释等,对图片、语音、文本等数据进行处理,标记对象的特征,以作为机器学习基础素材的过程。简言之,就是需要给数据做好标注,这样机器就能知道学习哪些内容。

女王の专属领地 9943

面试问题总结——关于OpenCV(一)

整理了一下网上和我面试中遇到的关于OpenCV相关的问题。 其中因为我的简历中有个项目用到了特征点检测相关的知识,所以整理了SIFT/SURF和FLANN。 有些知识点也不深入,对于写的不对的地方,欢迎指正。 关于OpenCV的内容 1.OpenCV中cv::Mat的深拷贝和浅拷贝问题   深拷贝:分配新内存的同时拷贝数据,当被赋值的容器被修改时,原始容器数据不会改变。   浅拷贝:仅拷贝数据,当被赋值容器修改时,原始容器数据也会做同样改变。 OpenCV的Mat时,有几种赋值方式分别为:   深.

boss-dog 1万+

linux运维工程师学习路线

一、学习路线: 1.青铜: 1、Linux基础知识、基本命令(起源、组成、常用命令如cp、ls、file、mkdir等常见操作命令) 2、Linux用户及权限基础 3、Linux系统进程管理进阶 4、linux高效文本、文件处理命令(vim、grep、sed、awk、find等命令) 5、shell脚本入门(可边练习边学习) 2.黄金: 1、TCP/IP网络基础(差不多CCNA、NP的知识就够用)...

weixin_33730836的博客 329

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

磁盘管理、进程管理、文件系统、软硬链接详细文档

项目技术操作文档项目名称:存储管理、进程管理 项目需求:1、在企业服务器上安装新硬盘,对磁盘进行分区、格式化、挂载处理2、根据企业服务器数据业务的不同,采用不同的raid技术来保证数据的读写速度、数据安全3、在企业的存储服务器上采用LVM逻辑卷技术来实现容量的动态调整4、在服务器的运维工作中随机对系统进程进行分析和管理 项目测试: 原理概述:存储管理是系统中必不可少的技术,Linux系统中支持多种...

weixin_34220963的博客 1309

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Linux进程管理与网络

第一列:表示用户第二列表示:PID第三列表示:CPU使用率第四列表示:内存使用率第五列表示:虚拟内存(一个进程同一时间被多次调用,而造成实际使用内存毕数据要小)第六列表示:实际使用内存第7列表示:使用的终端?表示与终端无关第八列表示:进程基础状态(R(运行中),S(可中断睡眠),D(不可中断睡眠),T(被暂停),Z(僵尸进程)。进程状态码+(在后台运行)<(优先级较大),N(优先级较小),s(为父进程),l(多线程进程)第九列:开启时间第十列:运行时间。

m0_69447099的博客 907

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

浙江理工大学操作系统实验1:Linux系统与进程管理实验报告推荐

浙江理工大学操作系统实验1:Linux系统与进程管理实验报告推荐 去发现同类优质开源项目:https://gitcode.com/ 项目的核心功能/场景 掌握Linux基本操作与进程管理技巧 项目介绍 在计算机科学领域,操作系统是核心技术之一,而Linux系统作为开源操作系统的代表,其强大的功能和灵活的配置使其在学术界和工业界都占据重要地位。浙江理工大学操作系统实验1——熟悉Linux系统与进程管...

gitblog_06747的博客 882

Linux企业运维人员最常用150个命令汇总

Linux企业运维人员最常用150个命令汇总 命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用。 help 查看Linux内置命令的帮助,比如cd命令。 文件和目录操作命令(18个) ...

a270168771的博客 167

Linux进程管理与systemd服务控制实战指南

进程管理是Linux系统运维的核心基础,涉及进程创建、状态监控和资源分配等关键机制。现代Linux系统普遍采用systemd作为初始化系统,通过单元文件定义服务配置,使用systemctl命令实现服务生命周期管理。在分布式系统和云计算环境中,高效的进程监控和服务编排能力直接影响系统稳定性,特别是在处理高并发服务或容器化应用时尤为关键。本文基于企业级运维实践,详解如何通过systemd实现服务自动化管理,包括单元文件编写、资源限制配置和故障排查技巧,并分享如何结合Prometheus和Ansible构建完整的

weixin_29758911的博客 319

Linux基础篇

Linux 是一款操作系统,免费,开源, 安全,高效,稳定, 处理高并发非常强悍,现在很多的企业级的项目都部署到 Linux/unix 服务器运行。Linux 创始人-linux 林纳斯。Linux 的吉祥物【企鹅 tux】

suenpeng 483

【Linux】100 道 Linux 常见面试题,慢慢读

Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

A1_3_9_7的博客 1383

Linux操作系统一

假设,我们现在正在做一家外包公司,我们的目标是把这家公司做上市。其中,操作系统就是这家外包公司的老板。我们可以把这家公司的发展阶段分为以下几个阶段:(1)我们的老板(操作系统)基于现在存在的开放的X86体系结构),创办一家外包公司(系统的启动因为一开始没有其他员工,老板需要亲自接项目(实模式(2)公司慢慢的越做越大,保护模式、多线程),为了管理各个外包项目,公司建立了进程管理)、内存管理)、文件系统)、输入输出设备管理(3)公司越来越牛,开始促进进程间通信)和网络通信。

m0_53809203的博客 1105
上一篇: kubekey -实现懒人一键部署K8S集群
下一篇: 在企业级应用中,Shell脚本通常需要与各类系统工具配合使用,以实现自动化部署、监控、日志分析、数据处理
泥土编程
博客等级 码龄3年 327粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值