2018.11.16第十三次课程及预习

本文介绍了多种Linux系统监控和网络工具。如用w、uptime查看系统负载,vmstat分析系统资源瓶颈,top查看进程信息;sar可监控多资源状态并查看历史信息;nload实时查看网卡流量;还介绍了监控IO性能、内存使用、进程、网络状态的工具,以及抓包工具tcpdump和wireshark。

10.1 使用w查看系统负载

系统负载:

        单位时间段内,使用CPU的活动进程有多少个。

使用w查看系统负载(远程登录)

load average:0.00,0.01,0.01代表的意思是当前系统1(5)(15)分钟内系统负载情况(负载值)。

负载值最佳状态:与机器本身的逻辑CPU数相等(既不闲置资源也不负荷工作)

注:pts/0为网络登录终端

使用cat /proc/cpuinfo查看CPU核数

processor的数值再加一,即为该机器逻辑CPU个数(例如本机processor的数值为0,即本机逻辑CPU个数为1)。

使用w查看系统负载(直接登录虚拟机)

使用uptime查看系统负载(不显示具体的用户信息)

10.2 vmstat命令

vmstat命令可以查看系统各项资源的使用情况,当系统出现瓶颈时,vmstat命令可便于分析系统的瓶颈所在。

vmstat命令的用法:

 

proce 进程

  • r : 表示有多少个任务处于run状态:跑的状态,比如只有一个cpu,有10个进程,这10个进程有1个进程在使用cpu,9个在排队,但是9个不是一直在排队,而是有一个值比如1个进程使用cpu1分钟,到了1分钟,第二进程使用cpu1分钟,以此类推,直到进程完成。
  • b :进程被cpu以外的资源阻塞了,比如硬盘或者是带宽阻塞了。 block被阻塞的,什么时候被阻塞呢?比如磁盘很忙的时候,你去写一个数据,计算结果出来你要把结果写入磁盘里面去,但是磁盘很慢,它毕竟比不了cpu的速度,只能等待一会,这儿就是磁盘被阻塞了,这个任务被磁盘的IO阻塞了。再比如我们的带宽跑满了,数据想通过TCP/IP通信的方式传输出到远程去送给另外一个服务器上,这个时候如果带宽跑满了,网速很忙,它也会被阻塞,总之:blocal就是那些被我们IO阻塞的任务有多少个,不管是磁盘还是网络。

memory 内存

  • swpd : 有多少个数据量在被交换(单位KB):表示有多少数据量被拿到交换分区里面。这个数值不变化,说明你的内存没有问题,如果这个数值比较大并且频繁的变动,这个时候就要注意你的内存可能不够,或者是内存溢出(程序写的有问题)。
  • free : 内存还剩余多少,单位为KB。
  • buff:表示即将写入磁盘的缓冲大小,单位为KB。
  • cache:表示从磁盘中读取的缓冲大小,单位为KB。

swap 显示内容的交换情况

  • si : swap in 进入内存。对象是内存
  • so :swap out 从内存里面出来,对象是内存

这两个值一直为0或者很小,没有什么变化很稳定,说明内存够,没有瓶颈,如果这个值来回的变化很频繁,长期大于0.,说明你的内存不够

io显示磁盘的使用情况

  • bi :进入到内存中去,这意味从磁盘里面读出来: 读磁盘
  • bo :从内存读出来,这意味着写入磁盘里面去: 写磁盘

这两个值怎么叫大呢,一般的服务器超过1000,就有一定压力(一直是1000以上)就会产生瓶颈。 如果只是偶尔1000,其他时候都是0或者很小,就说明问题不大

system显示采集间隔内发生的冲断次数

  • in 终端
  • cs 上下文切换

这个两个值在一秒钟的次数

cpu 显示cpu的使用状态

  • us : 用户进程占用cpu的时间百分比
  • sy : 内核进程占用cpu的时间百分比
  • id : CPU空闲状态的时间百分比
  • wa : I/O等待所占用cpu的时间百分比
  • st : 被偷走的的CPU所占百分比(一般都为0,不用关注)

