查看Linux服务器上的CPU和内存
CPU和内存(RAM)等资源是网站功能不可或缺的一部分。如果代码使用过多,则网站可能会变慢或完全停止工作。所有其他进程(如电子邮件)与您服务器上的网站共享相同的资源。任何花费超过其(预期)合理份额的进程都可能导致服务器完全停机。为什么我需要检查资源使用情况?
- 您的数据库驱动网站(如WordPress)速度很慢。
- 电子邮件需要很长时间才能到达。
- 您的网站显示错误或旋转
- 在服务器上执行的任务需要的时间比普通的时间长(如备份)。
如何检查资源使用情况?
Linux提供了一些工具来调查CPU和内存使用情况,例如: top , sar和watch 。
通过top命令,您可以查看实时运行的系统任务。您可以查看整体信息,如正常运行时间,负载平均,CPU和内存使用情况。 -c开关允许您在COMMAND(命令)下查看程序名称。有关快捷键的完整列表,请使用SSH中的mantop 。
[root @ server〜] $ top -c top-15:08:23最多115天,6:37,2个用户,平均负载:1.76,1.35,1.13任务:330个总计,1个运行中,326个睡眠,0个停止, 3蛇神Cpu:0.7%us,2.9%s y,0.0%ni,81.5%id,14.9%wa,0.0%hi,0.1%s i,0.0%s t t Mem:总共32754672k,使用了28808088k,使用了3946584k,321260k缓存交换:总共8388604k,使用了25992k,8362612k免费,8140560k缓存的PID用户PR NI VIRT RES SHR S%CPU%MEM TIME + COMMAND 6926 mysql 20 0 130g 16g 22m S 12.0 52.2 27065:56 / usr / sbin / mysqld --basedir = / usr --datadir = / var / lib / mysql --plugin-dir = / usr / lib64 / mysql / plugin 2454 td-agent 20 0 1210m 160m 2440 S 0.7 0.5 347:19.48 / opt / td-agent / embedded / bin / ruby -Eascii-8bit:ascii-8bit /
系统活动报告器(sar)是一款可帮助您监控服务器使用情况统计的工具。 Sar是sysstat程序包的一部分。单独使用sar命令将为您提供最近24小时的统计信息。
sar -f允许您查看当天上午12:00开始的历史日志文件。
[root @ server〜] $ sar -f / var / log / sa / sa10 Linux 2.6.32-042stab141.3(server-hostname.net)01/10/2022 _x86_64_(24 CPU)CPU 12:00:01 AM %user%nice%s系统%iowait%s蓝绿色%idle 12:10:01上午全部1.92 0.00 0.39 0.00 0.00 97.69 12:20:01上午全部1.63 0.00 0.34 0.00 0.00 98.02 12:30:01上午全部1.64 0.00 0.41 0.01 0.00 97.94 12:40:01上午全部2.85 0.00 0.61 0.00 0.00 96.54 12:50:01 AM所有2.71 0.00 0.57 0.01 0.00 96.72 01:00:01 AM所有2.02 0.00 0.38 0.00 0.00 97.60 01:10:01 AM所有1.43 0.00 0.30 0.00 0.00 98.27
sar -r将显示可用内存和已用内存统计信息
[root @ server〜] $ sar -r Linux 2.6.32-042stab141.3(server-hostname.net)02/02/2022 _x86_64_(24 CPU)12:00:01 AM kbmemfree kbmemused%memused kbbuffers kbcached kbcommit%commit 12:10:01 AM 99454800 32354304 24.55 1429856 22624260 8285744 5.91 12:20:01 AM 99760972 32048132 24.31 1429884 22631184 7960428 5.68 12:30:01 AM 99751920 32057184 24.32 1429920 22638392 7974804 5.69 12:40:01 AM 99638056 32171048 24.41 1429960 8035000 5.73 12:50:01 AM 99752696 32056408 24.32 1430012 22644804 7891100 5.63
Linux监视允许您监视命令或任务完成或执行。观看“ mysql -e'show full processlist;'”将显示所有正在运行的mysql查询,每2秒更新一次。
每2.0秒:mysql -e'显示完整进程列表;'周六2月12日11:09:56 2022 Id用户主机db命令时间状态信息26574057 mysql_db1 localhost mysql_db1查询2发送数据选择*从db_data_main其中DOT_NUMBER = 1381207 26574063 mysql_db1 localhost mysql_db1查询1发送数据选择*从db_data_main 3其中DOT3802 mysql_wp3 localhost mysql_wp3睡眠0无效26574068根localhost无效查询0 init显示完整进程列表
后续步骤
高资源使用率可能是恶意流量或挂起的进程(例如大型备份)导致的一次性收益。不是由流量或挂起的进程导致的频繁高资源使用率只能通过优化或升级来解决。请记住,如果您没有优化服务器和网站,升级只是一个临时修复。
迹象表明可能是时候优化了(服务器和网站)
- 不是由恶意流量导致
- 网站代码过时/生成过时错误
- CPU使用率高,但内存使用率低。
- 流量增加时MySQL查询滞后
迹象表明可能是时候升级了
- 前往您网站的流量稳定增长
- 服务器已针对您的网站需求进行了优化
- 您已通过消除长时间的mysql查询并更新代码以支持较高版本的PHP来优化了网站。
- 您正在使用缓存(如Memcache),但负担仍然很高