本文目录导读:
《后端部署到服务器后查看明细的全面指南》
当后端应用部署到服务器上后,查看明细对于开发人员、运维人员以及管理人员都具有至关重要的意义,明细可以涵盖多个方面,如服务器资源使用情况、应用运行日志、数据库交互情况等,通过查看这些明细,能够及时发现潜在的问题、优化性能并确保系统的正常运行。
图片来源于网络,如有侵权联系删除
服务器资源使用明细查看
(一)Linux服务器
1、CPU使用情况
- 使用top
命令,这是一个非常常用的命令,在命令行输入top
后,会显示当前系统的实时进程信息以及CPU的使用情况,第一行显示了系统的总体运行时间、登录用户数、系统平均负载等信息,平均负载数值如果持续高于服务器的CPU核心数,可能表示CPU资源紧张,每个进程在列表中都有对应的CPU使用率列(通常标记为%CPU),可以直观地看到哪个进程占用了大量的CPU资源。
mpstat
命令,如果服务器是多核CPU,mpstat -P ALL
可以查看每个CPU核心的详细使用统计信息,包括用户态、内核态、空闲等状态的时间占比,这有助于分析是否存在某个核心负载过高的情况。
2、内存使用情况
free -h
命令,这个命令以人类可读的格式(例如以KB、MB、GB等单位)显示系统的内存使用情况,包括总内存、已使用内存、空闲内存、缓冲和缓存内存等信息,可以通过观察已使用内存与总内存的比例来判断内存是否紧张。
/proc/meminfo
文件,这个文件包含了更详细的内存相关信息,例如内存的各种分配情况、页面大小等,虽然文件内容是文本形式,但可以编写脚本来解析其中特定的内存指标,以满足更细致的监控需求。
3、磁盘I/O使用情况
iostat -x
命令,它可以显示磁盘的详细I/O统计信息,如每秒的读写请求数(r/s和w/s)、每秒读写的数据量(rkB/s和wkB/s)、平均等待时间(await)、平均服务时间(svctm)等,如果await或svctm的值过高,可能表示磁盘存在I/O瓶颈。
- 通过查看/proc/diskstats
文件,这个文件包含了每个磁盘设备的详细I/O统计数据,虽然数据比较原始,但可以用于编写自定义的磁盘I/O监控脚本。
(二)Windows服务器
1、任务管理器查看CPU和内存
- 在Windows服务器上,可以通过任务管理器查看CPU和内存的使用情况,在任务栏上右键单击,选择“任务管理器”,在“性能”选项卡中,可以看到CPU和内存的总体使用百分比、使用历史图表等信息,对于CPU,还可以查看每个核心的使用情况,在“进程”选项卡中,可以查看每个进程占用的CPU和内存资源量。
2、性能监视器查看磁盘I/O等资源
- 使用性能监视器(perfmon.msc)可以更详细地监控各种资源的使用情况,可以添加计数器来监控磁盘I/O、网络I/O、进程相关的性能指标等,添加“PhysicalDisk\Avg. Disk Queue Length”计数器可以查看磁盘的平均队列长度,如果这个值持续大于2,可能表示磁盘存在I/O瓶颈。
应用运行日志查看
(一)日志文件位置
1、基于框架的日志文件位置
图片来源于网络,如有侵权联系删除
- 如果后端应用是基于Spring Boot开发的,默认的日志文件位置在应用的根目录下,可以通过在application.properties
或application.yml
文件中配置logging.file.name
或logging.file.path
来指定日志文件的位置和名称。
- 对于Django应用,日志配置可以在settings.py
文件中进行,日志文件的默认位置根据配置而定,通常可以在项目根目录或者指定的日志目录下查找。
2、自定义日志文件位置
- 在很多情况下,开发人员可能会自定义日志文件的位置,这可能与应用的部署结构、安全需求等有关,可能将日志文件存储在/var/log/your - application - name
目录下,在查找日志文件时,需要查看应用的配置文件或者文档,以确定其确切位置。
(二)日志内容分析
1、日志级别
- 日志通常分为不同的级别,如DEBUG、INFO、WARN、ERROR等,DEBUG级别日志包含最详细的信息,用于开发和调试阶段;INFO级别日志用于记录应用的正常运行信息,如启动、停止、重要业务流程的开始和结束等;WARN级别日志表示可能存在潜在问题,但应用还能正常运行;ERROR级别日志则表示发生了错误,影响了应用的正常功能,通过设置合适的日志级别,可以在生产环境中过滤掉不必要的详细日志,同时又能及时捕捉到重要的问题信息。
2、使用工具分析日志
- 对于简单的文本日志,可以使用grep
(在Linux系统中)或者findstr
(在Windows系统中)等命令来搜索特定的关键字,如果要查找所有的ERROR级别的日志,可以使用grep "ERROR" your - log - file.log
。
- 对于大规模的日志分析,还可以使用专门的日志分析工具,如ELK Stack(Elasticsearch、Logstash、Kibana),Logstash可以收集、过滤和转换日志数据,Elasticsearch用于存储和搜索日志数据,Kibana则提供了一个可视化的界面来分析和展示日志数据,通过ELK Stack,可以方便地对海量日志进行实时分析、创建可视化报表、设置告警等操作。
数据库交互明细查看
(一)关系型数据库(以MySQL为例)
1、查询日志
- 可以开启MySQL的查询日志来查看所有的SQL查询语句,在MySQL的配置文件(通常是my.cnf
或my.ini
)中,设置general_log = 1
和general_log_file = /path/to/your/log/file
,然后重启MySQL服务,这样,所有的查询语句都会被记录到指定的日志文件中,通过查看查询日志,可以发现哪些查询语句执行频繁、是否存在低效的查询等问题。
2、慢查询日志
- 慢查询日志用于记录执行时间超过指定阈值(可以通过long_query_time
参数设置,默认是10秒)的查询语句,开启慢查询日志(在配置文件中设置slow_query_log = 1
和slow_query_log_file = /path/to/your/slow - query - log/file
)后,分析慢查询日志可以找到性能瓶颈所在的查询语句,然后对这些查询进行优化,如添加索引、优化查询语句的逻辑等。
(二)非关系型数据库(以MongoDB为例)
1、MongoDB的日志文件
图片来源于网络,如有侵权联系删除
- MongoDB的日志文件默认位于/var/log/mongodb/mongod.log
(在Linux系统中),这个日志文件记录了MongoDB的启动、停止、数据库操作(如插入、更新、删除等操作的相关信息)、连接信息等,通过查看这个日志文件,可以了解MongoDB的运行状态以及数据库操作的明细情况。
2、使用数据库命令查看操作明细
- 在MongoDB的客户端中,可以使用db.currentOp()
命令查看当前正在进行的数据库操作,包括操作类型、操作的集合或文档、操作的耗时等信息,这有助于发现是否存在长时间运行的操作,从而及时采取措施进行优化或者处理。
网络连接明细查看
(一)Linux服务器
1、netstat
命令
netstat -anp
命令可以查看服务器的网络连接情况。-a
表示显示所有连接(包括监听和非监听状态的连接),-n
表示以数字形式显示地址和端口(而不是解析为域名和服务名),-p
表示显示与每个连接相关的进程ID和进程名称,通过这个命令,可以查看哪些进程正在进行网络通信、连接的本地和远程地址、端口号等信息,如果发现某个未知的端口有大量连接,可能表示存在安全风险或者应用配置错误。
2、ss
命令
ss
命令是netstat
的替代品,并且在某些方面性能更好。ss -tunlp
可以查看TCP、UDP连接的相关信息,包括连接状态、本地和远程地址、端口号以及对应的进程信息。
(二)Windows服务器
1、netstat
命令
- 在Windows服务器上,netstat -ano
命令可以查看网络连接情况。-a
显示所有连接,-n
以数字形式显示地址和端口,-o
显示与连接相关的进程ID,可以通过任务管理器中的“进程”选项卡,根据进程ID查找对应的进程名称,从而了解是哪个应用在进行网络连接。
2、资源监视器查看网络连接
- 打开资源监视器(通过任务管理器中的“性能”选项卡,点击“打开资源监视器”),在“网络”选项卡中,可以查看每个进程的网络活动情况,包括发送和接收的字节数、网络连接的本地和远程地址等信息,这有助于详细分析每个应用的网络使用情况。
后端部署到服务器上后查看明细是一个多方面的任务,涉及服务器资源、应用日志、数据库交互和网络连接等多个领域,通过掌握这些查看明细的方法和工具,可以有效地监控和管理后端系统,及时发现并解决问题,确保系统的稳定、高效运行,无论是开发人员在开发过程中的调试,还是运维人员在生产环境中的维护,这些明细查看的技能都是非常关键的。
评论列表