Linux系统性能与调优(未完)
Posted wangchengshi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统性能与调优(未完)相关的知识,希望对你有一定的参考价值。
一、基本概念
QPS:query per second, 1秒内完成的请求数
RT:response time, 1个请求完成的时间
Throughput越大,Latency会越差。因为请求量过大,系统太繁忙,所以响应速度自然会低
Latency越好,能支持的Throughput就会越高。因为Latency短说明处理速度快,于是就可以处理更多的请求
最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量
线程过多,时间消耗长,并不是说代码执行效率下降了,而是资源的竞争,导致线程等待的时间上升了,线程越多消耗内存越多,过多的线程直接将系统内存消耗殆尽
平均响应时间 = (并发线程数/最佳线程数) * 最佳线程数的响应时间
总QPS=线程数*单个线程的QPS
二、系统调优的目的
(1)调优的目的是高效地使用资源,尽可能地使用最多的资源,从而提高性能
(2)任何资源都要查看是资源使用率满了,还是没有高效使用资源
例如CPU使用率高,是因为算法问题(死循环,低效算法),还是因为程序本身就需要这么多CPU。如果CPU使用率低,则查看是因为资源等待还是线性操作。
又如I/O,wa低下,也有可能I/O的问题(当然不是硬件问题),wa低下代表磁盘的使用率低下。这时要看到底是程序本身不怎么使用磁盘,还是没有高效使用(大量随机操作,而不是批量操作,顺序写入,使用缓冲等)(3)如果要提升服务器端的响应时间RT
采用减少IO的时间能达到最佳效果,比如合并多个IO请求
减少IO的调用次数:并发HTTP请求(无上下文依赖,多个连接,一个线程)、HTTP连接池(长连接)
减少CPU的使用时间
使用缓存(4)如果要提升QPS
采用优化CPU的时间能达到最佳效果,同时可以加大线程数
减少CPU的使用时间
增加CPU的数量
减少同步锁
如果CPU不能被压到85%以上,并且此时的QPS已经达到了峰值,则说明另有瓶颈
三、CPU工作原理
CPU工作模式
一台服务器看卡不卡,关键在于程序的运行,程序的运行又取决于执行代码时CPU的运行速度和效率,程序的运行原理是代码向CPU提出请求调用资源
- 可以利用strace命令追踪程序进程的调用、进程状态的变更
以上是关于Linux系统性能与调优(未完)的主要内容,如果未能解决你的问题,请参考以下文章