系统优化

知识点:

(简介:系统优化其本质是系统在提供服务的同时,承受压力过大需进行参数调优)

1、查看平均负载

系统负载System Load:系统CPU繁忙程度的度量,即有多少进程在等待被CPU调度,平均负载(Load Average):一段时间内系统的平均负载,这个一段时间一般取1分钟、5分钟、15分钟
[root@linux-server ~]# uptime
20:42:26 up  6:12,  2 users,  load average: 0.00, 0.01, 0.05
1分钟平均负载,5分钟平均负载,15分钟平均负载分别是0.00,0.01,0.05
[root@linux-server ~]# w  #查看都有哪些用户连接服务器20:43:46 up  6:14,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/1    192.168.246.1    20:41    2.00s  0.00s  0.00s w

2、查看CPU每隔10min的使用情况

[root@linux-server ~]# yum -y install sysstat   ---安装完成之后需要等待一会
[root@linux-server ~]# sar
Linux 3.10.0-693.el7.x86_64 (linux-server)  11/16/2019  _x86_64_    (1 CPU)
​
08:50:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:00:01 PM     all      0.25      0.00      0.44      0.78      0.00     98.52
09:10:02 PM     all      0.55      0.00      0.32      0.16      0.00     98.98
Average:        all      0.40      0.00      0.38      0.47      0.00     98.75
-A:所有报告的总和
-u:输出CPU使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-r:输出内存和交换空间的统计信息
-b:显示I/O和传送速率的统计信息
-a:文件读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息
​
例如,每2秒采样一次,连续采样3次,观察CPU 的使用情况
[root@linux-server ~]# sar -u 2 3
Linux 3.10.0-693.el7.x86_64 (linux-server)  11/16/2019  _x86_64_    (1 CPU)
​
09:19:21 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:19:23 PM     all      0.00      0.00      0.50      0.00      0.00     99.50
09:19:25 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
09:19:27 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.00      0.00      0.17      0.00      0.00     99.83
参数详解:
CPU:all 表示统计信息为所有 CPU 的平均值。
%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。
1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈
2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。
===================================================================================
例如,每3秒采样一次,连续采样3次,观察内存和交换空间状态
[root@linux-server ~]# sar -r 3 3
Linux 3.10.0-693.el7.x86_64 (linux-server)  11/16/2019  _x86_64_    (1 CPU)
​
09:20:55 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
09:20:58 PM    676148    323548     32.36         0    169548    293372      9.47    136672     91728         0
09:21:01 PM    676148    323548     32.36         0    169548    293372      9.47    136672     91728         0
09:21:04 PM    676148    323548     32.36         0    169548    293372      9.47    136676     91728         0
Average:       676148    323548     32.36         0    169548    293372      9.47    136673     91728         0
参数详解:
输出项说明:
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
=============================================================================

3.查看进程io使用情况

[root@linux-server ~]# iotop
[root@linux-server ~]# iotop -b -n 3 -d 5
--version #显示版本号
-h, --help #显示帮助信息
-o, --only #显示进程或者线程实际上正在做的I/O,而不是全部的,可以随时切换按o
-b, --batch #运行在非交互式的模式
-n NUM, --iter=NUM #在非交互式模式下,设置显示的次数,
-d SEC, --delay=SEC #设置显示的间隔秒数,支持非整数值
-p PID, --pid=PID #只显示指定PID的信息
-u USER, --user=USER #显示指定的用户的进程的信息
-P, --processes #只显示进程,一般为显示所有的线程
-a, --accumulated #显示从iotop启动后每个线程完成了的IO总数
-k, --kilobytes #以千字节显示
-t, --time #在每一行前添加一个当前的时间

4.查看内存使用情况

