Linux服务器的性能调优理论篇

一、网站架构相关

(1)评估网站性能涉及的专业名词术语

  1.PV(Page View)

  PV即访问量,中文翻译为页面浏览,代表页面浏览量,用户每刷新一次就会计算一次。PV的具体计算方法是:从浏览器发出一个对网络服务器的请求(Request),网络服务器接到这个请求后,会将该请求对应的一个页面(Page)发送给浏览器,从而产生一个PV。

  2.UV(Unique Visto)

  UV即独立访问,访问网站的一台电脑客户端为一个访客,如果按天计算,程序统计会从0:00至24:00这段时间内的电脑客户端,且相同的客户端只被计算一次。

  3.并发连接数(Concurrent TCP Connections)

  当一个网页被浏览,服务器就会和浏览器建立连接,每个连接表示一个并发。如果当前网页页面包含很多图片,图片并不是一个个显示的,服务器会产生多个连接同时发送文字和图片以提高浏览速度。

  4.QPS(Query Per Second)

  QPS即每秒查询率,是衡量一个特定查询服务器在规定时间内所处理流量多少的标准,在因特网上,作为域名系统服务器的机器性能通常用每秒查询率来衡量。对于系统而言,QPS数值是一个非常重要的参数,它是综合反映系统最大吞吐能力的衡量标注。

  5.机房的网络质量评估

    1)稳定性:响应延迟,丢包率

    2)带宽质量:测试TCP的下载速度及最大TCP的下载速率

    3)接入位置:接入路由器设备离骨干网的位置,接入条数越少越好

(2)CDN业务的选项

  如果自己的业务网站中含有大量的图片和视频类文件,为了加快客户端的访问速度,同时缓解核心机房的服务压力并提升用户体验,建议大家在网站或系统的前端采用CDN缓存加速方案。

  CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过现有的Internet中增加一层新的网络架构,讲网站的内容发布到最近用户的网络“边缘”,使用户可就近取得需要的内容,提高用户访问网站的响应速度,从而提升用户体验。

  租赁CDN:中小型网站直接买服务,现在CDN已经进入按需付费的云计算模式,可以准确计算性价比。

  自建CDN:这种方案的成本比较高,为了保证好的缓存效果,必须在全国机房布点,并且需要自建智能Bind系统。一般专业的视频网站或图片网站会考虑采用此方案。

(3)IDC机房的选择

  单电信IDC机房:这种业务模式比较固定,访问量也不是很大,适合新闻类或政务类网站。

  双线IDC机房:因为国内两大网络(电信和网通)之间存在互联互通的问题,所以电信用户访问网通网站或网通用户访问电信网站很慢,也因此产生了双线机房、双线服务器、双线服务器托管和双线服务器租用服务。

  BGP机房:BGP(边界网关协议)是用来连接Internet的对立系统的路由选择协议。对于用户来说,选择BGP机房可以实现网站在运营商的用户访问网站都很快,也更加稳定,不用担心全国各地因线路带来访问速度快慢不一的问题,这也是传统双IP双线机房无法比拟的优势。

  云计算服务:目前首推亚马逊云(AWS)和阿里云这两种云计算平台

  云计算服务提供的产品能让我们的研发团队专注于产品研发本身,而不是购买硬件、配置和维护硬件等繁杂的工作,还可以减少初始资金投入。

  云计算特别适合在某些日期或某些时段流量会激增的网站。

二、如何根据服务器应用来选购服务器

(1)服务器运行什么应用

  负载均衡端:除了网卡性能以外,它在其他方面对服务器的要求都比较低。

  缓存服务器:主要是Varnish和redis,对CPU及其他方面的性能要求一般,但在内存方面的要求较多。

  应用服务器:承担计算和功能实现的重任,所以需要基于Web架构的应用程序服务器选择足够快的服务器。

  特殊应用:除了用于web应用外,还有流媒体视频编码、服务器虚拟化、媒体服务器,或者游戏服务器,那同样会对CPU和内存有一定要求,至少四核以上。

  公共服务:指的是邮件服务器、文件服务器、DNS服务器、域控服务器等。无需对于可靠性过于苛刻。

  数据库服务器:数据库对服务器的要求是最高的,也是最重要的。需要足够快的CPU和足够大的内存、足够稳定可靠的硬件。建议固态硬盘做RAID10,因为数据库对硬盘IO要求是最高的。

  Hadoop和Spark分布式计算:建议选择密集式存储。

  RabbitMQ集群:基于Erlang语言开发,对于内存的要求很高。

