系统管理

Author:Rich七哥

  • 查看 CPU 负载相关工具,找出系统中使用 CPU 最多的进程
  • 查看 Memory 运行状态相关工具,找出系统中使用内存最多的进程
  • 查看 IO 运行状态相关工具,找出系统中对磁盘读写最多的进程
  • 查看 Network 运行状态相关工具,找出系统中使用网络最多的进程
  • 查看系统整体运行状态

性能优化就是找到系统处理中的瓶颈以及去除这些的过程。 性能优化其实是对 OS 各子系统达到一种平衡的定义,这些子系统包括了:

CPU Memory IO Network

这些子系统之间关系是相互彼此依赖的,任何一个高负载都会导致其他子系统出现问题. 比如:

大量的网页调入请求导致内存队列的拥塞; 网卡的大吞吐量可能导致更多的 CPU 开销; 大量的 CPU 开销又会尝试更多的内存使用请求;

大量来自内存的磁盘写请求可能导致更多的 CPU 以及 IO 问题; 所以要对一个系统进行优化,查找瓶颈来自哪个方面是关键,虽然看似是某一个子系统出现问题,其实有 可能是别的子系统导致的.

调优就像医生看病,因此需要你对服务器所有地方都了解清楚。 当系统出了问题,运行卡,如何快速找出以下进程:

  • 1、找出系统中使用 CPU 最多的进程?
  • 2、找出系统中使用内存最多的进程?
  • 3、找出系统中对磁盘读写最多的进程?
  • 4、找出系统中使用网络最多的进程?

查看 CPU 负载相关工具

  1. [root@localhost ~]# uptime
  2. 13:22:30 up 8 min, 1 users, load average: 0.14, 0.38, 0.25 其内容如下:
  3. 12:38:33
  4. 当前时间
  5. up 8 min
  6. 系统运行时间 ,说明此服务器连续运行 8 分钟
  7. 1 user
  8. 当前登录用户数
  9. load average: 0.06, 0.60,
  10. 0.48
  11. 系统负载,即任务队列的平均长度。 三个数值分别为 1 钟、5 分钟、15 分钟前到现在的平均值。

找出系统中使用 CPU 最多的进程?

方法 1:使用 top 命令

运行 top , 找出使用 CPU 最多的进程 ,按大写的 P,可以按 CPU 使用率来排序显示

结果如下

按照实际使用 CPU,从大到小排序显示所有进程列表

  1. [root@harry63 ~]# ps -aux --sort -pcpu | more #按 cpu 降序排序 查看
  2. 注: -pcpu 可以显示出进程绝对路径,方便找出木马程序运行的路径。

查看 Memory 运行状态相关工具

找出系统中使用内存最多 的进程

  1. free -h
  2. total
  3. used
  4. free
  5. shared
  6. buff/cache
  7. available
  8. Mem:
  9. 976M
  10. 291M
  11. 156M
  12. 7.3M
  13. 527M
  14. 479M
  15. Swap:
  16. 2.0G
  17. 0B
  18. 2.0G

total

used

free

shared

buff/cache

available

Mem:

976M

291M

156M

7.3M

527M

479M

Swap:

2.0G

0B

2.0G

物理内存实际空余计算:free + buffers/cache

按照实际使用内存,从大到小排序显示所有进程列表

  1. [root@harry63 ~]# ps -aux --sort -rss | more 内存降序排序(去掉减号就是升序) 或:
  2. [root@harry63 ~]# ps -aux --sort -rss > a.log

磁盘IO

  • I/O 调优相关查看工具
  1. [root@harry63 ~]# tune2fs -l /dev/sda1 | grep size
  2. Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
  3. Block size: 1024 # 为 1 个字节 。 一个扇区 512 字节。
  4. RHEL 7
  5. [root@harry63 ~]# xfs_growfs -l /dev/sda1 |grep bsize
  6. data = bsize=4096 blocks=51200, imaxpct=25 naming =version 2 bsize=4096 ascii-ci=0 ftype=1
  7. log =internal bsize=4096 blocks=855, version=2

场景: 服务器很卡,查看 CPU 使用率不高,内存也够用,但就是卡,尤其是打开新程序或文 件时,更卡。此时是哪出问题了?

这时系统的瓶颈在哪里?

硬盘

查看哪个进程使用磁盘读写最多?

iotop 命令,查看哪个进程使用磁盘读写最多 安装:

  1. [root@harry63 ~]# yum install -y iotop
  2. 例:
  3. [root@harry63 ~]# iotop -o -d 1 #显示正在使用磁盘的进程 在另一个终端对磁盘进行大量读操作,执行:
  4. 选项:
  5. -o:只显示有 io 操作的进程
  6. -b:批量显示,无交互,主要用作记录到文件。
  7. -n NUM:显示 NUM 次,主要用于非交互式模式。
  8. -d SEC:间隔 SEC 秒显示一次。
  9. -p PID:监控的进程 pid
  10. -u USER:监控的进程用户
  11. iotop 常用快捷键:
  12. <- / ->:左右箭头:改变排序方式,默认是按 IO 排序。
  13. r:改变排序顺序。 o:只显示有 IO 输出的进程。 p:进程/线程的显示方式的切换。 a:显示累积使用量。
  14. q:退出