异常数据

  1. r,b 值很高说明系统负载很高,查看cpu是否有瓶颈。
  2. us 也很关键,如果us一直高于50或者接近100%说明某一个进程占用cpu很大的资源,肯那个就是一些计算量很大的任务需要优化一下。
  3. 平常我们去衡量一个系统的负载不仅要看一份中内的负载load average值,还要查看cpu的us这个值得百分比。

10.3 top命令

 

top命令的用法:

注:top 一般查看load average ;us,sy ,MEM(物理内存)剩余空间

  • total :所有进程
  • sleepling :休眠的进程
  • stopped:已经停止进程
  • zombie :僵尸进程,主进程意外中断,只剩下一些子进程,自生自灭

默认情况下,按cpu使用百分比排序。

  • PID:进程id ;进程ID在/proc 下
  • USER: 用户名
  • PR:范围0~39;NI:范围-20~19; 进程优先级,PR数值越小,优先级越高
  • VIRI:虚拟内存大小
  • RES:物理内存大小,使用了多少物理内存,单位kib
  • SHR:共享内存
  • S:进场状态
  • cpu:cpu使用多少百分比
  • mem:内存使用多少百分比
  1. top 状态下按M 可以按内存使用大小排序
  2. 按P 按cpu排序
  3. 按数字1可以列出各颗cpu的状态

10.4 sar命令

 yum install -y sysstat

•sar -n DEV 网卡流量

• sar -q 系统负载

• sar -b 磁盘读写

• sar -f /var/log/sa/saxx 历史文件

• nload命令

• yum install -y epel-release

• yum install -y nload

网卡什么时候有瓶颈 千M网卡

带宽指的是比特bit

1byt(字节)=8bit

家庭用的10M带宽,理论上下载的速度是10M/8=1.25M/s

比特是网卡上的计量单位,就是所谓的数据流,而字节是计算机上文件的大小

1M=1024KB

1KB=1024byt

为了计算方便用1000来换算 。

1M=1000KB

1KB=1000byt

  • sar -n DEV 查看网卡流量
  • sar -n DEV -f /var/log/sa/saXX 查看历史流量
  • sar -q 查看历史负载
  • sar -b 查看历史磁盘
  • sar -p 查看历史cpu

注:XX代表日期,如想查看5月7号的信息,则XX为07

sar 命令很强大,它可以监控系统所有资源状态,比如平均负载、网卡流量、磁盘状态、内存使用等等。它不同于其他系统状态监控工具的地方在于,它可以打印历史信息,可以显示当天从零点开始到当前时刻的系统状态信息。如果你系统没有安装这个命令,请使用 yum install -y sysstat 命令安装。初次使用sar命令会报错,那是因为sar工具还没有生成相应的数据库文件(时时监控就不会了,因为不用去查询那个库文件)。它的数据库文件在 “/var/log/sa/” 目录下,默认保存一个月。因为这个命令太过复杂。

注:yum install -y sysstat 安装后运行命令的时候会报错;这是因为sar的特性,每10分钟才会统计一次,安装完成后直接使用还未生成相应文件 。

  • 查看网卡流量 sar -n DEV

IFACE这列表示设备名称,rxpck/s 表示每秒进入收取的包的数量,txpck/s 表示每秒发送出去的包的数量,rxbyt/s 表示每秒收取的数据量(单位Byte),txbyt/s表示每秒发送的数据量。后面几列不需要关注。如果有一天你所管理的服务器丢包非常严重,那么你就应该看一看这个网卡流量是否异常了,如果rxpck/s 那一列的数值2000左右是正常的,如果上W就不正常了,被攻击了,这个是我们就要去抓包去查看下一下,正常的服务器网卡流量不会高于这么多,除非是你自己在拷贝数据。上面的命令是查看网卡流量历史的,如何时时查看网卡流量呢?

另外也可以查看某一天的网卡流量历史,使用-f选项,后面跟文件名,如果你的系统格式Redhat或者CentOS那么sar的库文件一定是在/var/log/sa/目录下的。: 里面友两种文件一种是sa后面跟的是日期,要用sar -f 打开;还有一种是sar,可以用cat查看;文件里面存的是一个月30天的历史记录。

