基于linux服务器的性能分析与优化(一)

平时一直用linux服务器,有时候做性能测试,不懂怎么发现性能瓶颈,知道了性能问题后又不懂怎么优化,就找了本书开始学习。下面就是学习过程中的随笔记录。


首先看的是《高性能linux服务器构建实战》。


10.1 系统性能分析的目的

10.1.1  找到系统性能的瓶颈

系统的性能是指操作系统完成任务的有效性、稳定性和响应速度。


10.1.2 提供性能优化方案

10.1.3 使系统硬件和软件资源的使用达到平衡

性能优化的最终目的是:在一定范围内使系统的各项资源使用区域合理并保持一定的平衡。

任何一项资源的过度使用都会破坏这种平衡,从而导致系统响应过慢或者负载过高。

例如,CPU资源的过度使用,会造成系统中出现大量的等待进程,导致应用程序响应缓慢,而进程的大量增加又会导致系统内存资源的增加,当物理内存耗尽时,系统会使用虚拟内存,而虚拟内存的使用又会造成磁盘IO的增加并加大CPU的开销。


10.3 影响Linux性能的各种因素

10.3.1 系统硬件资源

1. CPU

目前大部分CPU在同一时间只能运行一个线程,超线程的处理器可以在同一时间处理多个线程,因此可以利用超线程特性提高系统性能。

在linux系统下只有运行SMP内核才能支持超线程,但是安装的CPu数量越多,从超线程获得的性能提升越少。

另外linux内核会将多核的处理器当做多个单独的CPU来识别,例如,两个4核的CPU会被当成8个单个CPU,从性能角度讲,两个4核的CPU整体性能要比8个单核CPU低25%-30%。

可能出现CPU瓶颈的应用有邮件服务器、动态web服务器等。

2. 内存

内存太小,系统进程将被阻塞,应用也将变得缓慢,甚至失去响应;内存太大,导致资源浪费。

虚拟内存可以缓解物理内存的不足,但是虚拟内存的过多占用会导致应用程序的性能明显下降。

在一个32位处理器的linux系统中超过8GB的物理内存都将被浪费,因此要使用更大的内存,建议安装64位的操作系统,同时开启linux的大内存内核支持。

由于处理器寻址范围的限制,在32位linux操作系统上,应用程序单个进程最大只能使用2GB的内存。

可能出现内存瓶颈的有打印服务器、数据库服务器、静态web服务器等。

3. 磁盘IO性能

磁盘RAID技术,Redundant Array of Independent Disk,即独立磁盘冗余阵列,简称磁盘阵列。

RAID通过将多块独立的磁盘(物理硬盘)按不同的方式组合起来形成一个磁盘组(逻辑硬盘),从而提供比单个磁盘更高的IO性能和数据冗余。

根据磁盘组合方式不同,分为RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6、RAID7、RAID0+1、RAID10等,常用的有RAID0、RAID1、RAID5、RAID0+1。

RAID0:通过把多块硬盘粘合成一个容量更大的硬盘组,提高磁盘的性能和吞吐量,成本低,至少两块磁盘,但是没有容错和数据修复功能,只能用在对数据安全性要求不高的环境中。

RAID1:也就是磁盘镜像,通过把一个磁盘的数据镜像到另外一个磁盘上,最大限度的保证磁盘数据的可靠性和可修改性,具有很高的数据冗余能力,但是磁盘利用率只有50%,成本较高,多用在保存重要数据的场合。

RAID5:磁盘分段加奇偶校验技术,提高了系统的可靠性。读出效率很高,写效率一般,至少需要3块磁盘,允许一块磁盘故障,不影响数据的可用性。

RAID0+1:把RAID0和RAID1技术结合起来,至少需要4块硬盘,每个盘都有其镜像盘,提高全冗余能力,并具有快速读写能力。

4.网络带宽


10.3.2 操作系统相关资源

1. 系统安装优化

当安装linux系统时,磁盘划分、SWAP内存的分配都直接影响系统性能。

对于虚拟内存SWAP的设定,现在已经没有了所谓虚拟内存是物理内存两倍的要求,但是根据经验,如果内存较小(物理内存小于4GB),一般设置SWAP交换分区大小为内存的2倍;如果物理内存大约4GB小于16GB,可以设置SWAP大小等于或者略小于物理内存即可;如果内存在16GB以上,原则上可以设置SWAP为0,但最好设置一定大小的SWAP

2. 内核参数优化

例如,如果系统部署的oracle数据库应用,那么就需要对系统共享内存段(kernel.shmmax, kenerl.shmmni, kernel.shmall)、系统信号量(kernel.sem)、文件句柄(fs.file0max)等参数进行优化设置;如果部署的WEB应用,那么就需要根据web应用特性进行网络参数的优化,例如修改net.ipv4.ip_local_port_range、net.ipv4.tc_tw_reuse、net.core.somaxconn等网络内核参数

3. 文件系统优化

在linux下可选的文件系统有ext2,、ext3、xfs、ReiserFS

