使用ramdisk 优化nagios IO性能

简介:

 nagios 是个企业级的监控方案,随着监控客户端的增加,nagios服务端会面临很大的压力,尤其是IO和CPU的使用率居高不下。

 

本文采用rpm安装nagios,通过分析,我们发现nagios的读写无非是下面几个文件:

 

 
 
  1. 1、/etc/nagios/nagios.cfg 

nagios主配置文件,通过监控发现,nagios启动后会反复读取该文件

 

 
 
  1. 2、/var/log/nagios/status.dat 

这个文件随着status_update_interval 的值进行定期更新

 

 
 
  1. 3、/tmp/host-perfdata 

主机的可用性统计,每次检查后都要更新

 

 
 
  1. 4、/tmp/service-perfdata 

服务的可用性统计,每次检查后都要更新

 

 
 
  1. 5、/var/log/nagios/objects.cache   

这个文件存储nagios的配置,每次重启或重载配置才会被更新

 

 
 
  1. 6、/var/log/nagios/nagios.log 

nagios日志,不多说

 

 
 
  1. 7、/var/log/nagios/spool/checkresults 

每次所有的检查结果都在这里汇总

 

解决方案

将次要且读写频繁的文件放进内存,也就是说,排除主配置文件和日志,其他都放进内存

 
 
  1. mount -t tmpfs none /var/nagiosramdisk -o size=50m   
  2. mkdir -p -m 775 /var/nagiosramdisk/tmp 
  3. mkdir -p -m 755 /var/nagiosramdisk/spool  
  4. mkdir -p -m 755 /var/nagiosramdisk/spool/checkresults 
  5. chown -R nagios.nagios /var/nagiosramdisk  

 

编辑主配置文件nagios.cfg,修改如下值

 
 
  1. object_cache_file=/var/nagiosramdisk/objects.cache 
  2. status_file=/var/nagiosramdisk/status.dat 
  3. temp_path=/var/nagiosramdisk/tmp 
  4.  
  5. check_result_path=/var/nagiosramdisk/spool/checkresults 
  6.  
  7. host_perfdata_file=/var/nagiosramdisk/host-perfdata 
  8. service_perfdata_file=/var/nagiosramdisk/service-perfdata 

 

修改/etc/nagios/objects/commands.cfg

 
 
  1. # 'process-host-perfdata' command definition 
  2. "$LASTHOSTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$HOSTSTATETYPE$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$\n" >> /var/nagiosramdisk/host-perfdata.out 
  3. # 'process-service-perfdata' command definition 
  4. "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\n" >> /var/nagiosramdisk/service-perfdata.out 

 

另外,注意修改/usr/share/nagios/html/config.inc.php

 

重启nagios生效

 
 
  1. service nagios restart  

 

开机挂在tmpfs,编辑/etc/fstab

 
 
  1. tmpfs  /var/nagiosramdisk  tmpfs  defaults,size=50m  0 0 

 










本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1172880,如需转载请自行联系原作者
目录
相关文章
|
缓存 监控 IDE
linux如何查看io性能
linux如何查看io性能
288 0
|
12月前
|
存储 弹性计算 固态存储
阿里云服务器ESSD Entry系统盘测评IOPS、IO读写和时延性能参数
阿里云ESSD Entry云盘是新一代企业级云盘,具备高IOPS、低延迟特性,适合开发与测试场景。它提供10~32,768 GiB容量范围,最大IOPS达6,000,吞吐量150 MB/s,时延1~3 ms。支持按量付费和包年包月,性价比高,特别适合个人开发者和中小企业。详情及价格参考阿里云官网。
|
人工智能 Cloud Native Java
云原生技术深度解析:从IO优化到AI处理
【10月更文挑战第24天】在当今数字化时代,云计算已经成为企业IT架构的核心。云原生作为云计算的最新演进形态,旨在通过一系列先进的技术和实践,帮助企业构建高效、弹性、可观测的应用系统。本文将从IO优化、key问题解决、多线程意义以及AI处理等多个维度,深入探讨云原生技术的内涵与外延,并结合Java和AI技术给出相应的示例。
368 1
|
存储 缓存 算法
如何优化阻塞IO的性能?
【10月更文挑战第6天】如何优化阻塞IO的性能?
246 5
|
存储 弹性计算 固态存储
阿里云服务器ESSD Entry系统盘测评IOPS、IO读写和时延性能参数
ESSD Entry云盘是阿里云推出的新一代云盘,具备高IOPS、低延迟和企业级数据保护能力。适用于开发与测试场景,支持按量付费和包年包月计费模式。99元和199元的ECS经济型e实例和通用算力型u1实例均采用ESSD Entry系统盘,性价比高。详细性能参数和价格请参考阿里云官方页面。
558 0
|
存储 Java 数据库连接
BIO阻塞IO流与数据存储大揭秘:性能与资源消耗,一文让你彻底解锁!
【8月更文挑战第25天】本文探讨了Java中BIO阻塞IO流与数据存储的概念及其实现。BIO作为一种传统IO模型,在处理每个客户端请求时需创建新线程并等待响应,这在并发量大时会导致性能下降和高资源消耗。示例代码展示了如何利用`ServerSocket`实现基于BIO的简单服务器。此外,文章还介绍了数据存储的基本方法,例如通过`BufferedWriter`向文件写入数据。两者对比显示,BIO适合连接数稳定的场景,而数据存储则适用于需要持久化保存信息的情况。通过这些分析和实例,希望能帮助读者更好地掌握这两种技术的应用场景及其优缺点。
271 0
|
缓存 Linux 调度
[kvm]硬盘IO优化
[kvm]硬盘IO优化
339 2
|
C# 开发者 设计模式
WPF开发者必读:命令模式应用秘籍,轻松简化UI与业务逻辑交互,让你的代码更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,命令模式是简化UI与业务逻辑交互的关键技术,通过将请求封装为对象,实现UI操作与业务逻辑分离,便于代码维护与扩展。本文介绍命令模式的概念及实现方法,包括使用`ICommand`接口、`RelayCommand`类及自定义命令等方式,并提供示例代码展示如何在项目中应用命令模式。
300 0
|
Java 开发者
Java IO流实战技巧:如何优化InputStream/OutputStream和Reader/Writer的使用?
【6月更文挑战第26天】Java IO流优化涉及缓冲、资源管理、字符编码和流式处理。使用Buffered流提高读写效率,如`BufferedInputStream`和`BufferedReader`。确保资源关闭使用try-with-resources,如`try (InputStream is = ...) {...}`。处理文本时指定编码,如`InputStreamReader(is, StandardCharsets.UTF_8)`防止乱码。流式处理大文件,分块读写避免内存溢出,以减少内存占用。这些技巧能提升程序性能和健壮性。
696 0
|
Java 测试技术
Java IO流深度剖析:字节流和字符流的性能对比!
【6月更文挑战第26天】Java IO流分字节流和字符流,字节流处理所有类型数据(如图片),字符流处理文本(基于Unicode)。字节流直接处理,性能高,适合非文本文件;字符流处理文本时考虑编码,适合文本文件。性能测试显示,字节流在读写非文本文件时更快,而字符流在处理文本时更方便。选择流类型应依据数据类型和需求。
354 0