如何在Java程序中获取、监控服务器负载值、CPU、内存、硬盘、网络情况?

如何在Java程序中获取、监控服务器负载值、CPU、内存、硬盘、网络情况?,第1张

SUM服务器监控软件吧
可以监控所有品牌的服务器的CPU\内存、磁盘、流量、网络、数据库、中间件,还能监控网络设备
有啥情况可以短信和邮件通知,比较方便
你看看吧,我们用的就是这个,只是温度不能监控,其他都可以

个人觉得高写入并发的话先用缓存缓冲一下,可以合并的写入合并成批量写入可以管一些用但终归写入量很大的话还是要在数据库端优化了,把并发写均衡到多台服务器上,应该没有别的办法了。如果瓶颈不再数据库那就是应用服务器处理能力不足,升级应用服务器。

JVM
JEE容器中运行的JVM参数配置参数的正确使用直接关系到整个系统的性能和处理能力,JVM的调优主要是对内存管理方面的调优,优化的方向分为以下4点:
1HeapSize 堆的大小,也可以说Java虚拟机使用内存的策略,这点是非常关键的。
2GarbageCollector 通过配置相关的参数进行Java中的垃圾收集器的4个算法(策略)进行使用。
3StackSize 栈是JVM的内存指令区,每个线程都有他自己的Stack,Stack的大小限制着线程的数量。
4DeBug/Log 在JVM中还可以设置对JVM运行时的日志和JVM挂掉后的日志输出,这点非常的关键,根据各类JVM的日志输出才能配置合适的参数。
网上随处可见JVM的配置技巧,但是我还是推荐阅读Sun官方的2篇文章,可以对配置参数的其所依然有一个了解
1Java HotSpot VM Options
Java HotSpot VM Options
2Troubleshooting Guide for Java SE 6 with HotSpot VMTroubleshooting Guide for Java SE 6 with HotSpot VM
另外,我相信不是每个人攻城师都是天天对着这些JVM参数的,如果你忘记了那些关键的参数你可以输入Java -X(大写X)进行提示。
JDBC
针对MySQL的JDBC的参数在之前的文章中也有介绍过,在单台机器或者集群的环境下合理的使用JDBC中的配置参数对 *** 作数据库也有很大的影响。
一些所谓高性能的 Java ORM开源框架也就是打开了很多JDBC中的默认参数:
1例如:autoReconnect、prepStmtCacheSize、cachePrepStmts、useNewIO、blobSendChunkSize 等,
2例如集群环境下:roundRobinLoadBalance、failOverReadOnly、autoReconnectForPools、secondsBeforeRetryMaster。
具体内容可以参阅MySQL的JDBC官方使用手册:
>这个主要要看你网站的架构。
如果是大型的交易平台,建议在两台服务器上部署两个应用,可以通过服务器或者硬件设备实现均衡负载,这时,维护的时候,即使停掉一台服务器,也不会影响另一台服务器的使用。可以先维护A,在维护B服务器。
如果你的应用程序只部署了一份,则在升级的时候出现短暂的不能访问(服务器加载更新文件)是很正常的。 如果你是java应用,建议使用weblogic 或者开源服务器使用最多,性能卓越的JBOSS服务器。 jboss 支持热部署,建议部署的应用时文件夹的方式,这是,你可以直接把你需要更新的类,通过 ftp 等方式传上去,JBOSS会自动加载更新的类。 如果你修改的是描述文件,如 WEBXML,strurs,webservices的文件,服务器则会先卸载应用,在重新部署。
如果系统对实时性要求很高,则建议使用集群的方式进行设计和部署。

利用redis等缓存技术来解决高并发问题

数据库层建立集群,可以1主多备,1主主要用于写数据,多备用于读取数据

同时可以将一些经常使用,而很少修改的数据放入redis,这样更能提高访问效率

在web服务器可以做负载均衡


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10535826.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存