Linux性能监控与调优工具?

Linux性能监控与调优工具?,第1张

除了保证程序的正确性以外,在项目开发中往往还关心性能和稳定性。我们往往要对内核、应用程序或整个系统进行性能优化。在性能优化中常用的手段如下:

使用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不能对其进行分析。

CPU是影响linux性能的主要因素之一。vmstat命令:显示关于系统各种资源之间相关性能的简要信息。

procs那栏中的r表示运行和等待CPU时间片的进程数,如果这个值长期大于系统CPU的个数那就说明CPU不足,需要增加CPU。memory那栏中:swapd表示切换到内存交换区的内存数量。free表示当前空闲的物理内存数量。buff表示块设备(/dev/sda)读写需要的缓冲。cache表示文件系统的缓存。如果值较大,说明缓存中的文件数较多。swap中si表示由磁盘调入内存。so表示由内存调入磁盘。在一般情况下,si和so的值都为0,如果这2个值长期不为0

的话,说明系统内存不足,需要添加内存。

www.zhishiwu.com

io:显示磁盘读写状况bi表示读磁盘数据的总量。bo表示写磁盘数据的总量。system:显示间隔内发生的中断数in表示在磨一时间间隔中每秒设备中断数。cs表示每秒产生的上下文切换次数。这2个值越大,则说明内核消耗CPU时间就越多。cpu:显示了CPU的使用状态us显示了用户进程消耗CPU时间百分比。如果us值越高则说明消耗CPU的时间越多,如果us的值长期大于50%则需要优化程序或算法。sy显示内核消耗CPU时间百分比。如果us+sy值大于80%,则可能存在CPU资源不足情况。id显示CPU处于空闲状态时间百分比。wa显示IO等待所占用CPU时间百分比。wa越高,则IO等待越严重,则考虑提高磁盘读写性能。wa参考值20%。sar命令:可以对每个方面进行单独的统计,但是增加了系统开销,但是对系统的统计结果不会有很大影响。

由上图可以看出我的系统只有一个CPU,如果有多个CPU的话会显示多个。在多个CPU的情况下,如果想对其中一个CPU进行信息统计的话,则使用sar

–P

0

2

3

对第一个CPU进行信息统计。%user显示用户进程消耗的CPU时间百分比%nice显示运行正常进程所消耗CPU时间百分比%system显示了系统进程消耗CPU时间百分比%iowait显示IO等待所占用CPU时间百分比%idle显示了CPU处在空闲时间百分比%steal显示在内存相对紧张的环境下pagein强制对不同的页面进行的steal *** 作。最后一行Average显示了上面统计的平均值。如果在一个多CPU的系统中,如果程序使用了单线程,会造成CPU整体使用率不高,导致一个CPU在使用,其他CPU处在闲置状态。

www.zhishiwu.com

iostat命令:主要用于统计磁盘IO状态,但是也能查看CPU使用情况,但是只能显示所有CPU的平均信息。

这里各列的意思与sar中的意思一样。uptime命令:主要统计系统当前的运行状况。

系统在1分钟内,5分钟内,15分钟内的平均负荷。上面的vmstat,sar,iostat,uptime命令主要是用于统计CPU信息的,还可以通过top,ps查看进程使用情况,来判断CPU负载过大的原因。

作者

alan9101

1、为磁盘I/O调整Linux内核电梯算法在选择文件系统后,有一些内核和挂载选项可能会影响到它的性能表现,其中一个内核设置是电梯算法,通过此算法,系统可以平衡低延迟需求,收集足够的数据,从而有效地组织对磁盘的读和写请求。2、禁用不必要的守护进程服务器上有很多守护进程或服务不是必需的,这些服务不但没有发挥作用,还消耗了一定的内存和CPU,因此,需要将它们从服务器移除,这一步最大的好处就是可以加快启动时间,释放内存。3、关掉GUI一般来说,Linux服务器是不需要GUI的,所以管理任务都可以在命令行下完成,因此最好关掉GUI。4、清理不需要的模块或功能在服务器软件包中有太多被启动的功能或模块实际上是不需要的,仔细看看Apache配置文件,确定FrontPage支持或其它额外的模块是否真的要用到,如果不需要,应该毫不犹豫地从服务器禁用掉,这样有助于提高系统内存可用量,腾出更多资源给那些真正需要的软件,让它们运行得更快。5、禁用控制面板在Linux中,有许多流行的控制面板,如Cpanel,Plesk,Webmin和phpMyAdmin等,但是,禁用掉这些软件包可以释放出大约120MB内存,它们可以通过PHP脚本(尽管有些不安全),或命令行命令启用,这样做后,内存使用量大约可以下降30-40%。6、改善Linux Exim服务器性能7、使用AES256增强gpg文件加密安全为了提高备份文件或敏感信息的安全,许多Linux系统管理员都会使用gpg进行加密,它是一个开放的加密算法,没有什么比它更安全的了。8、远程备份服务安全安全是选择远程备份服务最重要的因素,大多数系统管理员都害怕两件事:(黑客)可以删除备份文件,不能从备份恢复系统。为了保证备份文件100%的安全,备份服务公司提供远程备份服务器,使用scp脚本或RSYNC通过SSH传输数据,这样,没有人可以直接进入和访问远程系统,因此,也没有人可以从备份服务删除数据。在选择远程备份服务提供商时,最好从多个方面了解其服务强壮性,如果可以,可以亲自测试一下。


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

原文地址: https://outofmemory.cn/yw/7566962.html

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

发表评论

登录后才能评论

评论列表(0条)

保存