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系统性能与调优(未完)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL性能诊断与调优

linux 性能测试与调优

Linux服务器性能分析与调优

性能测试知多少---性能分析与调优的原理

MySQL写压力性能监控与调优

Nginx的性能分析与调优