首页 > 系统相关 > 应用程序响应缓慢的处理方式(LInux)

应用程序响应缓慢的处理方式(LInux)

时间:2023-10-21 16:02:25浏览次数:34  
标签:命令 应用程序 响应 LInux 进程 磁盘 使用率 CPU

一:概述

假如你是一名Linux系统管理员,需要处理应用程序遇到的各种问题,优化系统配置。硬件问题、软件问题、网络问题等都会导致系统中应用程序响应速度变得缓慢,优化应用程序、提高系统资源利用率是系统管理员应该掌握的技能之一。

二:检查应用程序的资源占用情况

Linux系统中处理应用程序的速度主要取决于CPU、内存和磁盘等资源的使用情况。用户可以通过查看系统中应用程序进程的资源使用情况处理系统资源分配的方式。ps、top这些命令可以检查每个进程的状态,vmstat命令可以检查内存和cpu的使用率等信息,hdparm命令可以检查磁盘的性能。

<1>ps命令

ps命令用于检查每个进程的的CPU使用率、内存使用率,其中ps命令的-o选项可以指定的参数如下表所示:

参数

说明

pid

进程ID

comm

命令名称

nice

nice值。设置在=20(最高优先级)和19(最低优先级)之间,只有root可以设置负数,默认值为0

pri

ps命令显示的操作系统的优先级139(最高优先级)至0(最低优先级)

%cpu

CPU的使用率(百分比)

%mem

内存的使用率(百分比)

rss

进程占用的固定内存。以千字节为单位

vsize

虚拟内存的大小(单位KiB)

通过这些参数,我们可以判断这个应用程序到底占用了多少资源。以Firefox浏览器为例,使用ps命令检查firefox的状态,指定上述8个参数,如下图所示:

                                应用程序响应缓慢的处理方式(LInux)_bc

FireFox浏览器进程的ip为2481,命令名称为firefox,nice值为0(默认值为0),pri值为19,CPU的使用率为18.7%,内存的使用率为2.5%,尚未使用的区域大小为211928,虚拟内存大小为3014920。随着Firefox浏览器显示网页数量的增多,该进程的数据区域也会不断的扩大。

<2>top命令

如果想通过CPU的使用率查看进程的信息,可以使用top命令。top命令会在显示结果的顶部列出一个五行摘要的信息区域,该区域显示系统的总体利用率等统计信息,摘要信息下面是任务区域,该区域列出正在运行中的进程信息,默认情况下是CPU的使用率降序显示,也可以通过执行过程中按键输入以内存使用率等顺序显示。

更改显示顺序字段:按下f建进入选择字段界面,按下s键选择字段,按下q键退出。

突出显示选中的字段:按下b键,黑白翻转选中的字段,按下x键执行黑白翻转。

更改显示行数:按下n键输入指定显示的行数。

设置top命令的显示结果为15行,如下如所示。在top命令的执行结果中按下n键,会出现输入行数的提示界面,在此界面输入15即可了。

                                应用程序响应缓慢的处理方式(LInux)_优先级_02

如果发现无关的程序太多了就将它们关闭即Kill掉即可.

<3>free命令

系统的容量和磁盘性能也是重要的指标。free命令用于显示系统内存和交换空间的使用情况,如果指定-h选项,则会以MB或GB为单位显示系统容量的使用情况。使用free命令指定-h选项显示内存和交换空间的使用情况如下图所示。内存大小总计(total)7.8G,已用(used)1G,可用(available)6.5G,交换空间的大小总计(total)8G,已用(used)0B.

                                应用程序响应缓慢的处理方式(LInux)_应用程序_03

还有hdparm命令可以检查磁盘的性能,指定-t选项检查磁盘的传输速度,如下图所示:

<4>可以将应用程序作为系统性能的测试对象。

以bc为例,它是Linux系统中的计算工具,在终端执行bc命令可以进行四则运算,还可以使用数学函数执行计算。我们计算所需的时间来衡量,进行性能评估。使用bc命令指定-l选项加载math函数库进行计算,计算6666的100000次幂.如下图所示:

                                应用程序响应缓慢的处理方式(LInux)_bc_04

                                应用程序响应缓慢的处理方式(LInux)_应用程序_05

测量计算次幂的所需时间,通过管道将计算公式传递给bc命令,并使用time命令评估执行时间。然后将显示结果重定向到/dev/null。通过time命令测量计算所须的时间为1min21.335秒,如下图所示:

                                应用程序响应缓慢的处理方式(LInux)_bc_06

time命令显示的字段含义如下。

  1. real:从开始到结束的时间。
  2. user:用户模式下CPU的执行时间。
  3. sys:内核模式下的CPU执行时间。

执行上述操作之后,再重新打开一个终端,使用ps命令检查bc进程资源使用情况,如下图所示。结果显示有关于bc的进程,最后一个进程号为的bc进程是计算6666的1000000次幂的进程。该进程的rss和vsize分别为,这种面向计算的的进程性能主要取决于CPU的分配时间,并且几乎不受内存使用情况的影响。

                                应用程序响应缓慢的处理方式(LInux)_应用程序_07

