目前服务器端ext4和xfs是主流文件系统,如何选择合适的文件系统,需要根据文件系统的特点加上业务的需求综合来定 。
2.3 、应用程序软件资源
应用程序的优化其实是整个优化工程的核心,如果一个应用程序存在BUG,那么即使所有其他方面都达到了最优状态,整个应用系统还是性能低下,所以,对应用程序的优化是性能优化过程的重中之重,这就对程序架构设计人员和程序开发人员提出了更高的要求 。
三、 分析系统性能涉及的人员3.1、Linux运维人员
在做性能优化过程中,Linux运维人员承担着很重要的任务 。
- 首先,Linux运维人员要了解和掌握操作系统的当前运行状态,例如系统负载、内存状态、进程状态、CPU负荷等信息,这些信息是检测和判断系统性能的基础和依据;
- 其次,Linux运维人员还有掌握系统的硬件信息,例如磁盘I/O、CPU型号、内存大小、网卡带宽等参数信息,然后根据这些信息综合评估系统资源的使用情况;
- 第三,作为一名Linux运维人员,还要掌握应用程序对系统资源的使用情况,更深入的一点就是要了解应用程序的运行效率,例如是否有程序BUG、内存溢出等问题,通过对系统资源的监控,就能发现应用程序是否存在异常,如果确实是应用程序存在问题,需要把问题立刻反映给程序开发人员,进而改进或升级程序 。
3.2、系统架构设计人员
系统性能优化涉及的第二类人员就是应用程序的架构设计人员 。如果Linux运维人员在经过综合判断后,发现影响性能的是应用程序的执行效率,那么程序架构设计人员就要及时介入,深入了解程序运行状态 。
- 首先,系统架构设计人员要跟踪了解程序的执行效率,如果执行效率存在问题,要找出哪里出现了问题;
- 其次,如果真的是架构设计出现了问题,那么就要马上优化或改进系统架构,设计更好的应用系统架构 。
系统性能优化最后一个环节涉及的是程序开发人员,在Linux运维人员或架构设计人员找到程序或结构瓶颈后,程序开发人员要马上介入进行相应的程序修改 。修改程序要以程序的执行效率为基准,改进程序的逻辑,有针对性地进行代码优化 。例如,Linux运维人员在系统中发现有条SQL语句耗费大量的系统资源,抓取这条执行的SQL语句,发现此SQL语句的执行效率太差,是开发人员编写的代码执行效率低造成的,这就需要把这个信息反馈给开发人员,开发人员在收到这个问题后,可以有针对性的进行SQL优化,进而实现程序代码的优化 。
从上面这个过程可以看出,系统性能优化一般遵循的流程是:
- 首先Linux运维人员查看系统的整体状况,主要从系统硬件、网络设备、操作系统配置、应用程序架构和程序代码五个方面进行综合判断,如果发现是系统硬件、网络设备或者操作系统配置问题,Linux运维人员可以根据情况自主解决;
- 如果发现是程序结构问题,就需要提交给程序架构设计人员;
- 如果发现是程序代码执行问题,就交给开发人员进行代码优化 。
- 这样就完成了一个系统性能优化的过程 。
例如,linux系统下的一个网站系统,用户反映,网站访问速度很慢,有时无法访问 。
针对这个问题:
- 第一步要做的是检测网络,可以通过ping命令检查网站的域名解析是否正常,同时,ping服务器地址的延时是否过大等等,通过这种方式,首先排除网络可能出现的问题;如果网络没有问题
- 接着进入第二步,对linux系统的内存使用状况进行检查,因为网站响应速度慢,一般跟内存关联比较大,通过free、vmstat等命令判断内存资源是否紧缺,如果内存资源不存在问题
- 进入第三步,检查系统CPU的负载状况,可以通过sar、vmstat、top等命令的输出综合判断CPU是否存在过载问题,如果CPU没有问题
- 继续进入第四步,检查系统的磁盘I/O是否存在瓶颈,可以通过IOStat、vmstat等命令检查磁盘的读写性能,如果磁盘读写也没有问题,linux系统自身的性能问题基本排除,最后要做的是检查程序本身是否存在问题 。通过这样的思路,层层检测,步步排查,性能问题就“无处藏身”,查找出现性能问题的环节也就变得非常简单
推荐阅读
- 分享几款Linux 下C/C++程序内存泄漏检查工具
- 一招开启win10“最强”模式,让你的电脑性能急速飙升!
- Linux下查看端口占用
- Linux安装nfs文件服务器
- Linux 安装Git
- Linux安装Docker
- Linux重装后登录远程显示access denied
- Linux+Nginx+MySQL+PHP CentOS 8.1下搭建LEMP环境
- Linux 常见高危操作
- NVIDIA|跳过40系列 NVIDIA新一代显卡或命名RTX 5080/5090:性能怪兽