Checking Memory Usage of linux

本文介绍如何利用ps命令自定义输出格式查看进程内存使用情况,并通过sort进行排序,以及使用pmap命令深入检查特定进程的内存映射详情。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Checking Memory Usage Using ps Command:

$ ps -o pid,user,%mem,command ax | sort -b -k3 -r

ps -o is user defined output format     //是用户自定义输出格式

sort 

-b    忽略开始空格

-k    第几列排序

-r      倒序

cuda@cuda-System-Product-Name:~$ ps -o uid,pid,%mem,command ax| sort -b -k3 -r  | head -n 19
  UID   PID %MEM COMMAND
 1000  1611  1.9 /usr/bin/gnome-shell
 1000  1847  1.3 /usr/bin/gnome-software --gapplication-service
 1000  2067  0.9 /usr/bin/python3 /usr/bin/update-manager --no-update --no-focus-on-map
    0  1428  0.7 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
  121  1070  0.7 /usr/bin/gnome-shell
 1000  1853  0.4 /usr/lib/evolution/evolution-calendar-factory
 1000  1892  0.3 /usr/lib/evolution/evolution-calendar-factory-subprocess --factory all --bus-name org.gnome.evolution.dataserver.Subprocess.Backend.Calendarx1853x2 --own-path /org/gnome/evolution/dataserver/Subprocess/Backend/Calendar/1853/2
  121  1090  0.3 /usr/bin/Xwayland :1024 -rootless -terminate -accessx -core -listen 4 -listen 5 -displayfd 6
 1000  1832  0.3 nautilus-desktop
    0  1254  0.2 /usr/lib/packagekit/packagekitd
 1000  1968  0.2 /usr/lib/gnome-terminal/gnome-terminal-server
  121  1262  0.2 /usr/lib/gnome-settings-daemon/gsd-color
    0 31287  0.1 /usr/sbin/smbd --foreground --no-process-group
    0  2266  0.1 /usr/sbin/smbd --foreground --no-process-group
    0   836  0.1 /usr/sbin/NetworkManager --no-daemon
    0   843  0.1 /usr/lib/snapd/snapd
  121  1239  0.1 /usr/lib/ibus/ibus-x11 --kill-daemon
 1000  1664  0.1 /usr/lib/ibus/ibus-x11 --kill-daemon
 

 

 

Checking Memory Usage of Processes with pmap:

pmap pid  or pmap -d pid   | tail -n 1

 

cuda@cuda-System-Product-Name:~$ pmap  1611 | tail -n 1 
 total          4562028K
cuda@cuda-System-Product-Name:~$ pmap  -d 1611 | tail -n 1 
mapped: 4562028K    writeable/private: 442836K    shared: 556100K

 

### Linux 服务器点检脚本示例 以下是一个简单的 Linux 服务器点检脚本,它可以帮助管理员监控系统的健康状况。此脚本涵盖了 CPU 使用率、内存使用情况、磁盘空间、服务状态以及日志错误等内容。 #### 脚本功能概述 该脚本会执行一系列检查并生成报告文件,便于后续分析和存档。以下是具体实现: ```bash #!/bin/bash # 定义变量 REPORT_FILE="/tmp/server_health_check_$(date +%Y%m%d%H%M%S).log" echo "=== Server Health Check Report ===" > $REPORT_FILE echo "$(date): Starting server health check..." >> $REPORT_FILE # 检查CPU使用率 echo "" >> $REPORT_FILE echo "===> Checking CPU Usage:" >> $REPORT_FILE top -bn1 | grep load | awk '{printf "Load average: %.2f, %.2f, %.2f\n", $(NF-2), $(NF-1), $(NF)}' >> $REPORT_FILE # 检查内存使用情况 echo "" >> $REPORT_FILE echo "===> Checking Memory Usage:" >> $REPORT_FILE free -h | grep Mem >> $REPORT_FILE # 检查磁盘空间 echo "" >> $REPORT_FILE echo "===> Checking Disk Space:" >> $REPORT_FILE df -hT | grep '^/dev/' >> $REPORT_FILE # 检查关键服务的状态 (例如 Apache 和 MySQL) echo "" >> $REPORT_FILE echo "===> Checking Service Status:" >> $REPORT_FILE services=("apache2" "mysql") for service in "${services[@]}"; do systemctl is-active --quiet "$service" && echo "$service is running." || echo "$service is NOT running!" >> $REPORT_FILE done # 检查系统日志中的错误条目 echo "" >> $REPORT_FILE echo "===> Checking System Logs for Errors:" >> $REPORT_FILE grep -i error /var/log/syslog* | tail -n 10 >> $REPORT_FILE # 输出完成消息 echo "" >> $REPORT_FILE echo "$(date): Server health check completed. Results saved to $REPORT_FILE" >> $REPORT_FILE cat $REPORT_FILE ``` 以上脚本可以保存为 `server_health_check.sh` 并赋予可执行权限: ```bash chmod +x server_health_check.sh ``` 运行脚本后,会在 `/tmp` 目录下生成一份详细的健康检查报告[^1]。 --- ### 注意事项 为了确保脚本能够正常工作,请确认以下几点: 1. 系统已安装必要的工具(如 `top`, `awk`, `systemctl`, `grep` 等)。 2. 执行者具有足够的权限访问系统资源和服务状态。 3. 可根据实际需求调整要检查的服务列表或其他参数。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值