nice-ni 耗光cpu

可以看到 低优先级的进程 暂用了比较高的CPU时间。
top 命令中可以看到 NI 为19, 其优先级最低 但是使用cpu 最高。
说明这个进程需要经行优化了,
通过gdb 发现此进程一直都在处理报文,写缓存。
由于使用了dpdk, 此进程用来接收dpdk的报文数据解析。此时流量大约3-5g。
报文量多。此处逻辑 需要调整。以及进程优先级也需要调整
顺便说一说 http server端的优化
- TCP的keepalive
维护与client的防火墙的活跃网络包
检测实际断掉的连接
net.ipv4.tcp_keepalive_time=7200 发送心跳周期
net.ipv4.tcp_keepalive_intvl=75 探测包发送间隔
net.ipv4.tcp_keepalive_probes=9 探测包重试次数
- 减少关闭连接的timewait
- fin_wait1状态
net.ipv4.tcp_orphan_retries=0 发送FIN报文的重试次数,0相当于8
- fin_wait2状态
net.ipv4.tcp_fin_timeout=60 保持在FIN_WAIT_2的状态时间
- time_wait状态
net.ipv4.tcp_tw_reuse=1 开启后client端仍可以使用处于TIME_WAIT的端口,由于时间戳的存在,操作系统可以设置net.ipv4.tcp_timestamps=1拒绝迟到的报文
net.ipv4.tcp_max_tw_buckets TIME_WAIT的连接数量
net.ipv4.tcp_tw_recycle=0 开启后client和server都可以使用TIME_WAIT的端口,无法避免报文延迟和重复造成的混乱
lingering延迟关闭TCP连接
当server主动关闭连接的时候,调用close状态,当client仍发送数据到缓冲区,服务仍会给client发送RST包关闭连接,导致了client收到了RST而忽略了http的response
server端的配置
lingering_close off为关闭,on为由server判断是否使用
lingering_time 30s 功能启用时,最长的读取用户内容的时长,到达后立刻关闭
lingering_timeout 5s 检测client是否仍有请求内容到达,若超时后扔没有数据到达,则立刻关闭连接
读写超时通过RST立刻释放连接,代替四次握手
- 应用层协议优化
TLS和SSL握手优化的ssl_session_cache off
off为不使用,http server告诉client不使用
none为不使用
builtin为使用,当一个client两次连接都命中一个worker才生效
shared:name:size为使用,定义共享内存
Ticket会话验证票证
http server 会将会话的session作为ticket加密发送给client,client下次发起TLS连接的带上ticket,由nginx解密验证恢复会话,但是这样破换了nginx的TSL/SSL的安全机制,有安全风险,需要经常更换
- HTTP长连接
可以减少握手次数,减少并发连接消耗服务器资源,降低TCP拥塞控制
- 压缩包体
google pertools分析nginx
gpertools
- 文本展示 pprof --text
- 图形展示 pprof --pdf 需要依赖graphviz和libunwind
文本结果
2 0.9% 51.3% 166 73.5% ngx_epoll_process_event
1 0.4% 96.5% 2 0.9% ngx_open_and_stat_file
每统计周期为10ms
- 当前函数执行总共花费的统计周期
- 当前函数执行时间的百分比
- 当前函数及其之前函数执行时间的百分比
- 当前函数及其所调用函数消耗的统计周期总和
- 当前函数及其所调用函数执行时间总和的百分比
- 函数名
stub_status模块监控
- Active connections 当前client与Nginx间的TCP连接数,等于Reading+Writing+Waiting
- accept 从nginx启动,与client建立的连接数
- handler 从nginx启动,处理过的client连接数,如果没有超出worker_connections,应该是与accept相同
- requests 从nginx启动,处理过的client请求数,由于keepalive,所以会大于handler
- Reading 正在读取HTTP请求头的连接总数,接收完Reading就是Writing状态了
- Writing 正在向Client发送响应的连接总数
- Waiting 当前空闲的keepalive数量
nice-ni 耗光cpu的更多相关文章
- Linux 用 ps 與 top 指令找出最耗費 CPU 與記憶體資源的程式最占cpu的进程
Linux 用 ps 與 top 指令找出最耗費 CPU 與記憶體資源的程式 2016/12/220 Comments ######### ps -eo pid,ppid,%mem,%cpu,cmd ...
- Windows Server 2008 R2 服务器内存使用率过高几乎耗光
系统环境: Windows Server 2008 R2 Enterprise 搭建有 web服务器(iis) 和 文件服务 问题描述: Windows Server 2008 R2系统内存耗光 ...
- gitlab访问慢,出现502,特别卡,耗内存cpu解决办法
前言 浏览器访问gitlab的web页面,发现非常慢,并且很容易出现502问题.其中一个原因就是8080端口被tomcat占用,前面一篇已经更换了端口,但还是很慢.后来搜了下,原因是gitlab占用内 ...
- composer安装包的时候触发PHP fatal error,提示允许的内存耗光
在composer require之前加COMPOSER_MEMORY_LIMIT=-1
- 2、每日复习点--ConcurrentHashMap vs HashMap vs LinkedHashMap vs HashTable
HashMap: 查询和插入速度极快,但是线程不安全,在多线程情况下在扩容的情况下可能会形成闭环链路,耗光cpu资源. LinkedHashMap: 基本和HashMap实现类似,多了一个链表来维护元 ...
- while 1要小心
之前判断一个接口的返回,一定约定好了是返回retcode 1或者retcode 0,就用的这个判断,但是接口挂了的时候,一直返回未登录,找了很长时间为什么cpu一直消耗那么高. 使用wihle 1时候 ...
- [转]如何根据cpu的processor数来确定程序的并发线程数量
原文:http://blog.csdn.net/kirayuan/article/details/6321967 我们可以在cat 里面发现processor数量,这里的processor可以理解为逻 ...
- [进程管理]Load和CPU利用率是如何算出来的
本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址: http://www.penglixun.com/tech/system/how_to_ca ...
- 线程池大小设置,CPU的核心数、线程数的关系和区别,同步与堵塞完全是两码事
线程池应该设置多少线程合适,怎么样估算出来.最近接触到一些相关资料,现作如下总结. 最开始接触线程池的时候,没有想到就仅仅是设置一个线程池的大小居然还有这么多的学问,汗颜啊. 首先,需要考虑到线程池所 ...
随机推荐
- Elasticsearch(4):映射
ES中的映射(mapping)是用于定义索引中文档以及文档中的字段如何被存储和索引(动词)的一种机制,例如,通过映射我们可以进行如下的这些定义: 索引文档中,哪些字符型字段应该被当做全文本类型: ...
- vue 项目打包后静态资源加载不到
1, 2,
- English 介词
English 介词 Create Time : 2019-06-27 表示时间的介词称为时间介词.表示时间的介词有:at, on, in, before, after等. 一.at, on和in ① ...
- volatile、ThreadLocal的使用场景和原理
并发编程中的三个概念 原子性 一个或多个操作.要么全部执行完成并且执行过程不会被打断,要么不执行.最常见的例子:i++/i--操作.不是原子性操作,如果不做好同步性就容易造成线程安全问题. 可见性 多 ...
- spring 源码构建
参照这里(按照下面链接一路绿灯) https://blog.csdn.net/chengqiuming/article/details/102331033 1.安装配置gradle环境 1). 配置 ...
- MeteoInfoLab脚本示例:站点填图
打开包含站点填图的站点数据文件(比如micaps 1)之后,用文件对象的smodeldata函数获取StationModel数据对象,然后用stationmodel函数绘制站点填图图层.脚本程序: # ...
- 【最短路】HDU 1688 Sightseeing
题目大意 给出一个有向图(可能存在重边),求从\(S\)到\(F\)最短路的条数,如果次短路的长度仅比最短路的长度多1,那么再加上次短路的条数. 输入格式 第一行是数据组数\(T\). 对于魅族数据, ...
- 【原创】xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(三)--实时与非实时数据交互
版权声明:本文为本文为博主原创文章,转载请注明出处.如有问题,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 1.概述 1.概述 [原创]实时IPC概述 [ ...
- Linux+Nginx/Apache下的PHP exec函数执行Linux命令
1.php.ini配置文件 打开PHP的配置文件,里面有一行 disable_function 的值,此处记录了禁止运行的函数,在里面将exec和shell_exec.system等函数删除. 2.权 ...
- HTML5/HTML 4.01/XHTML 元素和有效的 DTD
HTML5/HTML 4.01/XHTML 元素和有效的 DTD 下面的表格列出了所有的 HTML5/HTML 4.01/XHTML 元素,以及它们会出现在什么文档类型 (DTD) 中: 标签 HTM ...