过了10分钟后,用sar命令就正常了 

sar -n DEV -f /var/log/sa/sa04 查看历史流量

sa04这个目录是有规律的,是按日期来的,这个目录最多保存一个月

查看历史负载 sar -q

查看历史磁盘 sar -b

查看历史cpu sar -p

注意:/var/log/sa下面有两个文件

  1. sa07 是当天生成,sar07第二天生成
  2. sa07和sar07的区别:sa07要用sa的命令来查看:sar -n DEV -f /var/log/sa/sa07
  3. sar07 可以直接用cat来查看:cat /var/log/sa/sar07

 

  1. sar -n DEV -f /var/log/sa/s
  2. 07

 

10.5 nload命令

 

  • 在安装nload前先装一个扩展包

yum install -y epel-release

yum install -y nload

会出现一个动态的一个实时的网卡页面

网卡名;IP;几个网卡(按方向键选择网卡 )

  1. Inconming:进来的带宽(受到攻击的时候流量会很大)
  2. outgoing: 出去的带宽(买的带宽)

10.6 监控io性能

 

  • iostat 磁盘以及CPU使用概况(与vmstat用法相似)

  • iostat -x 查看磁盘使用情况

其中,%util这项参数非常重要,它表示CPU等待io时间所占的百分比。cpu有部分时间给进程计算,也有一部分时间是用来等待io的,等待磁盘读和写,这个时间比是多少,占比是多大呢,这个就是%util。如果这个数字很大,达到50%~60%及以上,那说明硬盘的io性能太差,它非常的忙,数字很大,读和写也很大。如果读和写两列不大,但是%util这列很大,说明你的硬盘存在问题和故障。如果你的硬盘很慢,肯定会影响你的性能,即使你的CPU再快再厉害,硬盘速度跟不上,系统整体性能也会存在很大的瓶颈。

  • iotop 查看具体进程的io性能

10.6 监控io性能

  • iostat 磁盘以及CPU使用概况(与vmstat用法相似)

  • iostat -x 查看磁盘使用情况

其中,%util这项参数非常重要,它表示CPU等待io时间所占的百分比。cpu有部分时间给进程计算,也有一部分时间是用来等待io的,等待磁盘读和写,这个时间比是多少,占比是多大呢,这个就是%util。如果这个数字很大,达到50%~60%及以上,那说明硬盘的io性能太差,它非常的忙,数字很大,读和写也很大。如果读和写两列不大,但是%util这列很大,说明你的硬盘存在问题和故障。如果你的硬盘很慢,肯定会影响你的性能,即使你的CPU再快再厉害,硬盘速度跟不上,系统整体性能也会存在很大的瓶颈。

  • iotop 查看具体进程的io性能

 

10.7 free命令

 

  • free 查看内存使用情况

  • free -m/-g/-h 使被查看的参数后带有相应的单位

其中,total代表内存总量,used代表已使用的内存量buffer,free代表空闲内存(不完全等同于剩余内存),buffer代表缓冲,cache代表缓存,available代表真正剩余内存

buffer与cache在Linux系统内存中是被预先分配的

buffer与cache的区别:数据流向不同

磁盘(数据) --》 内存(起缓存作用cache) --》 cpu

cpu (数据) --》 内存(起缓冲作用buffer) --》 磁盘

total=used+free+buff/cache

available包含了free以及buff/cache中未被使用的部分

10.8 ps命令

 

ps aux/-elf 查看系统当前所有进程(将所有进程以快照的形式进行展现)

USER 用户

PID 进程标志数,/proc文件里面有跟pid相同名字的目录;进程的id,这个id很有用,在linux中内核管理进程就得靠pid来识别和管理某一个进程,比如我想终止某一个进程,则用 kill 进程的pid 。有时并不能杀掉,则需要加一个-9选项了 kill -9 进程pid;当某个进程有问题时,我想知道它是哪个目录下的,这时也需要用到pid(pid都在proc这个目录下,每一个pid就是一个目录)

