如何有效的使用cpu?

1.如何增大Nginx使用cpu的有效时长?
能够使用全部cpu资源:master-worker多进程架构,woker进程数量应该大于等于cpu核数
Nginx进程间不做无用功浪费cpu资源:
worker进程不应在繁忙时,主动让出cpu资源(worker进程间不应由于争抢造成资源损耗,worker进程数应该等于cpu核数)
worker不应调用一些api导致主动让出cpu(例如一些第三方库会调用阻塞的方法,使worker进程进入阻塞)
不被其他进程争抢资源:1.提高优先级占用cpu更长时间 2.减少操作系统上耗资源的非nginx进程
设置worker进程的数量

Syntax: worker_processes number | auto;
Default: worker_processes 1;
Context: main

尽量减少进程间的切换:
1.我们的worker进程尽可能的处于R状态
2.尽可能减少进程间切换:一次进程切换的时间<5us,应减少主动切换和被动切换(增大进程的优先级)
3.绑定cpu

延迟处理新连接
使用TCP_DEFER_ACCEPT延迟处理新连接

Syntax: listen address[:port] [deferred];
Default: listen *:80 | *:8000;
Context: server

该选项用于优化TCP协议从建立连接到接受数据的过程中服务器端的开销。在一般的监听套接字中,当三次握手的完成之后,响应的链接就会放入到accept队列中,这时服务器调用accept就会得到一个已连接的套接字,但是这个套接字上也许没有可读的数据,服务器反而要等到数据的到来。而使用这个选项后,三次握手完成之后,这个链接并不能被accept到,而是要等到真正的数据到达的时候,才能被accept得到已连接的套接字nginx开启了TCP_DEFER_ACCEPT后,每accept到一个套接字,立刻就可以对这个套接字进行读操作,提高了效率。
查看进程上下文切换:pidstat -w

设置worker进程的静态优先级

worker_priority number

多核间的负载均衡

惊群效应:多进程(线程)同时阻塞等待同一事件的时候(休眠状态),如果等待的事件发生它就会唤醒等待的所有进程或线程,但是最终只有一个进程或线程获得这个事件的控制权,其他线程或进程只能重新进入休眠状态

default模式:它的accept_mutex是on,相当于在应用层建了一把锁来保证同一时间只有一个worker进程来处理新建立的连接
reuseport:在内核层面提供的一种负载均衡的机制
reuseport通过让所有worker进程均处于listen来实现,然后应用再做相应的负载均衡

提高cpu的缓存命中率

cpu的三级缓存是多核共享的,通过以下指令查看哪些核共享一个三级缓存通过worker_cpu_affinty来进行绑定cpu来增加缓存的命中率
NUMA架构:
查看三级缓存的大小:
查看三级缓存的命中率情况,可以看到下图中缓存的命中率很高

Nginx性能优化之cpu优化相关推荐

  1. 【linux】性能优化之CPU优化一

    文章目录 一.前言 二.性能统计信息 1. 平均负载率. 2. 平均负载率命令 uptime 3. 平均负载和CPU使用的关系 4. 如何定位哪个进程出现问题 一.前言 因为以前只是了解了linux的 ...

  2. KVM总结-KVM性能优化之CPU优化

    前言 任何平台根据场景的不同,都有相应的优化.不一样的硬件环境.网络环境,同样的一个平台,它跑出的效果也肯定不一样.就好比一辆法拉利,在高速公路里跑跟乡村街道跑,速度和激情肯定不同- 所以,我们做运维 ...

  3. 编译器优化和cpu优化

    编译器优化 减少不必要的代码或指令以达到优化; CPU优化 关系密切的操作提前执行,而不是顺序执行; 优化带来的问题 莫名其妙的bug,且不容易复现: 编译器指令优化 volatile修饰的变量,和它 ...

  4. Linux性能优化之CPU、内存、IO优化

    Linux 的性能进行监测,以下是 VPSee 常用的工具: 工具    简单介绍 top    查看进程活动状态以及一些系统状况 vmstat    查看系统状态.硬件和系统信息等 iostat   ...

  5. 【Android CPU 优化】Android CPU 调优 ( Trace 文件分析 | Android Profiler 工具 | CPU Profiler 工具 )

    文章目录 一.Android CPU 优化 二.CPU Profiler 工具 三.相关资源 一.Android CPU 优化 在 Android 中 , 出现 动画掉帧 , 页面切换白屏 , 卡顿 ...

  6. Lua性能优化—Lua内存优化

    原文链接https://blog.uwa4d.com/archives/usparkle_luaperformance.html 这是侑虎科技第236篇原创文章,感谢作者舒航供稿,欢迎转发分享,未经作 ...

  7. Android应用开发之CPU优化

    最近开发一个APK的时候遇到了一个问题,CPU动不动就占用到40%以上,而且是一个服务型的常驻内存APK,这样子肯定不行的,CPU发热可能会过高.这个APK需要优化,包括内存优化,结构优化,CPU优化 ...

  8. nginx 性能优化的概述及在CPU资源方面的处理

    nginx的性能优化的概述 软件层面的提升硬件的使用率 增大CPU的利用率 增大内存的利用率 增大磁盘IO利用率 增大网络带宽利用率 提升硬件规格 网卡:万兆网卡.例如10G.25G.40G等 磁盘: ...

  9. 关于nginx性能优化CPU参数worker_cpu_affinity使用说明

    Nginx性能优化CPU参数worker_cpu_affinity使用说明 官方说明:http://wiki.nginx.org/NginxHttpMainModule#worker_cpu_affi ...

最新文章

  1. 幼儿园语言活动包括哪几类_幼儿园教育:《一起玩》语言活动教案
  2. 第四章 遗传变异的分类
  3. 图解Oracle dump 命令初步
  4. 《网易编程题》买苹果
  5. LeetCode 题 - 35. 搜索插入位置
  6. C# Winform编程ListBox之DrawItem事件
  7. 强大的Mockito测试框架
  8. class path resource [spring/] cannot be resolved to URL because it does not exist
  9. 网络盒子android系统版本怎样刷机,【当贝市场】一键通IPTV盒刷Android系统教程
  10. H264视频解码器C++工程说明
  11. 安装显卡后蓝屏0x00000116解决办法
  12. 给五子棋加个功能叫悔棋
  13. solidity 中的时间_Solidity官方文档中文版.pdf
  14. 深入剖析ReentrantLock公平锁与非公平锁源码实现
  15. 什么是敏感型货物,被海关扣押之后如何处理?
  16. 开源软件 | 一款深度学习抠图算法,图像精细分割利器
  17. mysql索引用trie树_数据结构与算法之美【完整版】
  18. ArcGIS流域提取教程
  19. Quartz学习之Cron表达式详解
  20. 1.3小程序的设计规范

热门文章

  1. 蜂巢私域案例分析:利用SCRM系统重构“人货场”
  2. 红色警戒95版中各国的异同与遭遇战不同难度的区别
  3. sierpinski三角形的维数_谢宾斯基三角形的几种生成方法
  4. [KF2][MutGm Tutorial]Modding第一步:设置好KF2的UnrealScript编译环境
  5. 使用js实现一个简单的图片时钟
  6. 3.4.6.进程的诞生和消亡
  7. 2019 CCSU GOLD!!!
  8. 高通WLAN框架学习(7)- - SAR(比吸收率)
  9. 老程序员教你如何提高开发效率、成为大神5——人性管理
  10. 阿里云ECS服务器无法打开宝塔控制面板的解决方法