(2)服务器需要支持多少用户访问

  一般项目实施之前,客户会针对这些问题作出一个大致的结果,但我们要尽量设计的充分具体。

(3)需要多大空间来存储数据

(4)业务有多重要

  1.选择什么CPU

  2.需要多大的内存

  相当多的正在运行的服务器,CPU的利用率一般10-30%,但我们发现内存的不够导致运行缓慢的比比皆是,如果服务器不能分配足够的内存,应用程序就需要硬盘接口交换读取数据,这将导致网站慢得令人无法忍受。

  对于Tomcat、Resin、WebLogic的应用服务器,8GB内存是基准配置。

  数据库服务器的内存由于数据库实例的数量、表大小、索引、用户数等,一般建议配置16GB以上,一般公司许多项目使用了24GB-48GB的内存。

  特殊的服务器,需要位置配置尽可能高的内存容量,比如配置有Redis和Memcached的缓存服务器。

  文件服务器,1GB内存就足够了。

  3.需要怎样的硬盘存储系统

  缓存服务器,可以考虑RAID 0

  跑Nginx+FastCGI,可以考虑RAID 1

  内网开发服务器或存放重要代码的服务器,可以考虑RAID 5

  数据库服务器,可以考虑固态硬盘或RAID 5 RAID 10

(5)网卡性能方面的考虑

  建议服务器配置两块网卡,一个对外提供服务,一个用于内部数据交换。

  Keepalived只用公网地址的Linux集群架构,对网卡速率要求高,建议选用万兆网卡。

(6)服务器安全方面的考虑

  国内的DDoS攻击普遍,建议配置硬件防火墙,比如Juniper、Cisco等。

(7)根据机架数合理安排服务器的数量

(8)成本考虑:服务器的价格问题

三、硬件对Linux性能的影响

(1)CPU 

  CPU是操作系统稳定运行的根本,CPU的速度与性能在很大程度上决定了整体的性能,因此,CPU数量越多也好、主频也高越好。

(2)内存

  内存的大小直接影响Linux的性能重要因素,内存太小,系统进程被阻塞,应用也将变慢,甚至失去响应。

(3)磁盘IO性能

  磁盘IO性能直接影响应用程序的性能,在一个有频繁读写的应用中,如果磁盘IO性能得不到满足,就会导致应用停滞。

  RAIO 0:成本最低,要求至少两块磁盘,但是没有容错和数据修复,因而用在对数据安全要求不高的环境中。

  RAIO 1:磁盘利用率只有50%,因而成本最高,多用在保存重要数据的场合。

  RAIO 5:读取效率很高,写入效率一般,至少三块磁盘,允许一块磁盘故障,而不影响数据的可用性。

  RAIO 10:至少需要4块磁盘,每个盘都是其镜像盘,提供冗余能力,同时允许一个磁盘故障,而不影响数据可用性,并具有快速读/写能力。

(4)网络带宽

  Linux系统下的各种应用一般都是基于网络的,因此带宽也是影响性能的一个重要因素,低速不稳定的网络将导致应用的访问阻塞,而稳定、高速的网络带宽可以保证应用在网络上畅通无阻运行。

原文地址:https://www.cnblogs.com/hkping18/p/11587952.html

时间: 2024-09-27 16:48:02

Linux服务器的性能调优理论篇的相关文章

Linux服务器常用性能调优工具

Linux服务器的性能往往受到CPU.内存.磁盘I/O.网络带宽等方面的影响,对于每个Linux后台服务器开发人员来说,掌握一些常用的性能调优工具是十分有必要的.下图几乎涵盖了一个系统的方方面面,图中的工具都可称得上是性能调优方面的“瑞士军刀”,短小精干.功能强大. 1.strace 在Linux中,进程不能直接访问硬件设备,当进程需要进行读取磁盘文件,接收网络数据等访问硬件设备 的操作时,必须由用户态模式切换至内核模式,通过系统调用访问硬件设备.strace可用来跟踪程序使用的底层系统调用,可