linux标准文件系统是从VFS开始,然后ext、ext2,ext2是linux上的标准文件系统,ext3是在ext2基础上增加日志形成的。

从VFS到ext3,设计思想没有太大变化,都是早期UNIX家族基于超级块和inode的设计理念设计而成。

XFS文件系统是SGI开发的一个高级日志文件系统,通过分布处理磁盘请求、定位数据、保持cache的一致性来提供对文件系统数据的低延迟、高带宽的访问,因此XFS极具伸缩性,非常健壮,具有优秀的日志记录功能、可扩展性强、快速写入等优点。

ReiserFS在Hans Reiser领导下开发出来的一款高性能的日志文件系统,通过完全平衡树来管理数据,包括文件数据、文件名及日志支持等。与ext2、ext3相比,最大的优点是访问性能和安全性大幅提升。具有高效、合理利用磁盘空间,先将的日志管理机制,特意的搜寻方式,海量磁盘存储等优点。


10.4 系统性分析标准和优化原则

CPU

好: user%+sys%<70%

坏: user%+sys%=85%

糟糕: user%+sys%>=90%


内存

好:SwapIn(si) = 0 SwapOut(so) = 0

坏:Per CPU with 10page/s

糟糕:more swap In & swap out


磁盘

好:iowait%<20%

坏:iowait% = 35%

糟糕:iowait%>=50%


其中

user%表示CPU处在用户模式下的时间百分比

sys%表示CPU处在系统模式下的时间百分比

iowait%表示CPU等待输入输出完成时间的百分比

swap in表示虚拟内存的页导入,从SWAP DISK交换到RAM

swap out表示虚拟内存的页导出,从RAM交换到SWAP DISK



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux性能服务器项目是一个基于Linux操作系统的服务器项目,旨在提供高性能、高可靠性、高安全性的服务器解决方案。该项目采用了先进的技术和优化策略,可以满足各种规模和需求的企业和个人用户的需求。该项目的特点包括高效的资源利用、可扩展性强、易于管理和维护等。同时,该项目还提供了丰富的应用程序和工具,可以满足用户的各种需求。 ### 回答2: Linux性能服务器项目是针对构建高性能服务器应用程序而开发的一种工具集,主要用于解决服务器应用程序对高并发、高扩展性和高可用性的需求。 在传统的服务器应用程序开发中,常常会使用C/C++等语言开发,但是由于这些语言的代码效率低下、开发效率较低等问题,在高并发、高扩展性和高可用性的需求下表现不尽如人意。因此,Linux性能服务器项目通过提供针对Linux操作系统的高性能应用程序开发框架和工具集,使开发人员可以更高效地构建高性能服务器应用程序。 Linux性能服务器项目包括众多开源工具和库,如Nginx、Redis、Mysql、Postgresql、Apache、Tomcat、Memcached等。这些工具和库可以在Linux下构建高性能服务器应用程序,并支持高并发、高扩展性和高可用性。 其中,Nginx是最为著名的Linux性能服务器应用程序开发工具之一,其采用事件驱动、非阻塞I/O等高效构架,能够提供高并发、高吞吐量和低内存消耗等特点。Nginx同时支持多种反向代理、负载均衡和缓存等功能,在大规模网站和高并发访问场景下表现尤为突出。 另外,在Linux性能服务器项目中,Mysql和Postgresql是两个重要的关系型数据库软件,它们可以提供高效的数据访问和管理功能,而Redis和Memcached则是两个重要的缓存软件,能够提供高速缓存和分布式缓存等功能,从而进一步提高服务器性能。 总之,Linux性能服务器项目是一个完整的工具集,支持开发人员构建高性能、高可用和高扩展性的服务器应用程序,有助于提高网站和应用的性能和用户体验。 ### 回答3: Linux性能服务器项目是指基于Linux系统开发、优化和部署的高性能服务器系统。随着互联网和移动互联网的发展,海量数据的处理和高并发的请求成为了许多企业必须面对的问题。而Linux作为一种自由开放的操作系统,在服务器领域有着广泛的应用,并且具备高度的可定制性和实时性,因此成为了众多企业构建高性能服务器系统的首选。 Linux性能服务器项目的核心是系统优化,包括系统内核优化、网络配置优化、磁盘IO优化、内存管理优化等,通过这些手段提升系统的性能和稳定性,进一步提高服务器的吞吐量和并发处理能力。在系统优化的基础上,还需要根据不同的应用场景进行架构设计和开发,构建高可靠、高可扩展、低延迟的服务器系统。 在实际项目中,Linux性能服务器系统往往需要承载大量的用户请求和数据处理任务,因此需要具备高度的稳定性和可靠性。在系统架构上需要采用分布式集群架构,通过负载均衡、故障切换等手段提高系统的可用性和可靠性。同时,还需要采用自动化运维工具,对系统进行监控、调优和故障处理,提高系统运维效率和问题响应速度。 总之,Linux性能服务器项目是一项综合性工程,需要多方面的知识和技能。但是相信随着技术的不断发展和应用的不断拓展,Linux性能服务器系统将会在越来越多的领域得到应用,并且发挥更加重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值