监控linux内存并sync监控linux内存
linux服务器10G内存大吗?
linux服务器10G内存并不是很大。如果你的服务器是WEB服务器的话,对于日常使用来说,这么多内存的服务器基本上是够用的。但是如果你的服务器要支持一个非常大的数据库,这点内存可能还是不够,最好能够增加到16g的内存,这样性能会更好一点。
linux下有什么检测内存溢出的工具?
内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。
可以使用相应的软件测试工具对软件进行检测。
1ccmalloc-Linux和Solaris下对C和C++程序的简单的使用内存泄漏和malloc调试库。
2Dmalloc-DebugMallocLibrary
3Electric
Fence-Linux分发版中由BrucePerens编写的malloc()调试库。
4Leaky-Linux下检测内存泄漏的程序。
5LeakTracer-Linux、Solaris和HP-UX下跟踪和分析C++程序中的内存泄漏。
6MEMWATCH-由Johan
Lindh编写,是一个开放源代码C语言内存错误检测工具,主要是通过gcc的precessor来进行。
7Valgrind-DebuggingandprofilingLinuxprograms,aimingat
programswritteninCandC++
8KCachegrind-Avisualizationtoolfortheprofilingdata
generatedbyCachegrindandCalltree
9Leak
Monitor-一个Firefox扩展,能找出跟Firefox相关的泄漏类型。
10IELeakDetector
(Drip/IESieve)-Drip和IESieveleak
detectors帮助网页开发员提升动态网页性能通过报告可避免的因为IE局限的内存泄漏。
11WindowsLeaks
Detector-探测任何Win32应用程序中的任何资源泄漏(内存,句柄等),基于WinAPI调用钩子。
12SAPMemory
Analyzer-是一款开源的JAVA内存分析软件,可用于辅助查找JAVA程序的内存泄漏,能容易找到大块内存并验证谁在一直占用它,它是基于Eclipse
RCP(RichClientPlatform),可以下载RCP的独立版本或者Eclipse的插件。
13DTrace-即动态跟踪Dynamic
Tracing,是一款开源软件,能在Unix类似平台运行,用户能够动态检测操作系统内核和用户进程,以更精确地掌握系统的资源使用状况,提高系统性能,减少支持成本,并进行有效的调节。
14IBMRationalPurifyPlus-帮助开发人员查明C/C++、托管NET、Java和VB6代码中的性能和可靠性错误。PurifyPlus
将内存错误和泄漏检测、应用程序性能描述、代码覆盖分析等功能组合在一个单一、完整的工具包中。
15ParasoftInsure++-针对C/C++应用的运行时错误自动检测工具,它能够自动监测C/C++程序,发现其中存在着的内存破坏、内存泄漏、指针错误和I/O等错误。并通过使用一系列独特的技术(SCI技术和变异测试等),彻底的检查和测试我们的代码,精确定位错误的准确位置并给出详细的诊断信息。能作为Microsoft
VisualC++的一个插件运行。
16CompuwareDevPartnerforVisualC++BoundsChecker
Suite-为C++开发者设计的运行错误检测和调试工具软件。作为MicrosoftVisualStudio和C++60的一个插件运行。
17ElectricSoftwareGlowCode-包括内存泄漏检查,code
profiler,函数调用跟踪等功能。给C++和Net开发者提供完整的错误诊断,和运行时性能分析工具包。
18CompuwareDevPartnerJava
Edition-包含Java内存检测,代码覆盖率测试,代码性能测试,线程死锁,分布式应用等几大功能模块。
19QuestJProbe-分析Java的内存泄漏。
20ej-technologiesJProfiler-一个全功能的Java剖析工具,专用于分析J2SE和J2EE应用程序。它把CPU、执行绪和内存的剖析组合在一个强大的应用中。JProfiler可提供许多IDE整合和应用服务器整合用途。JProfiler直觉式的GUI让你可以找到效能瓶颈、抓出内存泄漏、并解决执行绪的问题。432注册码:A-G666#76114F-1olm9mv1i5uuly#0126
21BEAJRockit-用来诊断Java内存泄漏并指出根本原因,专门针对Intel平台并得到优化,能在Intel硬件上获得最高的性能。
22SciTechSoftwareABNETMemory
Profiler-找到内存泄漏并优化内存使用针对C#,VBNet,或其它Net程序。
23YourKitNETJavaProfiler-业界领先的Java和NET程序性能分析工具。
24AutomatedQAAQTime-AutomatedQA的获奖产品performanceprofiling和memory
debugging工具集的下一代替换产品,支持Microsoft,Borland,Intel,Compaq和
GNU编译器。可以为NET和Windows程序生成全面细致的报告,从而帮助您轻松隔离并排除代码中含有的性能问题和内存/资源泄露问题。支持Net
10,11,20,30和Windows32/64位应用程序。
25JavaScriptMemoryLeakDetector-微软全球产品开发欧洲团队(GlobalProduct
Development-Europeteam,GPDE)
发布的一款调试工具,用来探测JavaScript代码中的内存泄漏,运行为IE系列的一个插件。
4g摄像头一天内存多少?
网络摄像头工作一天需要的存储空间主要取决于以下几个因素:
摄像机的分辨率如720P、960P、1080P等等;视频压缩格式,如:JPEG、MJPEG、MJPEG-4、H264;图像的码流、帧率等因素,取决于摄像机的分辨率;录像要求被存储的最长时间。
目前市面主流摄像头工作一天所用内存约为:
1720P的高清网络摄像机的码流为3Mbps,每小时占用存储空间约为132GB,一天约3168GB。
2960p的高清网络摄像机的码流为4Mbps,每小时占用存储空间约为179GB,一天约4296GB。
31080P的高清网络摄像机的码流为5Mbps,每小时占用存储空间约为225GB,一天约54GB。
扩展资料:
微电脑处理器32BitRSICEmbeddedProcessor
操作系统嵌入式Linux系统
视频压缩方式Motion-JPEG
信号系统PAL或NTSC
帧频率-->25fps
分辨率PAL:VGA(640480),SIF(320240),QSIF(160120)
网络接口RJ45,10/100m自适应以太网接口支持网络协议TCP/IP,HTTP,ICMP,DHCP,FTP,SMTP,PPPoE等支持IP地址静态IP地址、动态IP地址。
linux服务器监控的几个方法和命令?
概述
今天主要对mpstat、iostat、sar、vmstat命令做一下总结,这几个命令都是属于运维人员必须掌握的,所以,能不偷懒就不偷懒了。
1、mpstat
mpstat是MultiprocessorStatistics的缩写,是实时监控工具,报告与cpu的一些统计信息这些信息都存在/proc/stat文件中,在多CPU系统里,其不但能查看所有的CPU的平均状况的信息,而且能够有查看特定的cpu信息,mpstat最大的特点是:可以查看多核心的cpu中每个计算核心的统计数据;而且类似工具vmstat只能查看系统的整体cpu情况。
实例:查看多核cpu当前运行的状况,每两秒更新一次,一共更新5次
#mpstat25
说明:
%user在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程(usr/total)100
%nice在internal时间段里,nice值为负进程的CPU时间(%)(nice/total)100
%sys在internal时间段里,内核时间(%)(system/total)100
%iowait在internal时间段里,硬盘IO等待时间(%)(iowait/total)100
%irq在internal时间段里,硬中断时间(%)(irq/total)100
%soft在internal时间段里,软中断时间(%)(softirq/total)100
%idle在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%)(idle/total)100
2、iostat
iostat用于输出CPU和磁盘I/O相关的统计信息
语法:
iostat|ALL]|ALL]]]
实例1:
--参数-d表示显示设备磁盘的使用状态;-k表示某些使用block为单位的列强制使用kilobytes为单位,2表示数据每隔2秒刷新一次6表示一共刷新6次
#iostat-d-k26
说明:
tps:该设备每秒的传输次数(Indicatethenumberoftransferspersecondthatwereissuedtothedevice)。
"一次传输"意思是"一次I/O请求"。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。
kB_read/s:每秒从设备(driveexpressed)读取的数据量;
kB_wrtn/s:每秒向设备(driveexpressed)写入的数据量;
kB_read:读取的总数据量;
kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。
实例2:
--可以把K单位换成M
#iostat-d-m26
实例3:
--使用iostat查看cpu统计信息使用-C参数
#iostat-c26
实例4:-X参数
--iostat还有一个比较常用的-X参数,该选项将用于显示和io相关的扩展数据。
#iostat-d-x-k16
3、sar
sar(SystemActivityReporter系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等,sar命令有sysstat安装包安装。
语法:
sar]
--Optionsare:
-A:所有报告的总和
-b:显示I/O和传递速率的统计信息
-B:显示换页状态
-d:输出每一块磁盘的使用信息
-e:设置显示报告的结束时间
-f:从制定的文件读取报告
-i:设置状态信息刷新的间隔时间
-P:报告每个CPU的状态
-R:显示内存状态
_u:输出cpu使用情况和统计信息
_v:显示索引节点、文件和其他内核表的状态
-w:显示交换分区的状态
-x:显示给定进程的装
-r:报告内存利用率的统计信息
实例1:
--每2秒采样一次,连续4次,观察cpu的使用情况,并将采样的结果以二进制形式存入当前目录下的文件sar中,如下:
#sar-u-osar24
实例2:
--从二进制中调取
#sar-u-f/root/sar
实例3:
--报告每个cpu的状态,1秒一次,一共4次
#sar-p14
实例4:
--查看平均负载
#sar-q
实例5:
--查看内存使用情况
#sar-r
实例6:
--查看系统swap分区的统计信息
#sar-w
实例7:
--磁盘使用统计信息
#sar-d
默认监控:
sar55//CPU和IOWAIT统计状态
(1)sar-b55//IO传送速率
(2)sar-B55//页交换速率
(3)sar-c55//进程创建的速率
(4)sar-d55//块设备的活跃信息
(5)sar-nDEV55//网路设备的状态信息
(6)sar-nSOCK55//SOCK的使用情况
(7)sar-nALL55//所有的网络状态信息
(8)sar-PALL55//每颗CPU的使用状态信息和IOWAIT统计状态
(9)sar-q55//队列的长度(等待运行的进程数)和负载的状态
(10)sar-r55//内存和swap空间使用情况
(11)sar-R55//内存的统计信息(内存页的分配和释放、系统每秒作为BUFFER使用内存页、每秒被cache到的内存页)
(12)sar-u55//CPU的使用情况和IOWAIT信息(同默认监控)
(13)sar-v55//inode,fileandotherkerneltablesd的状态信息
(14)sar-w55//每秒上下文交换的数目
(15)sar-W55//SWAP交换的统计信息(监控状态同iostat的siso)
(16)sar-x290655//显示指定进程(2906)的统计信息,信息包括:进程造成的错误、用户级和系统级用户CPU的占用情况、运行在哪颗CPU上
(17)sar-y55//TTY设备的活动状态
(18)将输出到文件(-o)和读取记录信息(-f)
4、vmstat
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。
实例1:
--第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数
--如果想在一段时间内一直监控可执行#vmstat2
#vmstat26
说明:
r表示运行队列(就是说多少个进程真的分配到CPU),当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高
,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
b表示阻塞的进程
swpd虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
free空闲的物理内存的大小
buffLinux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存
cachecache直接用来记忆我们打开的文件,给文件做缓冲
si每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
so每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上
bi块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte
bo块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。
in每秒CPU的中断次数,包括时间中断
cs每秒上下文切换次数
us用户CPU时间
sy系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
id空闲CPU时间
wt等待IOCPU时间。
这种基础命令一定要会,建议大家熟记,后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
linux下查看内存的命令?
top命令能显示系统内存。目前常用的Linux下查看内容的专用工具是free命令。下面是对内存查看free命令输出内容的解释:
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。熟悉linux基础命令,可以看看《linux就该这么学》一书。
一般监控服务器,你可以
首先:你可以用iostat命令,显示存储子系统的详细信息,可以用来监控磁盘I/O的情况,如果%iowait的值过大,那么就是就说明很多IO在等待了,性能当然就有影响了,当然,用free也可以查看大概的情况,如下:
其次;就是windows下面都有的工具,wireshark,前身是ethereal,是一个网络协议检测程序,可以抓去网站运行的相关咨询,包括每一封包流向及其内容,监控TCP session动态等等。
当然有些服务商是有自己的服务器监控系统,监控软件的,我用的是小鸟云的!他们有专门的与"云监控”云管家等监控软件!我是觉得很好!这样就免得麻烦!
linux系统查看cpu温度指令?
Linux系统下查看CPU温度的方法是:
首先打开linux系统,找到查询软件来查看cpu的温度,然后打开终端输入命令:查看相关软件。
接着安装感应器,在感应器里输入安装命令,一路默认即可,直接输入感应器命令即可。
真实的物理机中温度正常。这些命令执行的过程中,需要你选择是个否,只要直接一路是,就可以查看cpu温度啦。
lm软件是干嘛的?
lm软件是一款linux的硬件监控的软件,可以帮助我们来监控主板,CPU的工作电压,风扇转速、温度等数据。这些数据我们通常在主板的BIOS也可以看到。
当我们可以在机器运行的时候通过lm_sensors随时来监测着CPU的温度变化,可以预防和保护因为CPU过热而会烧掉。
psensor工作原理?
Psensor是一个linux的图形硬件温度显示器。它可以监测不同硬件传感器(主板和CPU使用lm传感器)、磁盘驱动器(hddtemp)和NvidiaGpu的温度。风扇也可以被监视(lm传感器)。
linux怎么查看硬件温度?
。
Ubuntu下查看CPU温度风扇转速和硬盘温度
让你的Ubuntu也能像Windows那样显示网速和CPU温度
ubuntu下怎样查看硬件温度?
1,在安装Psensor前,需要安装和配置lm-sensors,这是一个用于硬件监控的命令行工具。
如果想要测量磁盘温度,还需要安装hddtemp。要安装这些工具,运行下面的这些命令:2,接着开始检测硬件传感器:3,要确保已经工作,运行下面的命令linux运维监控工具有很多,常见的工具如下:
1 zabbix:是一个基于Web界面的提供分布式系统监视以及网络监视功能的企业级开源解决方案。Zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位,解决存在的各种问题。
2 Nagios:是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警时间通知运维人员,在状态恢复后发出正常的邮件或短信通知。
3 Anturis:是一个基于云平台的Saas平台,可监控Windows、Linux服务器,网站和IT基础架构,通过全面的监控解决方案列表,让管理员快速了解整体主机或者服务器瓶颈与风险。
4 SeaLion:是一个基于云的Linux服务器监控工具,也是通过统一的仪表盘监控所有服务器指标,它只需几分钟即可完成设置,具有即时报警功能。
5 lcinga:是一个免费的开源监控系统,可以检查服务器资源的可用性,它会记录服务器问题并在停机的时候通知您。
6 Munin:是一个网络和系统监控工具,可帮助您分析服务器资源趋势,旨在成为一个即插即用的解决方案,安装后无需太多额外工作即可收集关键信息。
7 Monit:是一个用于管理和监控Unix系统的开源工具。可以进行自动维护和维修,如果出现错误情况,还可以自动触发保护行为。
8 Pingdom:可以对互联网上很多地方的服务器以及网站进行监控,以保证他们可以有效的运行;通过Pingdom,可以对电子邮件的服务器、FTP服务器、受密码保护的那些网站进行监控。
一、监控windows系统:
1、监视连接前的准备工作
1)进入被监视windows系统,开启以下二个服务Remote Procedure Call(RPC) 和Remote Registry Service (开始—)运行 中输入servicesmsc,开启对应服务即可)。
2)在被监视的WINDOWS机器上:右击我的电脑,选择管理->共享文件夹->共享 在这里面要有C$这个共享文件夹 (要是没有自己手动加上)。
3)在安装LR的机器上,开始—》运行,输入 \\被监视机器IP\C$ 然后输入管理员帐号和密码,如果能看到被监视机器的C盘了,就说明你得到了那台机器的管理员权限,可以使用LR去连接了。(LR要连接WINDOWS机器进行监视要有管理员帐号和密码才行。)
问题:在执行步骤3)时,输入 \\被监视机器IP\C$,出现不能以administrator身份访问被监控系统(若采用这种方式用LR对其监控的话,会提示:“找不到网络路径”)的情况,现象就是用户名输入框是灰色的,并且默认用户是guest。
解决办法:这是安全策略的设置问题(管理工具 -> 本地安全策略 -> 安全选项 ->“网络访问:本地帐户的共享和安全模式”)。默认情况下,XP的访问方式是“仅来宾”的方式,如果你访问它,当然就固定为Guest来访问,而guest账户没有监控的权限,所以要把访问方式改为“经典”模式,这样就可以以administrator的身份登陆了。修改后,再次执行步骤3),输入管理员用户名和密码,就可以访问被监控机器C盘了。
若这样都不行的话(可能是其它问题引起的),那只好采取别的方法了。在服务器的机子上,通过windows自带的“性能日志和警报”下的“计数器日志”中新增加一个监控日志(管理工具—)性能—)性能日志和警报),配置好日志,也能监控服务器的cpu、memory、disk等计数器。当然,这种方法就不是用LR来监控了。
2、用LR监视windows的步骤
在controller 中,Windows Resources窗口中右击鼠标选择Add Measurements,添加被监控windows的IP地址,选择所属系统,然后选择需要监控的指标就可以开始监控了。
二、监控linux
1 准备工作
可以通过两种方法验证服务器上是否配置了rstatd守护程序:
①使用rup命令,它用于报告计算机的各种统计信息,其中就包括rstatd的配置信息。使用命令rup 1013061203,此处1013061203是要监视的linux/Unix服务器的Ip,如果该命令返回相关的统计信息。则表示已经配置并且激活了rstatd守护进程;若未返回有意义的统计信息,或者出现一条错误报告,则表示rstatd守护进程尚未被配置或有问题。
②使用find命令
#find / -name rpcrstatd,该命令用于查找系统中是否存在rpcrstatd文件,如果没有,说明系统没有安装rstatd守护程序。
如果服务器上没有安装rstatd程序(一般来说LINUX都没有安装),需要下载一个包才有这个服务,包名字是rpcrstatd-401targz 这是一个源码,需要编译,下载并安装rstatd(可以在[url]http://sourceforgenet/projects/[/url]rstatd<wbr>这个地址下载)
下载后,开始安装,安装步骤如下:
tar -xzvf rpcrstatd-401targz
cd rpcrstatd-401/
/configure —配置操作
make —进行编译
make install —开始安装
rpcrstatd —启动rstatd进程
2)安装完成后配置rstatd 目标守护进程xinetd,它的主配置文件是/etc/xinetdconf,它里面内容是一些如下的基本信息:
#
# xinetdconf
#
# Copyright (c) 1998-2001 SuSE GmbH Nuernberg, Germany
# Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany
#
defaults
{
log_type = FILE /var/log/xinetdlog
log_on_success = HOST EXIT DURATION
log_on_failure = HOST ATTEMPT
#only_from = localhost
instances = 30
cps = 50 10
#
# The specification of an interface is interesting, if we are on a firewall
# For example, if you only want to provide services from an internal
# network interface, you may specify your internal interfaces IP-Address
#
# interface = 127001
}
includedir /etc/xinetdd
我们这里需要修改的是/etc/xinetdd/下的三个conf文件 rlogin,rsh,rexec这三个配置文件,打这三个文件里的disable = yes都改成 disable = no ( disabled 用在默认的 {} 中 禁止服务)或是把# default: off都设置成 on 这个的意思就是在xinetd启动的时候默认都启动上面的三个服务!
说明:我自己在配置时,没有disable = yes这项,我就将# default: off改为:default: on,重启后(cd /etc/initd/ /xinetd restart)通过netstat -an |grep 514查看,没有返回。然后,我就手动在三个文件中最后一行加入disable = no,再重启xinetd,再使用netstat -an |grep 514查看,得到tcp 0 0 0000:514 0000: LISTEN结果,表明rsh服务器已经启动。
只要保证Linux机器上的进程里有rstatd和xinetd这二个服务就可以用LR去监视了。
两点小的技巧:
①检查是否启动: rsh server 监听的TCP 是514。
[root@mg04 root]# netstat -an |grep 514
tcp 0 0 0000:514 0000: LISTEN
如果能看到514在监听说明rsh服务器已经启动。
②检查是否启动: rstatd
输入命令: rpcinfo -p
如果能看到类似如下信息:
程序 版本 协议 端口
100001 5 udp 937 rstatd
100001 4 udp 937 rstatd
100001 3 udp 937 rstatd
100001 2 udp 937 rstatd
100001 1 udp 937 rstatd
那就说明rstatd服务启动了,(当然这里也可以用ps ax代替)
③重起xinetd方法:
在suse linux如下操作:
cd /etc/initd/
/xinetd restart
看到网上有的地方说使用如下命令:
# service xinetd reload
# /sbin/service xinetd rstart
不知道是在什么系统用的。
④安装rsh,和rsh-server两个服务包方法
a 卸载rsh
# rpm –q rsh----------查看版本号
# rpm -e 版本号---------卸载该版本。
b.安装
# rpm –ivh rsh-017-14i386rpm rsh-server-017-14i386rpm
⑤在启动rpcrstatd时,会报错“Cannot register service: RPC: Unable to receive;errno = Ction refused”。
解决方法如下:
# /etc/initd /portmap start
# /etc/initd /nfs start
然后再次启动rpcrstatd就好了。
最后,在controller中,将UNIX resources拖放到右边窗口里面,右击鼠标选择Add Measurements,添加被监控linux的IP地址,然后选择需要监控的指标就可以了。
三、监控UNIX
lr监控UNIX,UNIX先启动一rstatd服务
以下是在IBM AIX系统中启动rstatd服务的方法:
1、 使用telnet以root用户的身份登录入AIX系统
2、 在命令行提示符下输入:vi/etc/inetdconf
3、 查找rstatd,找到
#rstatd sunrpc_udp udp wait root /usr/sbin/rpcrstatd rstatd 100001 1-3
4、将#去掉
5、:wq保存修改结果
6、命令提示符下输入:refresh –s inetd 重新启动服务。
这样使用loadrunner就可以监视AIX系统的性能情况了。
注:在HP UNIX系统上编辑完inetdconf后,重启inetd服务需要输入inetd -c
UNIX上也可以用rup命令查看rstatd程序是否被配置并激活
若rstatd程序已经运行,重启时,先查看进程ps -ef |grep inet,然后杀掉进程,再refresh –s inetd进行重启。
望采纳
1要监视一台Linux主机,需要在被监控的主机上安装net-snmp相关软件包,CentOS安装可使用“yum -y install net-snmp”命令:
# yum -y install net-snmp
……
Complete!
2修改配置文件命令:
# vi /etc/snmp/snmpdconf 确保snmpdconf文件中包含以下内容:
com2sec notConfigUser default public
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
view systemview included 1
access notConfigGroup "" any noauth exact systemview none none
syslocation wwwcactiezcom #系统的物理位置
syscontact Root xmjf@xmjfcom # 联系人
pass 136141441341 /usr/bin/ucd5820stat
保存并退出
3开启snmpd服务:
# service snmpd start
4设置snmpd每次开机时自动启动:
# chkconfig snmpd on。该命令执行完成后不会返回任何结果
5检查snmpd服务是否已在运行:
# netstat -nlup | grep ":161"
udp 0 0 0000:161 0000: 16986/snmpd
该命令检查本地是否已在监听UDP端口161,如果返回类似以上结果,表明snmpd服务启动成功。
6登录CactiEZ-Web界面,依次点击:“控制台”,“主机”,“添加”。添加以下设置:
如何使用CactiEZ进行监控Linux主机
7如果一切正常,您将会看到类似以下信息:
如何使用CactiEZ进行监控Linux主机
如果不正常,请检查团体名称,IP地址,防火墙等。
8主机添加后,需要添加图形,点击右上方的“为这个主机添加图形”。
81在“图形模板”区域钩选所有对象:
添加: ucd/net - CPU使用率
添加: ucd/net - 负载平均值
添加: ucd/net - TCP记数器
添加: ucd/net - TCP连接数
添加: ucd/net - 内存使用率
添加: 主机MIB - 进程数量
添加: 主机MIB - 已登录用户
82在“数据查询 [SNMP - 获取磁盘IO]”区域钩选您需要监控的磁盘名称:
如sda,sdb,hda等。
注意:磁盘IO有两个指标需要监控,一个是“磁盘IO 字节/秒”,另一个是“磁盘IO 传输/秒”,但一次只能添加一个,如果要监控两个指标,需要添加两次。
83在“数据查询 [SNMP - 获取处理器信息]”区域钩选您的逻辑处理器,
如果您只有一个逻辑处理器,那么这里将不可选择。
84在“数据查询 [SNMP - 获取已挂载分区]”区域钩选您需要监控的磁盘名称:
如“Real Memory”,“Swap Space”,“/”等,根据您的需求钩选。
85在“数据查询 [SNMP - 接口统计]”区域钩选您的网络设备,如“eth0”。
如果该主机为64位主机,请选择“流入/流出 位(64位)”。
如果该主机为32位主机,请选择“流入/流出 位”即可。
9再次点击“添加”已完成设置。
10查看主机状态,点击上方的“监视器”按钮,显示绿色表示正常。
公司使用的服务器是linux的操作系统,之前很长一段时间监控系统参数都是使用top等linux命令来监控
这样做的好处
1可以非常容易的监控的系统的状态
2实时性非常强
不足之处
1不能和loadrunner其他的图表进行合并,造成了很难在事后分析出系统的问题
2监控系统的数据无法直接保存,供下次参考使用
最近终于说服了公司的sa,让我能在性能测试环境做必要的设置,因为之前sa一直认为我要做的事情会对系统的安全性造成影响。
现在我来介绍一下如何在linux设置来完成loadrunner对服务器性能的监控
A验证服务器上是否配置了rstatd守护程序
1 rup 127001
2find / -name rpcrstatd
3/usr/sbin/rpcinfo -p
B下载rpcrstatd
http://sourceforgenet/projects/rstatd
C打开端口映射
1执行 setup命令
这时会弹出一个类似图形化的界面,光标移动到System services,回车。在新界面中找到portmap项,空格选中。然后选择OK,再选择quit。
2/etc/rcd/initd/portmap start //启动portmap
D编译安装rstatd
/configure
make all-am
make install-am
E起rstatd服务
/usr/local/sbin/rpcrstatd
F安装xinetd服务
yum install xinetdi386
/sbin/service xinetd restart
好了,liunx中的设置基本上都已经设置完了,接下来只要到loadrunner中加上对相应服务的监控就可以了
Java在linux上调用shell脚本?
近期正好结合工作实践,分享了一篇关于Java如何调用Shell的文章,希望能够帮到您。内容如下。
《Java配Shell等于美酒加咖啡》
化学中我们得知「氢气加氧气在点燃的情况下会生成水」。
生活中我们得知「良辰加美景的情况下会得到千金春宵一刻」。
技术上又何尝不是如此呢?先假设一个场景:BOSS让你实现一个服务监控的指挥室,能看到每个服务器的磁盘剩余空间,能看到。。。能看到。。。
其实讲真,实现思路有很多,但是不管黑猫白猫能抓住老鼠都是好猫,今天我们尝试用Java与Shell搭配一下,看看是否会产生惊奇的反应。
1首先通过JDK源码,品一品Runtime这杯美酒。
上图是摘取JDK中Runtime的部分源码,主要分成4大代码段来粗略认识她。
第一块代码段,可以看出Runtime构造私有化,提供了静态属性,并提前创建对象实例,并提供获取实例的静态方法,这不就是单例设计模式的使用么,当有面试官再问设计模式,拿去狂喷。
第二块代码段,主要是addShutdownHook()方法,添加关闭的钩子,说的直白点,其实允许研发人员插入一段在JVM关闭时执行的代码。例如在搭建服务框架时,面对需要完成优雅停服,打扫战场,释放资源等等,诸如此类的场景下都很有用。其中在Tomcat、Jetty等容器中都可以看到shutdownHook的身影。
Runtimeruntime=RuntimegetRuntime();
runtimeaddShutdownHook(newThread(){
@Override
publicvoidrun(){
Systemoutprintln("打扫战场,释放资源,完成优雅停服");
}
});
Systemoutprintln("服务启动完成");
代码运行效果如下。
服务启动完成
打扫战场,释放资源,完成优雅停服
第三块代码段,主要展现JDK针对Runtime提供的系列exec重载方法,这个是本次分享的重点,重头戏最后再说。
第四块代码段,主要是Runtime提供的一些获取系统信息的API,直接抛代码,拿去用就行了。
Runtimeruntime=RuntimegetRuntime();
Systemoutprintln(Stringformat("JVM可用本机CPU内核数%d",runtimeavailableProcessors()));
//默认为系统的1/4
Systemoutprintln(Stringformat("最大可用内存空间%dM",runtimemaxMemory()/1024/1024));
//默认为系统的1/64
Systemoutprintln(Stringformat("可用内存空间%dM",runtimetotalMemory()/1024/1024));
Systemoutprintln(Stringformat("空闲内存空间%dM",runtimefreeMemory()/1024/1024));
代码运行输出如下,其实真实环境中不妨用模板引擎FreeMarker渲染,然后通过邮件告警,实现的逼格高一些。
2在详细说Runtimeexec()这个重头戏之前,再品一品df这款咖啡。
Linuxdf命令,用于显示目前在系统上的磁盘使用情况统计,主要用于查看磁盘的分区,磁盘已使用的空间,剩余的空间。
命令如下:
df
常用选项如下:
3Runtime美酒加Shell咖啡会发生什么呢?
重头戏开始,回到Runtime的源码,我们看到exec()系列方法会帮我们启动一个Process进程,那不妨把df-h命令传入进去一探究竟。
publicclassFoo{
publicstaticvoidmain(Stringargs)throwsException{
//df命令用于查看磁盘的分区,磁盘已使用的空间,剩余的空间
//df-h以合适的单位来显示信息
Systemoutprintln(exec("df-h"));
}
privatestaticStringexec(Stringcommand)throwsException{
Stringcmd={"/bin/sh","-c",command};
StringBuilderout=newStringBuilder();
BufferedReaderreader=null;
InputStreamin=null;
try{
Processprocess=RuntimegetRuntime()exec(cmd);
in=processgetInputStream();
reader=newBufferedReader(newInputStreamReader(in));
Stringline;
while((line=readerreadLine())!=null){
outappend(line+"n");
}
processwaitFor();
}finally{
if(reader!=null){
readerclose();
}
}
returnouttoString();
}
}
代码中会发现调用了process的waitFor()方法,此方法作用会导致当前线程等待,一直要等到由该Process对象表示的进程终止,其实也就是等待把exec里面启动的Process中的所有事都干完(生产上出问题的大多出在这儿),代码运行效果如下。
效果确实可以,那么这么一来,想监控统计什么功能,不妨直接把命令交给Java程序去执行即可。
4
如果关注一猿小讲的伙伴应该清楚,在《如何让Java应用成为杀不死的小强?(中篇)》《如何让Java应用成为杀不死的小强?(下篇)》两篇中都用到了ProcessBuilder来执行命令启动进程,那Runtime与ProcessBuilder的主要区别是啥呢?
其实Runtimeexec()方法设计,可接受一个单独的字符串,这个字符串是通过空格来分隔可执行命令程序和参数的;当然也可以接受字符串数组参数。
如上图所示,ProcessBuilder的方法入参是一个ListString>或者多个字符串。
相同点是ProcessBuilderstart()和Runtimeexec()方法都被用来创建一个操作系统进程(执行命令行操作)。
5好了,几分钟的简单分享,主要让你接触并真正认识一下Runtime,希望能帮助你在工作中锦上添花。
最后依然用阿里新六脉神剑中的三脉送给大家:今天最好的表现是明天最低的要求;此时此刻非我莫属;认真生活快乐工作!
0条评论