`
huoyanxueren
  • 浏览: 39815 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Linux服务器性能小结

阅读更多

一、服务器性能因素   

 

 1、CPU 2、内存  3、磁盘I/O带宽  4、网络I/O带宽

 

Load:

系统负载指运行队列的平均长度,也就是等待CPU的平均进程数。Load越高说明系统响应越慢,如果load是0,代表进程不需要等待,立刻就能获得cpu运行。可以通过查询文件/proc/loadavg获取系统在前一分钟、前五分钟和前十五分钟的平均负载以及当前运行的进程、系统的进程数和上一次调度运行的进程。

justin@junjun:/proc$ cat/proc/loadavg

0.71 0.70 0.63 1/403 5111

在linux系统中,也可直接通过命令行 “w”或者“uptime”查看,如下:

16:10:22 up 1 day, 4:18,  3 users,  load average: 0.34, 0.50, 0.52

USER     TTY      FROM              LOGIN@  IDLE   JCPU   PCPU WHAT

justin   tty7     :0               Tue11   28:19m 10:15   0.22s gnome-session

justin   pts/0    :0.0             Tue11   28:17m 2:22   0.00s /bin/bash./jettyctl.sh

justin   pts/1    :0.0             16:08    0.00s 0.17s  0.00s w

 

cpu usage:

系统的CPU使用率。

可以用“top”命令动态的显示当前系统进程用户的使用情况。


 

前五行是系统整体的统计信息。

第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:当前时间;系统运行时间,格式为时:分;当前登录用户数;系统负载,即任务队列的平均长度。

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。

内容如下:Tasks: 175 total进程总数;1 running正在运行的进程数;174 sleeping睡眠的进程数;0 stopped停止的进程数;0 zombie僵尸进程数

Cpu(s):22.0% us用户空间占用CPU百分比

20.7%sy内核空间占用CPU百分比

1.1%ni用户进程空间内改变过优先级的进程占用CPU百分比

52.7%id空闲CPU百分比

3.3%wa等待输入输出的CPU时间百分比

0.0%hi

0.2%si swap in,表示虚拟内存的页导入,即从SWAPDISK交换到RAM

0.0%st swap out,表示虚拟内存的页导出,即从RAM交换到SWAPDISK。

 

PR:操作系统给进程的安排的优先级。这个值标示进程调度器分配给进程的时间片长度。单位是时钟个数。如果一个Linux系统的时间片是10ms,那么PID是2718的进程在执行了200ms后,才会进行进程切换。 

RES:进程占用的物理内存大小             

VIRT:物理内存+虚拟内存。

                                                                        

吞吐率:

服务器单位时间内处理的请求数,一般用来描述并发能力,当然谈吞吐率的前提是并发用户数。不同的并发用户数下,吞吐率自然大不相同。单位是“请求数 /秒”。吞吐量分为网络吞吐量和事务吞吐量,当作为事务吞吐量时,采用TPS来衡量。目前线上环境Apache没有mod_status模块,不能很方便的查询。

 

TPS:

服务器每秒处理的事务数。PV在性能测试中的表现形式是以TPS来体现的,两者有一个转换公式,如下:

TPS平均值 =((PV*80%)/(24*60*60*40%))/服务器数量 =  pv/s

TPS峰值 =(((PV*80%)/(24*60*60*40%))*1.6) /服务器数量=  pv/s ,这个和我们经常说的“2-8原则”贴近。

 

二、系统性能评估参考标准


影响性能因素

评判标准

糟糕

CPU

user% + sys%< 70%

user% + sys%= 85%

user% + sys% >=90%

内存

Swap In(si)=0

Swap Out(so)=0

Per CPU with 10 page/s

More Swap In & Swap Out

磁盘

iowait % < 20%

iowait % =35%

iowait % >= 50%

 

 

 

三、性能分析工具和命令

 

1.常用系统命令

vmstat、sar、iostat、netstat、free、ps、top等

 

2.常用组合方式

•           用vmstat、sar、iostat检测是否是CPU瓶颈

•           用free、vmstat检测是否是内存瓶颈

•           用iostat检测是否是磁盘I/O瓶颈

•           用netstat检测是否是网络带宽瓶颈

 

3、用工具进行分析

 

Ø  Vmstat



 

列表含义:

Procs

     r:运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPU。

     b:在等待资源的进程数,比如正在等待I/O、或者内存交换等。

Memory

     swpd: 虚拟内存使用情况,单位:KB

     free: 空闲的内存,单位KB

     buff: 被用来做为缓存的内存数,一般对块设备的读写才需要缓冲,单位:KB

     cache:表示page cached的内存数量,一般作为文件系统cached,频繁访问的文件都会被cached,如果cache值较大,说明cached的文件数较多,如果此时IO中bi比较小,说明文件系统效率比较好。

Swap

     si: 从磁盘交换到内存的交换页数量,单位:KB/秒

 

     so: 从内存交换到磁盘的交换页数量,单位:KB/秒

I/O

     bi: 发送到块设备的块数,单位:块/秒

     bo: 从块设备接收到的块数,单位:块/秒

System

      in: 每秒的中断数,包括时钟中断

      cs: 每秒的环境(上下文)切换次数

注意:如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。

          如果si,so 长期不等于0,表示内存不足。

          如果disk 经常不等于0, 且在 b中的队列大于3, 表示 io性能不好。

cpu

    us:用户进程消耗的CPU 时间百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法。

     sy:内核进程消耗的CPU时间百分比。Sy的值较高时,说明内核消耗的CPU资源很多。

根据经验,us+sy的参考值为70%,如果us+sy大于 70%说明可能存在CPU资源不足。

 

Ø  Sar分析cpu性能



 

命令行 sar -u 1 4,结果

列表说明:

%user:用户进程消耗的CPU 时间百分比。

%nice:运行正常进程所消耗的CPU 时间百分比。

%system:系统进程消耗的CPU时间百分比。

%iowaitIO:等待所占用的CPU时间百分比。

%steal:在内存相对紧张的环境下, 被强制等待(involuntary wait)虚拟CPU的时间

%idle:CPU处在空闲状态的时间百分比。

 

具体参考LinuxCPU利用率计算原理及内核实现( http://ilinuxkernel.com/?p=333)

 

Ø  Free评估内存性能



 

这个指标跟Dragoon的memory  usage完全一致。

 

Ø  I/O性能评估

l  iostat命令



 

各列含义:

tps平均每秒钟的IO请求次数

Blk_read/s表示每秒读取的数据块数。

Blk_wrtn/s表示每秒写入的数据块数。

Blk_read表示读取的所有块数。

Blk_wrtn表示写入的所有块数。

如果Blk_wrtn/s值很大,表示磁盘的写操作很频繁,可以考虑优化磁盘或者优化程序,如果Blk_read/s值很大,表示磁盘直接读取操作很多,可以将读取的数据放入内存中进行操作。

对于这两个选项的值没有一个固定的大小,根据系统应用的不同,会有不同的值,但是有一个规则还是可以遵循的:长期的、超大的数据读写,肯定是不正常的,这种情况一定会影响系统性能。

 

Ø  网络性能评估

l  netstat -antl  查看所有tcp status



 

注意:可以通过netstat查看是否timewait过多的情况,导致端口不够用,在短连接服务中且大并发情况下,要不系统的 net.ipv4.tcp_tw_reuse、net.ipv4.tcp_tw_recycle两个选项打开,允许端口重用。具体这两个属性如何用,移步线上/etc/sysctl.conf文件配置,有注释。

 

Ø  sar查看网卡性能



 

各列含义:

IFACELAN接口

rxpck/s每秒钟接收的数据包

txpck/s每秒钟发送的数据包

rxbyt/s每秒钟接收的字节数

txbyt/s每秒钟发送的字节数

rxcmp/s每秒钟接收的压缩数据包

txcmp/s每秒钟发送的压缩数据包

rxmcst/s每秒钟接收的多播数据包

其实中间的IFACELAN bond0是虚拟设备。在RH中,多个物理网卡帮定为一个逻辑bonding设备,通过把多个物理网卡帮定为一个逻辑设备,可以实现增加带宽吞吐量,提供冗余。

 

参考文档

 

如何进行虚拟化和模式选择,请参考下面两篇文章。

RHLinux下双网卡bondinghttp://www.douban.com/group/topic/2537474/

linuxbonding实现冗余和负载均衡http://hi.baidu.com/nan5715077/blog/item/0cedf2247c06ac2cd5074246.html

 

sar是一个优秀的一般性能监视工具,它可以输出Linux所完成的几乎所有工作的数据.

参考文献:http://hi.baidu.com/colddloc/blog/item/d63e16fd6965cc1109244d94.html

  • 大小: 46.2 KB
  • 大小: 19.3 KB
  • 大小: 28.4 KB
  • 大小: 15.3 KB
  • 大小: 17.2 KB
  • 大小: 23.9 KB
  • 大小: 50 KB
3
6
分享到:
评论

相关推荐

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等...

    IBM服务器安装小结(linux9.0版本)汇编.pdf

    在IBM服务器安装Linux 9.0的过程中,有多个关键步骤需要遵循,以确保系统的正确配置和稳定运行。以下是对这些步骤的详细说明...在安装完成后,进行必要的系统优化和性能测试,以确保服务器能够满足业务需求并稳定运行。

    linux epoll用法小结

    Linux中的epoll是一种高效、可扩展的I/O多路复用技术,主要用于处理大量并发连接。...通过边缘触发和水平触发模式,epoll提供了灵活的事件处理策略,配合高效的内核数据结构,使得它成为现代Linux服务器开发的首选。

    实用全面的linux教程大全

    Linux_系统维护命令小结.ppt Linux下的CPU利用率计算原理详解.docx Linux操作系统中内存buffer和cache的区别.docx Linux服务器环境搭建(设置).pdf linux简明维护手册.pdf Linux系统命令及其使用详解.doc Linux系统...

    linux学习小结笔记

    同时,Linux 在各种硬件平台上表现出优秀的性能,尤其在服务器领域广受欢迎。 5. 可移植性:Linux 内核设计灵活,可以适应各种不同的硬件平台,从嵌入式设备到超级计算机,Linux 都能运行自如。 在Linux系统中,...

    linuxubuntu下apache服务器的搭建.pdf

    四、 小结 本文详细介绍了在 Ubuntu 下搭建 Apache 服务器的步骤,包括安装前的准备工作、实施搭建的步骤、测试 Apache 服务器和测试 PHP 环境等内容。搭建 Apache 服务器可以为动态网站或者服务器提供强大的 Web ...

    linux网络编程详解.pdf

    - **小结**:总结网络协议的重要性及其对网络通信的影响。 #### 七、Berkeley套接字 - **引言**:简要介绍Berkeley套接字的概念及其重要性。 - **概述**: - **Socket的历史**:回顾Berkeley套接字的发展历程。 ...

    Linux性能監控

    #### 四、小结 Sysstat是一套极其有用的工具集合,可以帮助我们有效地监控Linux系统的性能。通过对这些工具的合理利用,不仅可以提高系统的稳定性和响应速度,还可以帮助我们在出现问题时迅速定位并解决问题。通过...

    RED HAT LINUX 6大全

    11.4.3 缓冲服务器小结 206 11.5 重要的DNS事实和概念 206 11.5.1 DNS客户和服务器截然不同 206 11.5.2 DNS术语 206 11.5.3 DNS将名字映射到IP地址及反 序操作 207 11.5.4 前区和反区必须保持同步 207 11.5.5 HUP...

    linux下squid服务器的配置与管理收集.pdf

    五、实验小结 在实验过程中,可能会遇到DNS配置问题,确保DNS服务器与外网段在同一网段,以正确解析域名。通过这个实验,可以深入理解代理服务器的工作原理,提升网络管理技能,并为后续实验奠定基础。 总之,Squid...

    Weblogic linux 下创建域步骤.doc

    小结 至此,我们已经成功创建了 Weblogic 域,并配置了相关的环境变量。现在可以启动 Weblogic 服务器,并部署应用程序了。 优点 使用 Weblogic 服务器可以构建高性能、可扩展的企业级应用程序。Weblogic 服务器...

    高性能高并发服务器架构大全

    2.4 网络层架构小结 214 3.1 第四层交换简介 214 3.2 硬件实现 215 3.3 软件实现 215  网站架构的高性能和可扩展性 233  资料收集:高并发 高性能 高扩展性 Web 2.0 站点架构设计及优化策略 243  ...

    linux课程的ppt

    Linux是一种自由和开放源代码的操作系统,其核心设计理念是模块化和可移植性,使得它能在各种硬件平台上运行,从小型嵌入式设备到大型服务器集群。 Linux课程通常涵盖以下几个关键知识点: 1. **Linux历史与哲学**...

    Linux环境数据库管理员指南

    1.8 小结 13 1.9 常见问答 13 第2章 Red Hat Linux基本安装 16 2.1 引言 16 2.1.1 物理上独立的机器 16 2.1.2 选择 Linux分发包 16 2.2 初步的安装决定 17 2.2.1 硬件 17 2.2.2 多CPU 17 2.2.3 RAM 17 2.2.4 磁盘 17...

    ARM v5,v6,v7小结

    ARM架构广泛应用于移动设备、嵌入式系统以及部分服务器领域。它以其低功耗、高性能和低成本的特点而闻名。ARM处理器采用不同的版本来表示其架构的不同发展阶段。 #### ARM v5 架构 - **ARM7系列** - **特点**:...

    Linux方向电子书

    本资源集合包括三本电子书:“Linux高性能服务器编程”、“Linux文件系统详解”和“Linux知识小结”,旨在深入理解Linux的核心概念、优化技巧以及实际应用。 《Linux高性能服务器编程》这本书主要探讨了如何利用...

    Linux系统监控工具

    通过合理地运用这些工具,系统管理员能够更加有效地监控和管理Linux服务器的性能,及时发现并解决问题。在未来的学习和实践中,希望读者能够探索更多其他的监控工具,不断丰富自己的技能库,提高工作效率。 通过...

Global site tag (gtag.js) - Google Analytics