除了通过计算评估性能之外,还可以通过计算圆周率来检查性能。数学函数a()就是arctan,用于计算PI,根据tan(n /4)=1以及arctan(1) = pi / 4,计算4 * a(1),计算圆周率如下图所示。在计算圆周率之前可以使用scale来指定计算到小数点后几位数。

                                应用程序响应缓慢的处理方式(LInux)_bc_08

然后执行time命令评估PI所需的时间,如下图所示。计算Pi的小数点后1000位数字所用的时间为。

                                应用程序响应缓慢的处理方式(LInux)_应用程序_09

即使每次执行相同的命令它们的花费时间也是不同的。这个时间和系统运行情况相关。

三:降低基于计算的应用程序的处理时间

Linux系统有一个分时处理系统(TSS,time-sharing System),系统中的多个进程分别叫做时间片,并且在分配极短的CPU时间内执行处理(时间通常以几十毫秒到几百毫秒为单位)。

可以通过以下的方式分配更多的CPU处理时间来缩短整体的处理时间。

  • 终止不必要的进程。
  • 增加优进程的优先级。
  • 降低其他进程的优先级。

更改优先级测试bc命令的次幂计算时间,如下图所示。

                                应用程序响应缓慢的处理方式(LInux)_bc_10

通过处理可以发现优先级越高,处理时间越快。

如果你想知道磁盘存储的处理速度,使用hdparm -T命令。基于磁盘I/O程序的性能取决于磁盘处理速度,用户可以使用高速存储在较短时间内处理磁盘。使用parted命令可以显示内置磁盘的信息。通过磁盘内置高速缓存时,大容量读写或小容量读写频繁读写不能达到高速缓存的效果。


标签:命令,应用程序,响应,LInux,进程,磁盘,使用率,CPU
From: https://blog.51cto.com/u_15912723/7967756

相关文章

  • Linux centos7网卡起不来的现象
    现象如下图:FailedtostartLSB:Bringup/downnetworking.解决方法一:一般跟系统自带的NetworkManager这个管理套件有关系,关掉就可以解决systemctlstopNetworkManger//关闭NetworkManager套件服务systemctldisalbleNetworkManager//开机自动关闭systemctkstartnetwork......
  • 《Unix/Linux系统编程》教材学习笔记第三章
    chapter3多任务处理一般来说,多任务处理指的是同时进行几项独立活动的能力。在计算机技术中,多任务处理指的是同时执行几个独立的任务。在单处理器(单CPU)系统中,一次只能执行一个任务。多任务处理是通过在不同任务之间多路复用CPU的执行时间来实现的,即将CPU执行操作从一个任务切换到......
  • Linux系统监控工具-glances
    一、glances介绍glances是一个基于python语言开发,可以为linux或者UNIX性能提供监视和分析性能数据的功能。glances在用户的终端上显示重要的系统信息,并动态的进行更新,让管理员实时掌握系统资源的使用情况,而动态监控并不会消耗大量的系统资源,比如CPU资源,通常消耗小于2%,glances默认......
  • Linux终端的使用
    一、终端的作用要了解终端,就要了解一下计算机方面的历史,早期的计算机都属于大中型计算机,是个庞然大物,占用很大的空间,属于公用产品。不像现在的电脑,可以人手一部,直接操作。那如何对这些计算机进行控制与操作呢。那就搞个终端设备来操作。因此一台计算机上有很多种不同的终端设备也......
  • 捡起ctf学习 day1 Linux Labs
    1.把忘记密码的kali重置了密码进入GRUB启动程序,修改命令,重置密码(参考https://www.cnblogs.com/wh0915/p/17153270.html) 2.做题,ssh连接命令ssh-p端口用户名@网址然后输入密码即可连接 cd命令:切换当前目录百至其它目录,比如进入/etc目录,则执行cd/etccd/:在Linux系......
  • linux 网络管理
    现代人的生活越来越依赖网络,对于一个操作系统来讲,网络功能的支持和管理就更为重要了,本节课我们一起来看一下在CentOS8中如何对网络进行管理NetworkManager和常用工具和基本用法NetworkManager介绍在linux系统中传统的网络管理方法是用过一个叫network的服务来实现,在CentOS7中依......
  • linux磁盘基本管理
    一、磁盘介绍磁盘:计算机中的外部存储设备,负责存储计算机数据,并且断电后也能保持数据不丢失。磁盘分类:按照物理结构:机械磁盘固态磁盘按照接口:IDESCSISATASASmSATAM.2NVMEPCIe按照尺寸:机械硬盘:1.8寸2.5寸3.5寸固态硬盘:SATA:2.5寸M.2:2242、2260、2280......
  • linux磁盘管理-RAID介绍
    一、RAID介绍RAID(RedundantArrayofIndependentDisk独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余......
  • linux服务管理
    systemctl命令管理服务我们一起来看一下在服务管理方面systemctl这个工具如何使用[root@zutuanxue~]#systemctlstartservernamestart 启动服务stop 停止服务restart 重启服务(没启动的服务会启动)try-restart 只重启正在运行的服......
  • Linux基本优化
    一、selinux和防火墙优化1、SElinuxselinux安全增强型Linux(Security-EnhancedLinux)简称SELinux,它是一个Linux内核模块,也是Linux的一个安全子系统。SELinux主要由美国国家安全局开发。它的主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。也由于它......