当前位置: 首页 > 科技观察

干货:实践中如何监控服务器性能

时间:2023-03-18 19:57:03 科技观察

监控服务器很重要。无论是部署还是调试生产服务器时,及时发现测试环境中的问题。这些要求管理员访问服务器上的内容,以便能够辨别出了什么问题。在早期,监控服务器是一个非常困难的过程,依赖于人工检查问题,包括谁登录了服务器、打开日志、运行单个命令以及查看是否有任何命令的输出。以上产生了预期的结果。幸运的是,工具的发展使这个过程变得简单和集中,但我们仍然需要弄清楚要收集哪些服务器。虽然可以直接深入并检查服务器的每一个故障,但为了您的时间价值和故障排除能力,请退后一步并制定您想要获得的信息。下面是一些比较重要的总结:理解你的应用程序在设置你的应用程序时,你应该确保你对预期的行为有一个很好的了解。具体来说,您应该非常清楚当内存、CPU、磁盘或其他系统资源不足时您的应用程序的执行情况。它变慢了吗?它会变得迟钝吗?不会加载吗?这些行为的阈值是多少?“昙花一现”(如CPU峰值)和真正的问题有什么区别?这些都不是容易回答的问题,但我们需要知道会发生什么以及防止过敏的警报系统。拥抱不断变化的需求随着时间的推移,我们的需求发生变化,可能会实现新功能、删除无用功能或其他可能改变应用程序预期行为的转换等。发生这种情况时,您需要重新评估应用程序的运行方式服务器,以便您了解所使用的资源以及您可以预测这些资源何时减少的处理和行为。实地运行当我们监控*nix服务器时,我们通常会查看以下内容:CPU使用率:检查CPU使用率,以查看正在使用的处理器的百分比。根据您的特定需求,您可能希望查看总体CPU使用率以及按进程或用户细分的详细信息,以查看进程和用户的额外粒度,从而更容易在出现问题时进行故障排除。内存使用:总共使用了多少内存,以及各个进程和用户。可以根据需要以百分比和/或GB/MB的形式监控内存使用情况。磁盘使用情况:使用了多少磁盘空间。与内存使用情况类似,可以通过百分比或空间来监控磁盘使用情况。它还应该跟踪inode的使用情况,inode用于存储有关*ix系统中文件系统对象的信息。用完inode并不常见,但如果您碰巧知道在服务器上运行的应用程序往往有很多小文件,就像某些CI/CD工具那样,仍然值得检查。PageFaults:简单地说,一个页面就是一块虚拟内存。如果你监控的服务器是AWS、GCP、Azure、DigitalOcean或Linode、Aliyun、TengCentCloud等云服务提供商托管的,那么该服务器正在使用分页系统将服务器实例的虚拟内存映射到物理内存托管它的硬件。页面错误本质上是当操作系统试图将某些内容从物理内存加载到虚拟内存时发生的情况,并且没有与该对象关联的物理内存地址。虽然操作系统具有内置页面错误处理程序来管理少量页面错误并不少见,但如果您经常看到页面错误,就该开始寻找更深层次的问题了。正常运行时间:对于虚拟服务器,正常运行时间是服务器运行的时间量。监控主要是查看服务器是否经历了意外重启。网络活动:监控网络流量所需的精度级别取决于服务器托管的内容。在正常情况下,即使是运行静态站点但未被主动访问的服务器,也会看到其上运行的其他进程的I/O,服务器网络不应降为0。Swap用法:Swap交换空间是保留的磁盘空间,即用于在可用内存不足时补充内存使用。您的系统使用交换空间的积极程度取决于它的“swappiness”是如何在1(低)到100(高)的范围内配置的。如果你想允许一些交换而不完全禁用它(0)如果你想在系统内存问题时允许一些交换,则使用10或更小的值是一个标准。在查看“交换空间使用情况”时,我们通常会查看交换空间使用情况是否显着上升。如果是这种情况,就需要排查内存等资源,看看能不能挖出原因。使用命令行在管理服务器时,命令行的使用频率通常高于您使用的任何监视警报工具。考虑到这一点,我们总结了一些命令行工具,您可以使用它们来查看刚才提到的一些信息。请注意,并非所有这些命令都安装在所有Linux发行版中,您可能需要使用软件包安装程序或源代码来安装它们,具体取决于您的Linux发行版。top-一个方便的工具,可以让我们查看正常运行时间、内存使用情况、CPU使用情况和交换空间等信息。我们还可以查看其他信息:包括其他正在运行的进程,运行该进程使用的命令等。按q键退出top命令行。htop-htop是Linux系统的交互式进程查看器,文本模式应用程序(在控制台或X终端中),需要ncurses。与传统的top相比,htop更加人性化。它允许用户交互操作,支持颜色主题,可以水平或垂直滚动??进程列表,支持鼠标操作。与top相比,htop有以下优点:可以水平或垂直滚动??进程列表,查看所有进程和完整的命令行。在启动时,它比top快。杀进程时不需要输入进程号。htop支持鼠标操作。top有点旧了。..和top类似,可以按q键退出。tcpdump-这是一个用于监控网络数据包的强大工具。例如,我们可以使用它来监听服务器实例上的所有网络流量,或将其限制为仅来自特定源和/或目标端口的流量。您可以使用ctrl+C退出。netstat-允许我们查看服务器上建立了哪些网络连接以及如何建立网络连接,包括TCP/UDP连接的路由表信息及其进度。后者的常见组合是-tlnpu。如果需要,您还可以使用-c运行命令以进行持续监控。nmon-又名Nigel的监视器,允许我们查看有关服务器的更多详细信息。与htop命令类似,nmon也是交互式的,因此您需要通过一系列菜单才能查看有关CPU处理器、磁盘等信息。要退出,请使用q或ctrl+C。正常运行时间-一种查看服务器正常运行时间的简单方法。如果您希望查看持续时间的正常运行时间而不是服务器启动时间戳,请使用-pretty参数。/proc/meminfo-可以使用您喜欢的编辑器查看此文件,以深入了解当前的活动/可用内存使用情况。free-要查看没有进程信息的空闲和已用内存,请使用free命令。默认情况下这些值以字节为单位,如果你想看到以兆字节或千兆字节为单位的输出,建议附加-h参数。df-允许管理员查看系统上安装的所有卷的总磁盘使用情况。默认为1K块大小,建议附加-h以查看df-h的输出(以兆字节和/或千兆字节为单位)。du-使用指定目录中的所有对象(文件、目录)递归打印文件系统对象的磁盘使用情况。注意:如果没有指定目录,则使用root根目录(/),结果会很快超过你的终端!如果您只想查看目录中的项目使用了多少磁盘,请使用-sh。提醒大家注意,根据不同的Linux发行版,可能需要在包管理器中手动安装一些工具。