VSZ 虚拟内存大小

RSS 真正内存大小

TTY 从哪里启动,pts/0 当前终端

STAT 进程的状态

START 进程启动时间

TIME 占用cpu多长时间

COMMAND 进程名称

ps与top的区别:ps是将进程以快照的形式静态显示,top是将进程动态呈现

10.9 查看网络状态

 

  • netstat 查看网络状态
  • netstat -lnp 查看监听端口
  • netstat -an 查看系统的网络连接状况
  • netstat -lntp 只看出tcp的,不包含socket
  • ss -an 和netstat异曲同工

netstat 命令是用来查看网络连接状态,系统所有开放端口,路由表等信息

监听端口的作用是与外部进行通信

  • netstat -lnp 用来监听有哪些端口

  • netstat -lntp 查看监听的端口

查看监听的接口后,服务端到底跟哪些客户端进行通信,以及客户端跟我们服务端通信过程到底是一个什么样的状态?

是连接进行数据传输还是两者刚刚建立连接,还是通信完成后保持一个连接而正在等待:要用netstat -an 来查看

  • netstat -an 查看所有连接的TCP状态
  1. 查看服务端和客户端之间的状态
  2. 用这个值去衡量服务器有没有压力,有没有并发,并发是多少
  3. netstat -an |grep 122.122.69.86:80|grep -ic estab -i是忽略大小写 -c符合要求的行数

这台服务器的并发数是884的意思是在这一秒或者这一个时刻内有884个连接。

  • netstat -an tcp IP

sock linux,unix 中特有的文件,可以使进程间通讯

Path 状态

TIME_WAIT 传输完成 链接保持着 等待下一次通讯

ESTABLTSHED 已经建立链接正在通讯

FIN_WAIT2 状态详情,可参考【TCP/IP 三次握手】

netstat -an |grep 112.112.69.86:80 查看80端口 并发状态

netstat -an |grep 112.112.69.86:80 |grep -ic estab 统计链接(ESTABLTSHED)正在通讯的链接总数 (前端 静态网页 2到3万 后端 有php mysql等 2000到3000 左右

  • netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}' 查看所有连接状态的数字

10.10 linux下抓包

tcpdump 工具

如果没有这个工具需要安装一下;yum install -y tcpdump

  • tcpdump -i ens33

  • tcpdump -n -i ens33

加一个n就是ip以数字的形式打印出来,如果不加就会显示主机名

  • tcpdump -nn -i ens33

第二个n是端口,tcpdump -nn -i ens33 加上第二个n 就会显示ip,端口形式显示

tcpdump 命令:

  • -i:指定网卡
  • host:指定ip
  • port:指定端口
  • -c :指定包数量
  • -w :写入指定文件里,将包的内容写入文件里面,如果不加-w直接在屏幕上显示的不是数据包,而是数据流向
  • length 长度
  • tcpdump -nn -i ens33 port 22

tcpdump -nn -i ens33 port 22 -c 6

  • tcpdump -nn -i ens33 port 22 -c 6 -w /tmp/1.cap 写入指定文件里,将包的内容写入文件里面,是真正的包,如果不加-w直接在屏幕上显示的不是数据包,而是数据流向

  • tcpdump -r 查看数据流向,不是数据包

 

wireshark 工具

如果没有需要先安装一下 yum install -y wireshark

  • 用法:tshark 只需要记住这条命令;用的时候复制一下,用于查看web服务情况

tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"

 

扩展
tcp三次握手四次挥手(重点) http://www.doc88.com/p-9913773324388.html  

tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html 

 

 

 

 

 

 

 

 

 