整体查看

查看内存及系统整体运行状态:

vmstat :命令是最常见的 Linux/Unix 监控工具,可以展现给定时间间隔的服务器的状态值,包括 服务器的 CPU 使用率,MEM 内存使用,VMSwap 虚拟内存交换情况,IO 读写情况。

使用 vmstat 可以看到整个机器的 CPU,内存,IO 的使用情况,而不是单单看到各个进程的 CPU 使 用率和内存使用率。 比 top 命令节省资源。

注:当机器运行比较慢时,建议大家使用 vmstat 查看运行状态,不需要使用 top,因 top 使用资源 比较多。

未完待续

Linux系统管理和调优(内存、CPU、磁盘IO、网络)的更多相关文章

  1. 《linux性能及调优指南》 3.5 网络瓶颈

    3.5 Network bottlenecks A performance problem in the network subsystem can be the cause of many prob ...

  2. 《Linux 性能及调优指南》1.5 网络子系统

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  3. linux性能查看调优

    一 linux服务器性能查看1.1 cpu性能查看1.查看物理cpu个数:cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l ...

  4. Linux按照CPU、内存、磁盘IO、网络性能监测

      系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书 ...

  5. Linux按照CPU、内存、磁盘IO、网络性能监测【转载】

    本文转载地址:https://my.oschina.net/chape/blog/159640 系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监 ...

  6. MySQL 优化之 Linux系统层面调优

    MySQL 一般运行于Linux系统中.对于MySQL的调优一般分为Linux操作系统层面的调优和MySQL层面的调优(当然还有架构层面.业务层面.应用程序层面的调优).操作系统主要是管理和分配硬件资 ...

  7. centos linux安全和调优 第四十一节课

    centos  linux安全和调优    第四十一节课 上半节课 Linux安全 下半节课 Linux调优 2015-07-01linux安全和调优 [复制链接]--http://www.apele ...

  8. Linux操作系统性能调优的方法

    http://www.cnblogs.com/L-H-R-X-hehe/p/3963442.html Linux是一套免费使用和自由传播的类Unix操作系统,Linux不同的发行版本和不同的内核对各项 ...

  9. Linux Linux内核参数调优

    Linux内核参数调优 by:授客 QQ:1033553122 关于调优的建议: 1.出错时,可以查看操作系统日志,可能会找到一些有用的信息 2.尽量不要“批量”修改内核参数,笔者就曾这么干过,结果“ ...

随机推荐

  1. Anaconda 安装+使用+换源+更新

    anaconda官网下载安装:https://www.continuum.io/downloads/ anaconda用法:查看已经安装的包:pip list 或者 conda list 安装和更新: ...

  2. 什么是弹性盒子 ( Flex Box)?

    ㈠什么是弹性盒子? 弹性盒子是 CSS3 的一种新的布局模式.引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列.对齐和分配空白空间. 弹性盒子由弹性容器(Flex con ...

  3. Springboot入门实战, 使用@Value

    今天开始最简单的Springboot应用 entity.Book package com.draymonder.amor.entity; import java.util.List; import o ...

  4. PHP 判断当前日期是否是法定节假日或者休息日 (原)

    //判断日期是不是节假日或者双休日接口 @param time [时间(时间戳或者Y-m-d都可)] public function get_type_by_date(){ $t = $_GET['t ...

  5. Android_(控件)Chronometer计时器

    Android Chronometer(计时器) 继承TextView,显示的是某个时间点开始以及之后的时间增加 运行截图 程序结构 package com.example.administrator ...

  6. 6张图解释IO流

    1.字节流InputStream 2.字节流OutputStream 3.字符流Reader 4.字符流Writer 5.节点流 6.处理流 总结: 节点流可以直接连接在数据源上,处理流不可以:节点流 ...

  7. 关于MySQL中查询结果的count和from后的条件与where后的条件对比

    啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦 ...

  8. Django admin 设置和定制

    models 在 models.py 中定义,每个 model 是一个 class: from django.db import models class PerformanceData(models ...

  9. mysql 5.7安装方法

    yum方式安装rpm包形式,安装mysql的方法: 方法一: 使用yum方式,下载后离线安装mysql的安装包 安装前,先使用命令查看,确定系统未安装mysql安装包.彻底清除之前安装的mysql安装 ...

  10. 利用docker启动 wordpress

    网上有很多教程哈,我只是记录自己怎么玩的,没啥教学意义 查看镜像说明的mysql/data目录,方便挂载 [root@docker ~]# docker inspect -f {{.Config.Vo ...