linux监控命令(Linux监控系统)

2023-11-19 0 256

目录: 1、Linux性能监控与调优工具? 2、Linux常用的内容查看命令有哪些? 3、Linux系统监控命令及如何定位到Java线程 4、我想监视linux系统的内存使用情况,在linux下有哪些视图或者命令行工具可用 5、13,linux上怎么动态监控一个文件的内容变化 Linux性能监控与调优工具? 除了保证程序的正确性以外,在项目开发中往往还关心性能和稳定性。我们往往要对内核、应用程序或整个系统进行性能优化。在性能优化中常用的手段如下: 使用top、vmstat、iostat、sysctl等常用工具 top命令用于显示处理器的活动状况。在缺省情况下,显示占用CPU最多的任务,并且每隔5s做一次刷新;vmstat命令用于报告关于内核线程、虚拟内存、磁盘、陷阱和CPU活动的统计信息;iostat命令用于分析各个磁盘的传输闲忙状况;netstat是用来检测网络信息的工具; sar用于收集、报告或者保存系统活动信息,其中,sar用于显示数据,sar1和sar2用于收集和保存数据 sysctl是一个可用于改变正在运行中的Linux系统的接口。用sysctl 可以读取几白个以上的系统变量,如用sysctl—a可读取所有变量。 sysctl的实现原理是:所有的内核参数在/proc/sys中形成一个树状结构,sysctl系统调用的内核函数是sys_sysctl,匹配项目后,最后的读写在do_sysctl_strategy中完成。 2.使用高级分析手段,如OProfile、gprof OProfile可以帮助用户识别诸如模块的占用时间、循环的展开、高速缓存的使用率低、低效的类型转换和冗余操作、错误预测转移等问题。它收集有关处理器事件的信息,其中包括TLB的故障、停机、存储器访问以及缓存命中和未命中的指令的攫取数量。OProfile支持两种采样方式:基于事件的采样(Event Based)和基于时间的采样(Time Based)。基于事件的采样是OProfile只记录特定事件(比如L2缓存未命中)的发生次数,当达到用户设定的定值时Oprofile就记录一下(采一个样)。这种方式需要CPU内部有性能计数器(Performace Counter))。基于时间的采样是OProfile借助OS时钟中断的机制,在每个时钟中断,OProfile都会记录一次(采一次样)。引入它的目的在于,提供对没有性能计数器的CPU的支持,其精度相对于基于事件的采样要低,因为要借助OS时钟中断的支持,对于禁用中断的代码,OProfile不能对其进行分析。 Linux常用的内容查看命令有哪些? 1、cat 用于显示小文件的内容,或者在shell脚本里显示文件内容,不支持翻页。 [root@localhost ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Fri Jun 14 18:02:15 2019 可以显示/etc/fstab的内容,如果想显示行号,只要加上 cat -n参数即可 2、less 当文件比较大,cat查看时并不方便,因为cat不支持翻页,是一次性显示完的。 所以cat更适合在shell脚本中使用,让机器自动读取文件,而不适合人类来看。 所以当我们在看大文件时,一般会会用less命令 这个文件 /etc/man_db.conf有一百多行,我们用less来翻页查看 [root@localhost ~]# less /etc/man_db.conf 上下翻页,q键退出 3、head 如果只想看一个文件的前几行,可以用head,比如,当我们查看ip地址时,其实只关注前2行就足够了 [root@localhost ~]# ifconfig eth0 eth0: flags=4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500 inet 172.20.10.3 netmask 255.255.255.240 broadcast 172.20.10.15 inet6 240e:c0:f4be:300:e64:6e3c:b445:efab prefixlen 64 scopeid 0x0global inet6 fe80::b7ad:e2ed:832e:99a9 prefixlen 64 scopeid 0x20link ether 00:0c:29:84:23:62 txqueuelen 1000 (Ethernet) RX packets 1017 bytes 130078 (127.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 729 bytes 120983 (118.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 4、tail 和head相对,tail是只显示末尾几行,比如我们想查看一个文件的更新情况,只要看最后几行就可以了 [root@localhost ~]# tail -1 /etc/fstab /dev/mapper/centos-swap swap swap defaults 0 0 [root@localhost ~]# tail -数字,就是查看一个文件的最后几行 tail也可以自动监测文件的更新情况,如果有更新,立即在屏幕显示,使用tail -F参数,注意,使用大写-F 5、wc 可以查看一个文件有多少行,多少单词,多少字节 [root@localhost ~]# wc /etc/fstab 19 62 504 /etc/fstab 这个文件有19行,62个单词,504个字节 更多详细的介绍可查看“Linux命令大全”。 Linux系统监控命令及如何定位到Java线程 CPU资源时,按照以下步骤进行查找: (一):通过【 top -p 12377 -H】 查看java进程的有哪些线程的运行情况; 和通过【jstack 12377 stack.log】生成Java线程的dump详细信息; 先用top命令找出占用资源厉害的java进程id,如图:# top 如上图所示,java的进程id为’52554′,接下来用top命令单独对这个进程中的所有线程作监视: 1 top -p 52554 -H # top视图里面里面可以通过快捷键依次b ,x高亮显示top的列找出需要的线程,默认CPU排序,Sh 我想监视linux系统的内存使用情况,在linux下有哪些视图或者命令行工具可用 这方面的指令太多了,大体上整理一下12个吧。 1. /proc/meminfo 查看RAM使用情况最简单的方法是通过 /proc/meminfo。这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。/proc/meminfo列出了所有你想了解的内存的使用情况。进程的内存使用信息也可以通过 /proc/pid/statm 和 /proc/pid/status 来查看。 2. atop atop命令是一个终端环境的监控命令。它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注。 3、 free free命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。 4. GNOME System Monitor GNOME System Monitor 是一个显示最近一段时间内的CPU、内存、交换区及网络的使用情况的视图工具。它还提供了一种查看CPU及内存使用情况的方法。 $ gnome-system-monitor 5. htop htop命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。列表可以水平及垂直滚动。 6. KDE System Monitor 功能同 4 中介绍的GENOME版本。 $ ksysguard 7. memstat memstat是一个有效识别 executable(s), process(es) and shared libraries使用虚拟内存情况的命令。给定一个进程ID,memstat可以列出这个进程相关的可执行文件、数据和共享库。 8. nmon nmon是一个基于ncurses的系统基准测试工具,它可以监控CPU、内存、I/O、文件系统及网络资源等的互动模式。对于内存的使用,它可以实时的显示 总/剩余内存、交换空间等信息。 9. ps ps命令可以实时的显示各个进程的内存使用情况。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 “–sort”选项对进程进行排序,例如按RSS进行排序: $ ps aux –sort -rss 10. smem smem命令允许你统计基于/proc信息的不同进程和用户的内存使用情况。内存使用情况的分析可以导出图表(如条形图和饼图)。 $ sudo smem –pie name -c “pss” 11. top top命令提供了实时的运行中的程序的资源使用统计。你可以根据内存的使用和大小来进行排序。 $ top 12. vmstat vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存。 $ vmstat -s 13,linux上怎么动态监控一个文件的内容变化 用途说明 tail命令可以输出文件的尾部内容,默认情况下它显示文件的最后十行。它常用来动态监视文件的尾部内容的增长情况,比如用来监视日志文件的变化。与tail命令对应的是head命令,用来显示文件头部内容。 常用参数 格式:tail file 输出指定文件file的尾部内容,默认输出最后十行内容(outputthe last part of files。Print the last 10 lines of each FILE tostandard output. ) 格式:tail file1 file2… 指定多个文件时,会显示每个文件的文件名称,再显示该文件的尾部内容(Withmore than one FILE, precede each with a header giving the file name.) 格式:tail 格式:tail – 不指定文件时,表明从标准输入读取内容,这通常用在管道线后面,把前一个命令的输出作为tail的输入内容(Withno FILE, or when FILE is -, read standard input.) 格式:tail -n file 格式:tail -n n file 格式:tail –lines=n 显示文件最后n 行,比如tail -20 file就是显示文件最后10行,这个参数可以配合其他参数与使用。注意上面三种格式的斜体n 是实际要显示的行数的数值。 注意:tail-n可以显示最后n行的文本内容。那么有没有一种方式显示从n行开始的文本内容,答案是肯定的。 tail -n +4file表示显示文件file从第4行开始的内容。从1开始计数。 格式:tail -f file 动态跟踪文件file的增长情况(outputappended data as the filegrows),tail会每隔一秒去检查一下文件是否增加新的内容,如果增加就追加在原来的输出后面显示。但这种情况,必须保证在执行tail命令时,文件已经存在。 如果想终止tail-f的输出,按Ctrl+C中断tail程序即可。如果按Ctrl+C不能中断输出,那么可以在别的终端上执行killall tail强行终止。 注意:采用tail-f来监控文件变化情况时,在某些情况会不太灵。比如在Java应用程序中采用log4j日志时,每隔1个小时生成一个新的日志文件,当前的日志输出在 LOG4J.LOG中,当一个小时过去后,log4j会将LOG4J.LOG改名成LOG4J.yyyy-mm-dd-HH的形式。那么这个时候tail -f就不能动态输出新的日志内容了。tail命令本身提供了很多参数,似乎都不能完美的解决这个问题。最后只好编写了一个脚本ftail.sh来跟踪日 志,详见《Linux下实时跟踪log4j日志文件的bash脚本 – 增强了tail -f的功能 》。刚才我仔细查看了tail的手册页,发现tail -F就能够做到跟踪这种类型的日志。转念一想,这种需求应该早就被Linux世界的人给满足了的。 格式:tail -F file 格式:tail–follow=name –retry file 功能与tail -ffile相同,也是动态跟踪文件的变化,不同的是执行此命令时文件可以不存在。 以上处理都是针对文本文件的,下面是针对二进制文件的情形。 格式:tail -c n file 取文件file的最后n个字节。 格式:tail -c +n file 取文件file的第n个字节后的内容。从1开始计数。 使用示例 示例一 输出文件尾部 先使用seq命令输出20个数字保存到1.txt,然后尝试使用tail命令。 [root@new55 ~]# seq 20 1.txt [root@new55 ~]# cat 1.txt 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [root@new55 ~]# tail 1.txt 11 12 13 14 15 16 17 18 19 20 [root@new55 ~]# tail -3 1.txt 18 19 20 [root@new55 ~]# tail -n 3 1.txt 18 19 20 [root@new55 ~]# tail –lines=3 1.txt 18 19 20 [root@new55 ~]# tail -n +14 1.txt 14 15 16 17 18 19 20 [root@new55 ~]# 示例二 动态跟踪tomcat输出 动态跟踪tomcat输出。 [root@web logs]# tail -f catalina.out at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) atorg.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:619) 2010-12-0313:23:02,236 [http-80-15] DEBUG mhr.roi.MhrManager -MhrGetJobReq={seq=991,job_id=’86130469-0006′} 2010-12-0313:23:02,301 [http-80-15] DEBUG mhr.roi.MhrManager -MhrGetJobRsp={seq=991,result=0(成功),,info={job_id=’86130469-0006′,employer_id=86130469,employer_name=无锡富士时装有限公司,,,job_title=’|570309|’,job_title0=’文员’,job_type=f(全 职),issue_time=’2010-11-0300:00:00.0′,work_address=’1902′,work_address0=无锡 市,desired_count=’1′,,,,,,job_desc=大专,1年以上5s管理工作经验,电脑操作熟练。,required_experience=1(一年以上),,,,required_degree=15(大专),,,,,,,valid_days=30,access_count=12,expire_time=’2010-12-0300:00:00.0′,job_status=1(过期),,,,,,contact_name=王小 姐,contact_number=0510-85550088,remarks=’此职位是从后台导入的 ‘,enter_time=’2010-11-0309:45:11.0′,change_time=2010-12-0302:18:05.0,,job_seq=123201,,required_min_age=22,,,accommodations=面议,serve_principal=wjw12580,job_summary=大专,1年以上5s管理工作经验,电脑操作熟练,,}} 2010-12-0313:23:02,302 [http-80-15] DEBUG mhr.roi.MhrManager -MhrGetEmployerReq={seq=0,employer_id=’86130469′} 2010-12-0313:23:02,304 [http-80-15] DEBUG mhr.roi.MhrManager -MhrGetEmployerRsp={seq=0,result=0(成功),,info= {employer_id=’86130469′,employer_name=无锡富士时装有限公司,employer_region=1902,employer_address=无锡市滨湖镇山水城科技园8号,,employer_desc=无锡 富士时装(集团)有限公司成立于1992年,是中日韩合资企业。主要生产高档针织时装,产品全部外销,连续多年荣获“中国行业500强”、“全国工业重点 行业效益十佳企业”、“无锡市百佳企业”等称号。公司总部位于江苏省无锡市滨湖镇山水城科技园,全新的厂房设施,占地面积30亩。公司分别在苏州、泰兴、 盐城、徐州设有分厂,集团公司现有职工1500多人,年销售额近3亿元。,,,,,,open_mode=5(系统自动操 作),open_time=’2010-11-0309:45:10.0′,,,,,contact_name=王小 姐,contact_number=0510-85550088,,,,,employer_status=1(已经开通),,,login_password=871386,,agency=false,balance=100.0000,,,,,serve_principal=wjw12580,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,remarks=’此帐号由“12580zgz-盐城维克多网络传媒有限公司”导入’,enter_time=’2010-11-03 09:45:10.0′,}} Ctrl+C [root@web logs]# 示例三 动态跟踪log4j日志 经过我的试验,发现tail -F功能的强大,它等同于–follow=name–retry。如果你跟踪的文件被移动或者改名后, 你还想继续tail它, 你可以使用这个选项。 tail手册页中关于–retry的说明:keep trying to open a file even if itis inaccessible when tail starts or if it becomes inaccessible later; useful when following by name, i.e., with –follow=name。 tail命令开始执行时文件不存在或者执行过程中文件不能访问,会不断重试。 关于–follow的说明:-f, –follow[={name|descriptor}]output appended data as the file grows; -f, –follow, and –follow=descriptorare equivalent 。–follow=descriptor表明跟踪的是文件描述符, –follow=name表明跟踪的是文件名称。 如果文件名称改掉之后,还想继续跟踪原文件名称对应的尾部内容,就得使用-F选项而不是-f选项了。 [root@webimx_server]# tail -F log/IMX.LOG 14:13:28.892 INFO ImxConnection[6] imx.server.ImxConnection – RXIMX_ACTIVE_TEST{seq=3460,client_id=1291343201649042,presence_status=1(presence_status_online),} 14:13:28.892 DEBUGImxConnection[6] org.logicalcobwebs.proxool.ImxDB – 006417 (01/02/00) -Connection #9 served 14:13:28.892 INFO ImxConnection[6] imx.dbo.ImxOnlineInfoRow – EXEC SQL UPDATEimx_online_info SET last_active_time = ‘2010-12-03 14:13:28.0′ WHERE account =’zhy’ 14:13:28.894 DEBUGImxConnection[6] org.logicalcobwebs.proxool.ImxDB – UPDATE imx_online_info SETlast_active_time = ‘2010-12-03 14:13:28.0’ WHERE account = ‘zhy’; (1milliseconds) 14:13:28.894 DEBUGImxConnection[6] org.logicalcobwebs.proxool.ImxDB – 006417 (00/02/00) -Connection #9 returned (now AVAILABLE) 14:13:29.625 INFO ImxConnection[6] imx.server.ImxConnection – RXIMX_ACTIVE_TEST{seq=3461,client_id=1291343201649042,presence_status=1(presence_status_online),} 14:13:29.626 DEBUGImxConnection[6] org.logicalcobwebs.proxool.ImxDB – 006418 (01/02/00) -Connection #8 served 14:13:29.626 INFO ImxConnection[6] imx.dbo.ImxOnlineInfoRow – EXEC SQL UPDATEimx_online_info SET last_active_time = ‘2010-12-03 14:13:29.0′ WHERE account =’zhy’ 14:13:29.627 DEBUGImxConnection[6] org.logicalcobwebs.proxool.ImxDB – UPDATE imx_online_info SETlast_active_time = ‘2010-12-03 14:13:29.0’ WHERE account = ‘zhy’; (0milliseconds) 14:13:29.653 DEBUGImxConnection[6] org.logicalcobwebs.proxool.ImxDB – 006418 (00/02/00) -Connection #8 returned (now AVAILABLE) Ctrl+C [root@webimx_server]# 【linux监控命令】的内容来源于互联网,若引用不当,请发邮件456@456.cn联系删除

相关文章

猜你喜欢
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

  • 0 +

    访问总数

  • 0 +

    会员总数

  • 0 +

    文章总数

  • 0 +

    今日发布

  • 0 +

    本周发布

  • 4975 +

    运行天数

你的前景,远超我们想象