来看下负载的定义是怎样的:
In UNIX computing, the system load is a measure of the amount of computational work that a computer system performs. The load average represents the average system load over a period of time. It conventionally appears in the form of three numbers which represent the system load during the last one-, five-, and fifteen-minute periods.(wikipedia)
Unix refers to this as the run-queue length: the sum of the number of processes that are currently running plus the number that are waiting (queued) to run.
Free memory is the amount of memory which is currently not used for anything. This number should be small, because memory which is not used is simply wasted.
Available memory is the amount of memory which is available for allocation to a new process or to existing processes。
df
查看磁盘使用情况,通常看磁盘大小和inode使用率:
磁盘性能分析
r/s 和 w/s:每秒磁盘读写的次数。这两个值相加就是 tps。
rkB/s 和 wkB/s:每秒磁盘读写的数据量。
avgrq-sz:平均每次读写磁盘扇区的大小。
avgqu-sze:平均 IO 队列长度。队列长度越短越好。
await:平均每次磁盘读写的等待时间(ms)。
svctm:平均每次磁盘读写的服务时间(ms)。
%util:一秒钟有百分之多少的时间用于磁盘读写操作。
1)%util:衡量 IO 的繁忙程度
这个值越大,说明产生的 IO 请求较多,IO 压力较大,
我们可以结合 %idle 参数来看,如果 %idle <70% 就说明 IO 比较繁忙了。
2)await:衡量 IO 的响应速度
通俗理解,await 就像我们去医院看病排队等待的时间,
这个值和医生的服务速度(svctm)和你前面排队的人数(avgqu-size)有关。
如果 svctm 和 await 接近,说明磁盘 IO 响应时间较快,排队较少,
如果 await 远大于 svctm,说明此时队列太长,响应较慢,
这时可以考虑换性能更好的磁盘。
带宽:表示链路的最大传输速率,单位通常为 b/s (比特 / 秒)
延时:表示从网络请求发出后,一直到收到远端响应,所需要的时间延迟
在不同场景中,这一指标可能会有不同含义
比如,它可以表示,建立连接需要的时间(比如 TCP握手延时)
或一个数据包往返所需的时间(比如 RTT)
PPS:是 Packet Per Second(包 / 秒)的缩写,表示以网络包为单位的传输速率�丢包率:丢包百分比
重传率:重新传输的网络包比例
连接数状态:TCP 各状态连接数量
TIME_WAIT状态存在有两个原因。
第一个是防止来自一个连接的延迟段被误解为后续连接的一部分。
连接处于2MSL等待状态时到达的所有流量都将被丢弃。
该TIME_WAIT状态的第二个原因是
可靠地实现TCP的全双工连接终止。
如果最后的ACK被丢弃,那么端点2将重新发送最后的FIN
单机最大连接数理论限制
系统用一个4四元组来唯一标识一个TCP连接: �{local ip, local port, remote ip, remote port}。 �
因此本地端口个数最大只有65536,端口0有特殊含义,不能使用,
这样可用端口最多只有65535,
所以在全部作为client端的情况下,
最大tcp连接数为65535,这些连接可以连到不同的server ip
1、系统最大打开文件数
sys.fs.files.max//系统最大文件句柄数
/proc/sys/fs/file-max
2、单进程最大文件描述符
echo 2000000 >/proc/sys/fs/nr_open
sysctl -w fs.nr_open=100000000
3、某个用户下的某个进程的文件打开数
ulimit –n [num]
ulimit -n unlimited
/etc/security/limits.conf
worker soft nofile 102400
worker hard nofile 409600
linux内核通过进程标识值(process identification value)-PID来标示进程,
PID是一个数,类型位pid_t, 实际上就是int类型
查看
可以使用cat /proc/sys/kernel/pid_max来查看系统中可创建的进程数实际值
修改
1、ulimit -u 65535
2、我们在Linux还需要设置内核参数kernel.pid_maxsysctl -w kernel.pid_max=65535
这里有许多你只需要做简单的操作就能对提高服务器的性能有所帮助。所有的这些都不可能对移动页文件到一个指定磁盘有什么异常情况发生,尽管大多数的操作需要手动完成,但是这些所有的技巧都能够显著地提高服务器的性能。
大多数讨论关于优化服务器性能的文章都会集中在使用性能监视器来寻找性能瓶颈问题。性能监视器对于如何提高服务器性能来说,确实是一个优秀的工具。但是,使用性能监视器,是需要用户必须了解性能监视器中产生的数据都是些什么意思。
那么,这里有十项能够帮助你做提高服务器性能的事情
1.为页文件使用专用磁盘
这项技巧可能是最大限度的提高你服务器性能的方法。默认情况下,Windows创建一个页文件,将它作为虚拟内存。因为Windows会频繁的使用这个文件。这个文件最好的存储位置就是在一个专门磁盘上(注意:不是单独卷)。服务器性能做这些会确保Windows在读取页文件数据前,而将不需等待其他的应用使用硬盘完成。
2.保证你的硬盘定期运行磁盘碎片整理程序服务器性能
现今的磁盘在执行连续不断的读取时,其实是很快的。然而,当磁盘被请求去读取散乱存放的数据时,Windows的性能就会下降。通过运行磁盘碎片整理程序,你能够确保文件能以顺序的方式而不是杂乱无章的存放在磁盘上,从而,你的计算机将会高效地读取文件。
3.使用NTFS文件系统
尽管对于Windows服务器版本操作系统来说,NTFS是默认的文件系统,Windows是支持使用FAT和FAT-32文件系统的。我读过的每一本MSCE培训教程推荐使用NTFS文件系统是因为它比FAT和FAT-32文件系统使用中更安全。服务器性能但是这些书籍中都没有提及NTFS是一种基于处理(transaction-based)的文件系统。这就意味着相比较FAT和FAT-32文件系统而言,NTFS文件系统更快。
4.避免运行16-位应用
64位Windows操作系统根本不能够运行16位应用,所以说这一项对于64位操作系统来说并不是个问题。但是,32位Windows操作系统将会运行16位应用。使用多任务处理模式的Windows更多的使用16位应用。服务器性能讨论Windows的多任务处理使用16位应用将需要单独开篇说明,但是可以确定的说,运行16位应用会对降低性能。
5.查找内存泄漏(memory leaks)
内存泄漏很难被写成是一个应用上的问题。通常情况下,它会为一个应用去在一个需要的基础上请求操作系统中的内存。典型的是,当应用不再被运行时,它将会把内存释放给操作系统。如果一个应用包括了一个内存泄漏,当它被运行时,将会向内存发出请求,但是当使用完毕后,释放内存是失败的。服务器性能当下一次应用需要内存时,它将会向Windows要求的内存数比上一次要多。长此以往,Windows能够为其他的应用提供的内存数将会越来越少。
最初,内存泄漏对系统性能的影响是可以忽略不计的,但是当这样的泄漏变得越来越多的时候,它对系统性能的影响就会凸现出来。
尽管我曾经说过我不会在这篇文章中讨论性能监控器,但是对于查找内存泄漏来说,性能监控器是最佳工具。
6.移除那些极少使用的组件
我曾经购买的每一台服务器上都会装上各种各样的监控或者日志组件。如果你能够有计划有规律的使用这些组件的话,在计算机上安装这些组件算不得什么不正确的选择。服务器性能但是令我吃惊的是有很多系统管理员安装(或者从不移除)那些服务器上的组件,并且实际上除了浪费系统资源外,它们甚至从来没被运行过。
7.停止运行那些不使用的服务
在一篇类似的文章中,我也推荐浏览服务控制管理器,并关闭那些没有被用到的服务。这样不但能够提高我们的服务器性能,另外它也可以提高服务器的安全性。计算机有一条法则描述了被执行的代码越多,代码中包含的不安全因素的机会就会增多。通过关闭那些不使用的服务,你做得即是减少执行代码的大小,从而降低服务器包含的安全漏洞被利用的机会。
8.注销
这是另一个你能够提高服务器安全和性能的方法。当你不再使用控制台的时候,出于安全原因考虑,你应该进行注销操作。服务器性能 同时,在你登陆时,Windows将会加载你的用户属性,这将会消耗内存和CPU。
9.压缩磁盘
当微软发布MS-DOS5.0时,它们介绍了其磁盘压缩的特色功能。当时的情况是让硬盘或者软盘能够通过压缩功能存储更多的数据。当我试着使用磁盘压缩技术,这时,我的计算机运行就慢了下来,我就改回使用一个没有压缩的磁盘,并且直到最近再没有使用过压缩。
现在,在正常的情况下,压缩确实能够提高系统性能。在一台计算机中,硬盘算得上是运行最慢的部分了。然而,如果你能够压缩一个文件,你就是减少了它的物理大小,这也将会减少从硬盘中读取它的时间量。
同时,一个压缩文件必须在它从磁盘读取后被解压。解压操作通常是占用内存,并且进程会附带的使用一些CPU时间。如果你的服务器运行一个磁盘加强的应用来解决大量的分散文件(不是一个数据库),执行压缩能够提高系统性能。
10.调整服务器响应
与个人计算机不同的是服务器并不总是从服务器的控制台那里运行应用。那么,最优化服务器是将获得优先权的应用到后台执行。
你可以通过打开服务器的控制面板,并双击系统图标。当窗口中显示系统属性标签时,转到“高级”标签项,找到性能设置部分,并点击设置按钮。窗口中将会显示性能选项属性标签。转到属性标签中的高级选项,并确定服务器设置为后台服务的最佳性能。
望采纳服务器的性能新能判定可以考虑从以下几点来看看:
1、服务器的处理器,包括CPU型号和核心数
服务器的处理器决定服务器的运算速度,因此,对于服务器选取应该根据具体的业务场景来选取,处理运算能力越强的服务器对应的价格也是越来越贵。选取时候可以根据业务实际环境需求,先选择能差不多满足的就好,后续有需求在升级配置就可,现在服务器中弹性云服务器就非常针对性满足这类需求。
2、服务器的内存
服务器内存大小决定着多负载多任务的处理能力,可以适当结合实际情况选取
3、服务器的宽带
宽带大小影响这站点内容的下载速度与在考虑储存分离时候【将样式文件、图片、css等放在对象存储服务 OBS中的时候可以适当降低在服务器的宽带大小】
考虑到业务成长性,可以考虑直接以服务器+对象储存服务+云数据库+CDN模式,增强业务容灾能力和用户体验
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)