JVM性能调优1:JVM性能调优理论及实践(收集整理)

本系列包括: JVM性能调优1:JVM性能调优理论及实践(收集整理) JVM性能调优2:JVM性能调优参数整理 JVM性能调优3:JVM_堆溢出分析过程和命令 JVm性能调优4:GC日志分析 JVM性能调优5:Heap堆分析方法 注:本文部分内容收集整理了网上的资料. 1.      内存结构 1.1.     分代结构图 注意: 在JVM中,非堆内存,根据模式不同分为不同的几个部分. -Server下:非堆包括:持久代和代码缓存(Code cache) -client下:非堆包括:持久代.代码

数据库服务器mysql性能调优

mysql性能调优分为4个方面 一.硬件(CPU   内存   硬盘)监控CPU  内存 硬盘的值.[[email protected] ~]# toptop - 03:58:11 up 10:05,  1 user,  load average: 0.00, 0.00, 0.00Tasks: 121 total,   1 running, 120 sleeping,   0 stopped,   0 zombieCpu(s):  0.0%us,  0.7%sy,  0.0%ni, 99.0%i

Spark性能调优——扩展篇

本文要解决的问题: 从更深层次考虑,对Spark进行性能调优. 目的 继基础篇分析了开发调优与资源调优之后,本文作为拓展篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题. 数据倾斜调优 简述 有时候,大家可能会遇到大数据开发过程中一个比较棘手的问题,那就是数据倾斜,此时Spark作业的性能会比预期差很多,数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能. 数据倾斜发生时的现象 绝大多数task执行得都非常快,但个别task执行极慢.

性能调优UI篇(一)——ViewStub

在项目中,我们忙于赶着功能的实现,整个app的性能很差.每个页面加载都卡到不行.暑假马上就要到了,项目组专门安排了一个提升性能的版本.版本还没开始做,我提前在这里记录一下性能调优的一些方法和尝试. 今天学习并尝试的是ViewStub.在app的UI中,我们时常会有一些View是“隐形的”即,我会在xml中给它设置将它的visibility设为gone.只有在特殊情况下,我才会将它显现出来.比如悬浮的Button会在我滑动内容时消失,部分按钮只有有权限的用户才看见等等情况.用View设置visib

基于Linux的WebSphere性能调优与故障诊断

一.关于was数据源等问题的配置 (1)关于was数据源连接池的最大.最小配置多大合适?怎样去计算? (2)关于JVM的配置,64位系统,64位WAS,最值小和最大配置多大最优?怎样去计算? (3)应用服务器线程池,怎么样配置最优? 怎样去计算? (4)linux上安装was完成后,linux必须配置哪些参数,was性能最优?如果不配置的话,性能影响大吗 数据库连接池建议初始化调优10-100.was连接池参数说明及调优V1.0:http://www.webspherechina.net/Doc

linux 多核CPU性能调优

常常感觉系统资源不够用,一台机子上跑了不下3个比较重要的服务,但是每天我们还要在上面进行个备份压缩等处理,网络长时间传输,这在就很影响本就不够用的系统资源: 这个时候我们就可以把一些不太重要的比如copy/备份/同步等工作限定在一颗cpu上,或者是多核的cpu的一颗核心上进行处理,虽然这不一定是最有效的方法,但可以最大程度上利用了有效资源,降低那些不太重要的进程占用cpu资源: 查看系统下cpu信息: cat /proc/cpuinfo taskset就可以帮我们完成这项工作,而且操作非常简单:

linux概念之性能调优

vm

JVM性能调优2:JVM性能调优参数整理

本系列包括: JVM性能调优1:JVM性能调优理论及实践(收集整理) JVM性能调优2:JVM性能调优参数整理 JVM性能调优3:JVM_堆溢出分析过程和命令 JVm性能调优4:GC日志分析 JVM性能调优5:Heap堆分析方法  序号 参数名 说明 JDK 默认值 使用过 1 JVM执行模式 2 -client -server 设置该JVM运行与Client 或者Server Hotspot模式,这两种模式从本质上来说是在JVM中运行不同的JIT(运行时编译模块)代码,并且两者在JVM内部