首页 文章 精选 留言 我的

精选列表

搜索[服务器],共10000篇文章
优秀的个人博客,低调大师

CentOS6上Hadoop集群中服务器cpu sys态异常的定位与解决

问题现象 在zabbix系统中,对Hadoop集群的历史监控数据分析时,发现在执行大Job任务时,某些服务节点的cpu sys态很高; 具体以hadoop_A服务节点为例,在10:15-10:40这个时间段,cpu user态为60%,而sys态则高达35%; 对于整个Hadoop集群,并不是所有的节点都会出现sys过高的问题,产生此类问题的都是部署CentOS6系统的节点。 定位分析 根据zabbix系统中cpu sys很高的问题发生时间,找到触发问题的大Job,以便于后面的问题重现和问题验证; 对问题节点hadoop_A的硬件信息和OS系统日志/var/log/messages进行初步检查,并未发现异常; 重启Job,重现问题。并使用nmon工具对问题节点hadoop_A的资源负载进行粗粒度的实时监测; hadoop_A节点上某一时刻瞬时的负载状态如下图: 通过上图,注意到网络流量达到了119.7MB/s,接收和发送的峰值都超过了120MB/s,初步怀疑网口在某一时间成为瓶颈,导致内核的sys过高。对hadoop_A的网口计数器细化分析,系统在uptime了83天的状态下,网口计数器中除overruns指标达22万之外,其他的网络指标正常。 这说明网络确实曾达到过峰值,也丢过包,但频率非常低,sys过高的问题应该不是网络负载过高触发。 ifconfig查询网口的计数器状态如下图: 需要对系统进行更细粒度的分析,找出系统sys态消耗在什么地方。在hadoop_A节点上部署perf工具,通过perf top对kernel事件采样,实时分析内核事件。 perf top在某一时刻的状态图如下: 通过perf top监控可以断定:kernel中存在频繁的spin_lock_irqsave内核系统调用, sys态消耗过高应该与此有关。 重启Job,再次重现问题,并利用perf工具对内核函数的调用关系采样: perf record -a -g -F 1000 sleep 30 采样结束后,在当前目录上会生成一个perf.data文件,使用perf工具查看函数调用关系: perf report -g perf report查看到的调用关系如下图: 通过调用依赖关系分析,spin_lock_irqsave主要called by compaction_alloc,初步推测问题由kernel的内存管理部分触发。联想到centos 6相对于centos 5在kernel内存管理模块的一些改进点(如transparent huge page, 基于numa的内存分配等),有没有可能是CentOS6新增的THP特性导致cpu sys过高?再在google上搜一把相关函数名的关键字,印证这个猜测。 问题验证 选择在节点hadoop_A上面做验证测试,通过以下内核参数优化关闭系统THP特性: echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag 重启触发问题的大Job,在hadoop_A节点未出现cpu sys 状态过高的现象。 在生产系统上运行24小时后,通过zabbix系统观察,其他内核未优化节点如hadoop_B,hadoop_C等节点依然存在cpu sys态过高的问题,而关闭了THP特性的hadoop_A节点没有出现cpu sys态过高的问题,验证了之前的分析。 hadoop_B和hadoop_C依然存在cpu sys态过高的问题: hadoop_A cpu sys态正常: 结论 将Hadoop集群中所有CentOS6类型节点的THP特性关闭掉(在CentOS6中,THP特性默认都是打开的),关闭方法如下: echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag 值得注意的是,需要在puppet系统中部署该项优化,以免节点重启导致修改丢失。 参考 事后,在redhat官网和cloudera官网也搜到了相关的内容,附录下来,供参考。 在redhat的官网上,有对THP特性的细化说明:https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-memory-transhuge.html 在cloudera的CDH4部署说明中,也建议将系统的THP的compaction特性关闭:http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/4.2.2/CDH4-Installation-Guide/cdh4ig_topic_11_6.html 转: http://tech.meituan.com/cpu_sys_high_in_hadoop_cluster.html

优秀的个人博客,低调大师

smart-http v1.1.11发布,QPS 高达 703W 的 Http 服务器

smart-http 是一款基于 smart-socket 通信框架,支持 HTTP/1.0、HTTP/1.1 以及 Websocket 协议的可编程式 HTTP 微内核。 此版本主要变化 新增 ByteTree 数据结构,提升解码和路由性能。 新增 TimerUtils 用于维护系统时钟。 优化 Http 响应逻辑,减少空header的判断。 优化 chunked 响应的判定逻辑。 升级 smart-socket 至 1.5.15。 移除 「HEAD 请求禁止 body 响应」的约束。 移除 HttpRouteHandler 中的缓存映射。 移除 MessageProcessor 的代理设计。 Http Body 解码器绑定至 RequestAttachment。 支持集成 smart-socket 插件。 支持 MaxFormContentSize 配置化。 解码过程指定默认字符集:StandardCharsets.US_ASCII。 补充 https 的应用 demo。 Maven 坐标 <dependency> <groupId>org.smartboot.http</groupId> <artifactId>smart-http-server</artifactId> <version>1.1.11</version> </dependency> 示例代码 public class SimpleSmartHttp { public static void main(String[] args) { HttpBootstrap bootstrap = new HttpBootstrap(); bootstrap.httpHandler(new HttpServerHandler() { @Override public void handle(HttpRequest request, HttpResponse response) throws IOException { response.write("hello smart-http<br/>".getBytes()); } }).setPort(8080).start(); } } 性能评测 历经三个多月的优化,该版本性能提升幅度约10%~15%,并于近期的 TFB 评测中以 703W 的QPS位居榜单第一位。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册