Linux系统性能与调优(未完)

1、基本概念

QPS:query per second, 1秒内完成的请求数
RT:response time, 1个请求完成的时间
Throughput越大,Latency会越差。由于请求量过大,系统太繁忙,因此响应速度天然会低
Latency越好,能支持的Throughput就会越高。由于Latency短说明处理速度快,因而就能够处理更多的请求缓存

最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量
线程过多,时间消耗长,并非说代码执行效率降低了,而是资源的竞争,致使线程等待的时间上升了,线程越多消耗内存越多,过多的线程直接将系统内存消耗殆尽服务器

平均响应时间 = (并发线程数/最佳线程数) * 最佳线程数的响应时间并发

总QPS=线程数*单个线程的QPS性能

2、系统调优的目的

  • (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已经达到了峰值,则说明另有瓶颈内存

3、CPU工做原理

CPU工做模式
一台服务器看卡不卡,关键在于程序的运行,程序的运行又取决于执行代码时CPU的运行速度和效率,程序的运行原理是代码向CPU提出请求调用资源资源

  • 能够利用strace命令追踪程序进程的调用、进程状态的变动
相关文章
相关标签/搜索