系统管理

Author:Rich七哥

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

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

CPU Memory IO Network

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

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

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

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

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

查看 CPU 负载相关工具

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

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

方法 1:使用 top 命令

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

结果如下

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

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

查看 Memory 运行状态相关工具

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

free -h
total
used
free
shared
buff/cache
available
Mem:
976M
291M
156M
7.3M
527M
479M
Swap:
2.0G
0B
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

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

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

磁盘IO

  • I/O 调优相关查看工具
[root@harry63 ~]# tune2fs -l /dev/sda1 | grep size
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
Block size: 1024 # 为 1 个字节 。 一个扇区 512 字节。 RHEL 7
[root@harry63 ~]# xfs_growfs -l /dev/sda1 |grep bsize
data = bsize=4096 blocks=51200, imaxpct=25 naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2

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

这时系统的瓶颈在哪里?

硬盘

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

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

[root@harry63 ~]# yum install -y iotop

例:
[root@harry63 ~]# iotop -o -d 1 #显示正在使用磁盘的进程 在另一个终端对磁盘进行大量读操作,执行: 选项:
-o:只显示有 io 操作的进程
-b:批量显示,无交互,主要用作记录到文件。
-n NUM:显示 NUM 次,主要用于非交互式模式。
-d SEC:间隔 SEC 秒显示一次。
-p PID:监控的进程 pid。
-u USER:监控的进程用户 iotop 常用快捷键:
<- / ->:左右箭头:改变排序方式,默认是按 IO 排序。
r:改变排序顺序。 o:只显示有 IO 输出的进程。 p:进程/线程的显示方式的切换。 a:显示累积使用量。
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. 【MongoDB系列】简介、安装、基本操作命令

    文章内容概述: 1.MongoDB介绍 2.MongoDB安装(windows及Linux) 3.MongoDB基本操作命令 MongoDB介绍: MongoDB 是一个基于分布式文件存储的数据库.由 ...

  2. linux中more命令如何使用

         more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上.兄弟连Linux培训教程() more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(sp ...

  3. Markdown 标记语言指北

    这是班刊约稿的一篇文章. 全文约6000字, 预计需要 60 分钟读完. Markdown 标记语言指北 TOC 什么是 Markdown? Markdown 可以用来干什么? 第一步? 一些专业一点 ...

  4. Trie树(字典树)整理

    字典树 (Trie) 用于存储字符串.树的每条边恰好表示一个字符,每个节点代表从根到该节点的路径所对应的字符串. 简介与操作实现可见蓝书P82~83. Trie字典树很好地利用了前缀,节省了很多空间. ...

  5. HDU 2829 [Lawrence] DP斜率优化

    解题思路 首先肯定是考虑如何快速求出一段铁路的价值. \[ \sum_{i=1}^k \sum_{j=1, j\neq i}^kA[i]A[j]=(\sum_{i=1}^kA[i])^2-\sum_{ ...

  6. php正则表达式的学习

    真的发现什么都需要这个 所以还是来把它学了吧 正则表达式的基本知识汇总 行定位符(^与$) 行定位符是用来描述字符串的边界.“$”表示行结尾“^”表示行开始如"^de",表示以de ...

  7. EL表达式里面不能直接使用list.size()得到长度,

    在jsp页面中不能通过${list.size}取列表长度, 而是 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" pre ...

  8. mysql 查询每个分组的前几名

    按分组排序,并查出每个分组的前3名 单表 SELECT * FROM ( SELECT ZONEID, uid, NAME, fight, IF ( , ) AS rank, ( @zone := z ...

  9. 剑指offer31----栈的压入、弹出序列

    题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对 ...

  10. 一、linux下nginx1.7.8+php5.6.3的环境配置

    部分参考:http://www.cnblogs.com/simpman/p/4151662.html http://blog.zyan.cc/nginx_php_v6 1.利用linux系统自带的yu ...