[root@linux-server ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st2  0      4 311168   1124 570008    0    0     9    28   59   58  0  0 100  0  0r: 表示运行和等待CPU时间片的进程数(就是说多少个进程真的分配到CPU),这个值如果长期大于系统CPU个数,说明CPU 不足,需要增加CPU
b:表示在等待资源的进程数。 2、memory
swpd:表示切换到内存交换区的内存大小,即虚拟内存已使用的大小(单位KB),如果大于0,表示你的机器物理内存不足 了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
free:表示当前空闲的物理内存
buff:表示baffers cached内存大小,也就是缓冲大小,一般对块设备的读写才需要缓冲
Cache:表示page cached的内存大小,也就是缓存大小,一般作为文件系统进行缓冲,频繁访问的文件都会被缓存,如果 cache值非常大说明缓存文件比较多,如果此时io中的bi比较小,说明文件系统效率比较好 3、swap
si:表示有磁盘调入内存,也就是内存进入内存交换区的内存大小;通俗的讲就是 每秒从磁盘读入虚拟内存的大小,如果这 个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
so:表示由内存进入磁盘,也就是由内存交换区进入内存的内存大小。 注意:一般情况下si、so的值都为0,如果si、so的值长期不为0,则说明系统内存不足,需要增加系统内存 4、io
bi:表示由块设备读入数据的总量,即读磁盘,单位kb/s
bo:表示写到块设备数据的总量,即写磁盘,单位kb/s
注意:如果bi+bo的值过大,且wa值较大,则表示系统磁盘IO瓶颈

6、释放buffffer和cache

[root@linux-server ~]# echo 3 > /proc/sys/vm/drop_caches

7、带宽使用情况

[root@linux-server ~]# yum install -y iftop.x86_64

第一行:界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
中间部分:中间的<= =>这两个左右箭头,表示的是流量的方向。=>代表发送,<=代表接收。
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量

8.动态查看进程

[root@linux-server ~]# yum install -y htop.x86_64

各项从上至下分别说明如下:
左边部分从上至下,分别为,cpu、内存、交换分区的使用情况,右边部分为:Tasks为进程总数,当前运行的进程数、Load average为系统1分钟,5分钟,10分钟的平均负载情况、Uptime为系统运行的时间。
以上各项分别为:
PID:进行的标识号
USER:运行此进程的用户
PRI:进程的优先级
NI:进程的优先级别值,默认的为0,可以进行调整
VIRT:进程占用的虚拟内存值
RES:进程占用的物理内存值
SHR:进程占用的共享内存值
S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态
%CPU:该进程占用的CPU使用率
%MEM:该进程占用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间
COMMAND:进程启动的启动命令名称
​
#Linux htop工具使用详解  -----了解
h, ?    F1  查看htop使用说明
S   F2  htop 设定
/   F3  搜索进程
\   F4  增量进程过滤器
t   F5  显示树形结构
<, >    F6  选择排序方式
[   F7  可减少nice值可以提高对应进程的优先级
]   F8  可增加nice值,降低对应进程的优先级
k   F9  可对进程传递信号
q   F10 结束htop
u   只显示一个给定的用户的过程
U   取消标记所有的进程
H   显示或隐藏用户线程
K   显示或隐藏内核线程
F   跟踪进程
P   按CPU 使用排序
M   按内存使用排序
T   按Time+ 使用排序
l   显示进程打开的文件
I   倒转排序顺序
s   选择某进程,按s:用strace追踪进程的系统调用

9.监控网速

[root@linux-server ~]# yum install -y nload.x86_64
[root@linux-server ~]# nload

上半部分是:Incoming也就是进入网卡的流量
下半部分是:Outgoing,也就是从这块网卡出去的流量,
每部分都有当前流量(Curr),
平均流量(Avg),
最小流量(Min),
最大流量(Max),
总和流量(Ttl).

10、网络接口统计报告

[root@linux-server ~]# yum install -y nethogs.x86_64
[root@linux-server ~]# nethogs

实例1:设置5秒钟刷新一次,通过-d来指定刷新频率
# nethogs -d 5
实例2:监视ens33网络带宽
# nethogs ens33
实例3:同时监视eth0和eth1接口
# nethogs ens33 ens34

11、文件句柄

在linux/unix操作系统中一切皆文件,我们的设备是文件,文件是文件,文件夹也是文件。当我们用户每发起一次请求,就会产生一个文件句柄。文件句柄可以简单的理解为`文件句柄就是一个索引`。文件句柄就会随着请求量的增多,进程调用频繁增加,那么产生的文件句柄也就会越多。
​
系统默认对文件句柄是有限制的,不可能会让一个进程无限制的调用句柄。因为系统资源是有限的,所以我们需要限制每一个服务能够使用多大的文件句柄。操作系统默认使用的文件句柄是1024个句柄。

11-1、设置方式

  • 系统全局性修改
[root@nginx-server ~]# vim /etc/security/limits.conf
#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
​
#root只是针对root这个用户来限制,soft只是发提醒,操作系统不会强制限制,一般的站点设置为一万左右就ok了
root soft nofile 65535
root hard nofile 65535
# *代表通配符 所有的用户
*    soft nofile 25535
*    hard nofile 25535  #hard硬控制,到达设定值后,操作系统会采取机制对当前进程进行限制,这个时候请求就会受到影响
可以看到`root`和`*`,root代表是root用户,*代表的是所有用户,后面的数字就是文件句柄大小。大家可以根据个人业务来进行设置。
ulimit 命令
# -a  显示目前资源限制的设定。
• -c <core文件上限>  设定core文件的最大值,单位为区块。
• -d <数据节区大小>  程序数据节区的最大值,单位为KB。
• -f <文件大小>  shell所能建立的最大文件,单位为区块。
• -H  设定资源的硬性限制,也就是管理员所设下的限制。
• -m <内存大小>  指定可使用内存的上限,单位为KB。
# -n <文件数目>  指定同一时间最多可开启的文件数。
• -p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。
• -s <堆叠大小>  指定堆叠的上限,单位为KB。
• -S  设定资源的弹性限制。
• -t <CPU时间>  指定CPU使用时间的上限,单位为秒。
• -u <程序数目>  用户最多可开启的程序数目。
• -v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB
​
​
1、ulimit -a       显示系统资源的设置
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 63154
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 63154
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
​
2、ulimit -n 65535  #修改打开句柄数  ---临时

linux系统管理之系统优化(连载)相关推荐

  1. 【转载】绝对干货!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载九)如何通过源代...

    2019独角兽企业重金招聘Python工程师标准>>> 除了使用Linux的包管理机制进行软件的安装.更新和卸载,从源代码进行软件的安装也是非常常见的,开源软件提供了源代码包,开发者 ...

  2. 【转载】应广大群众的要求,今天开始连载《超容易的Linux系统管理入门书》一书...

    2019独角兽企业重金招聘Python工程师标准>>> 学习Linux容易嘛?我说超容易,你肯定不信.那学习Linux最好的学习方法是什么,就是脑子里面一直提问题,不停的提,时时刻刻 ...

  3. 【转载】茶叶蛋干货!《超容易的Linux系统管理入门书》(连载十)进行动态主机配置DHCP...

    使用动态主机配置协议DHCP(Dynamic Host Configuration Protocol)则可以避免网络参数变化后一些繁琐的配置,客户端可以从DHCP服务端检索相关信息并完成相关网络配置, ...

  4. 【转载】应读者强烈要求给出《超容易的Linux系统管理入门书》一书的主要知识点...

    刚开始了一篇连载,收到广大Linux爱好者的反馈,非常欣慰.大家对Linux学习感到很迷茫,不知道学哪些内容,如何学习? <超容易的Linux系统管理入门书>一书是腾讯Linux专家在腾讯 ...

  5. 用linux定时任务做项目对接,linux系统管理 计划任务

    一次性计划任务 命令: at 语法: at [-f 文件名] 时间 绝对计时方法 HH:MM yyyy-MM-dd 相对计时方法 now + n minutes now+n hours now + n ...

  6. linux系统管理学习笔记之三----软件的安装

    linux系统管理学习笔记之三----软件的安装 2009-12-29 19:10:02 标签:linux 系统管理 [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 ...

  7. linux系统管理工具sar(一)

    linux系统管理工具sar 监控网卡流量 #sar -n DEV 1 1 (1秒内取1次) Linux 3.10.0-123.9.3.el7.x86_64 (iZ25wvw5wozZ) 01/22/ ...

  8. Linux系统管理学习路线图

    Linux系统管理学习路线图 随着Linux应用的扩展,许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.作为一个Linux系统管理员,我看了许多有关L ...

  9. linux系统管理学习笔记之一-------linux解压缩命令

    linux系统管理学习笔记之一-------linux解压缩命令 2009-12-29 11:52:55 标签:linux tar [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接 ...

  10. python linux系统管理与自动化运维_《Python Linux系统管理与自动化运维》赖明星著【摘要 书评 在线阅读】-苏宁易购图书...

    商品参数 作者: 赖明星著 出版社:机械工业出版社 出版时间:2017-09-01 版次:1 开本:16开 装帧:平装 ISBN:9787111578659 版权提供:机械工业出版社 基本信息 商品名 ...

最新文章

  1. 如何压缩PDF文件大小,满足各种上传大小要求
  2. 【五线谱】高低八度标记 ( 高八度标记 | 标记范围的音符整体提升一个八度 | 低八度标记 | 标记范围的音符整体降低一个八度 )
  3. 解决Win8.1系统LYNC共享PPT提示“演示文稿遇到问题”
  4. MySQL事物的概念
  5. Java throw:异常的抛出
  6. Python程序员面试牢记这些,助你闯关成功!
  7. VTK:模型之MarchingSquares
  8. UIScrollView加约束
  9. TP5整合的阿里云短信接口
  10. ADO 错误:0x80004005,连接字符串属性无效
  11. java中this和this()区别
  12. 对Movielens数据集进行评分预测
  13. linux+磁盘清理工具,linux centos 磁盘清理
  14. Odoo 16 企业版手册 - 库存管理之库存调拨
  15. 名帖96 赵孟頫 小楷《汉汲黯传》
  16. tar,tar.gz,zip,tar.bz2压缩算法比较,tar.bz2压缩率最大最耗cpu
  17. LPDDR5 JEDEC
  18. ibm服务器报错代码大全_IBM错误代码对应表
  19. 20_django项目的部署和总结
  20. 《数学建模与数学实验》第5版 数据的统计描述 习题8.7

热门文章

  1. kubectl exec
  2. 使用scrapy爬取前程无忧51job网站
  3. 如何关闭联想电脑的大小写切换桌面提示
  4. 【Swift】文档分享到其他应用
  5. python中模块和包是什么_python的模块和包的详细说明
  6. 【舆情分析(5)】 情感倾向分析之鲁迅《祝福》里对祥林嫂(特定人物)的情感倾向
  7. 网站服务器在什么地方怎么查,如何查询一个网站所在服务器信息
  8. 前端基础知识总结---HTML篇
  9. skb_buff操作
  10. python网络爬虫网易云音乐_怎么使用Python网络爬虫爬取网易云音乐歌词