标题SpringBoot智能在线预约挂号系统研究AI更换标题第1章引言介绍智能在线预约挂号系统的研究背景、意义、国内外研究现状及论文创新点。1.1研究背景与意义阐述智能在线预约挂号系统对提升医疗服务效率的重要性。1.2国内外研究现状分析国内外智能在线预约挂号系统的研究与应用情况。1.3研究方法及创新点概述本文采用的技术路线、研究方法及主要创新点。第2章相关理论总结智能在线预约挂号系统相关理论,包括系统架构、开发技术等。2.1系统架构设计理论介绍系统架构设计的基本原则和常用方法。2.2SpringBoot开发框架理论阐述SpringBoot框架的特点、优势及其在系统开发中的应用。2.3数据库设计与管理理论介绍数据库设计原则、数据模型及数据库管理系统。2.4网络安全与数据保护理论讨论网络安全威胁、数据保护技术及其在系统中的应用。第3章SpringBoot智能在线预约挂号系统设计详细介绍系统的设计方案,包括功能模块划分、数据库设计等。3.1系统功能模块设计划分系统功能模块,如用户管理、挂号管理、医生排班等。3.2数据库设计与实现设计数据库表结构,确定字类型、主键及外键关系。3.3用户界面设计设计用户友好的界面,提升用户体验。3.4系统安全设计阐述系统安全策略,包括用户认证、数据加密等。第4章系统实现与测试介绍系统的实现过程,包括编码、测试及优化等。4.1系统编码实现采用SpringBoot框架进行系统编码实现。4.2系统测试方法介绍系统测试的方法、步骤及测试用例设计。4.3系统性能测试与分析对系统进行性能测试,分析测试结果并提出优化建议。4.4系统优化与改进根据测试结果对系统进行优化和改进,提升系统性能。第5章研究结果呈现系统实现后的效果,包括功能实现、性能提升等。5.1系统功能实现效果展示系统各功能模块的实现效果,如挂号成功界面等。5.2系统性能提升效果对比优化前后的系统性能
在金融行业中,对信用风险的判断是核心环节之一,其结果对机构的信贷政策和风险控制策略有直接影响。本文将围绕如何借助机器学习方法,尤其是Sklearn工具包,建立用于判断信用状况的预测系统。文中将涵盖逻辑回归、支持向量机等常见方法,并通过实际操作流程进行说明。 一、机器学习基本概念 机器学习属于人工智能的子领域,其基本理念是通过数据自动学习规律,而非依赖人工设定规则。在信贷分析中,该技术可用于挖掘历史数据中的潜在规律,进而对未来的信用表现进行预测。 二、Sklearn工具包概述 Sklearn(Scikit-learn)是Python语言中广泛使用的机器学习模块,提供多种数据处理和建模功能。它简化了数据清洗、特征提取、模型构建、验证与优化等流程,是数据科学项目中的常用工具。 三、逻辑回归模型 逻辑回归是一种常用于分类任务的线性模型,特别适用于二类问题。在信用评估中,该模型可用于判断借款人是否可能违约。其通过逻辑函数将输出映射为0到1之间的概率值,从而表示违约的可能性。 四、支持向量机模型 支持向量机是一种用于监督学习的算法,适用于数据维度高、样本量小的情况。在信用分析中,该方法能够通过寻找最佳分割面,区分违约与非违约客户。通过选用不同核函数,可应对复杂的非线性关系,提升预测精度。 五、数据预处理步骤 在建模前,需对原始数据进行清理与转换,包括处理缺失值、识别异常点、标准化数值、筛选有效特征等。对于信用评分,常见的输入变量包括收入水平、负债比例、信用历史记录、职业稳定性等。预处理有助于减少噪声干扰,增强模型的适应性。 六、模型构建与验证 借助Sklearn,可以将数据集划分为训练集和测试集,并通过交叉验证调整参数以提升模型性能。常用评估指标包括准确率、召回率、F1值以及AUC-ROC曲线。在处理不平衡数据时,更应关注模型的召回率与特异性。 七、集成学习方法 为提升模型预测能力,可采用集成策略,如结合多个模型的预测结果。这有助于降低单一模型的偏差与方差,增强整体预测的稳定性与准确性。 综上,基于机器学习的信用评估系统可通过Sklearn中的多种算法,结合合理的数据处理与模型优化,实现对借款人信用状况的精准判断。在实际应用中,需持续调整模型以适应市场变化,保障预测结果的长期有效性。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值