阅读量:0
查看内存使用情况
free:显示系统的内存使用情况,包括物理内存和交换空间(swap)。
- 示例:free -h(以人类可读的格式显示内存使用情况)
top:实时显示系统的进程及其资源使用情况,包括内存。
- 在 top 界面中,可以查看各进程的内存占用。
htop:一个增强版的 top,提供更友好的用户界面。
- 使用命令:htop(如果未安装,可以通过包管理器安装)
内存分配和释放
malloc 和 free:在编程中,使用 C 语言等语言中的这两个函数进行动态内存分配和释放。
8 示例(C 代码):
int *ptr = (int *)malloc(sizeof(int) * 10); // 分配内存 free(ptr); // 释放内存
监控内存使用
vmstat:报告虚拟内存统计信息。
- 示例:vmstat 1(每秒更新一次内存使用情况)
/proc/meminfo:查看系统内存信息文件,包含详细的内存使用数据。
- 示例:cat /proc/meminfo(查看内存信息)
交换空间管理
swapon:启用交换空间。
- 示例:sudo swapon /swapfile(启用指定的交换文件)
swapoff:禁用交换空间。
- 示例:sudo swapoff /swapfile(禁用指定的交换文件)
mkswap:创建交换空间。
- 示例:sudo mkswap /swapfile(在指定文件上创建交换空间)
优化和调整内存使用
sysctl:用于查看和修改内核参数,包括内存管理相关的设置。
- 示例:sysctl vm.swappiness(查看交换空间的使用策略)
echo:通过 /proc/sys/vm/swappiness 修改交换空间使用策略。
- 示例:echo 10 | sudo tee /proc/sys/vm/swappiness(将 swappiness 设置为 10)
查看进程的内存使用
ps:查看进程的内存使用情况。
- 示例:ps aux --sort=-%mem(按内存使用情况排序显示进程)
pmap:查看进程的内存映射。
- 示例:pmap (查看指定 PID 的内存映射)
内存泄漏检查
valgrind:一个用于内存调试、内存泄漏检测和性能分析的工具。
- 示例:valgrind --leak-check=full ./your_program(检查程序的内存泄漏)
查看系统负载
uptime:显示系统运行时间、当前时间、登录用户数以及系统负载(1分钟、5分钟、15分钟的平均负载)。
- 示例:uptime
top:实时显示系统的进程及其资源使用情况,包括负载平均值。
- 使用:直接输入 top 命令,负载平均值显示在顶部。
htop:一个增强版的 top,提供更友好的用户界面。
- 使用:输入 htop(如果未安装,可以通过包管理器安装)。
vmstat:报告虚拟内存、进程、CPU活动和系统负载等信息。
- 示例:vmstat 1(每秒更新一次)
监控特定进程
ps:查看当前系统中正在运行的进程及其 CPU 和内存使用情况。
- 示例:ps aux --sort=-%cpu(按 CPU 使用率排序显示进程)
pidstat:显示特定进程的 CPU 和内存使用情况。
- 示例:pidstat 1(每秒显示进程统计信息)
查看负载历史
sar:使用系统活动报告工具,可以查看历史负载情况。需要安装 sysstat 软件包。
- 示例:sar -q(显示系统负载平均值)
查看负载分布
iostat:显示 CPU 使用情况和 I/O 设备的负载情况。
- 示例:iostat -x 1(每秒显示详细的 I/O 统计信息)
dstat:结合了 vmstat、iostat 和 netstat 的功能,可以实时查看系统资源的使用情况。
- 示例:dstat(实时显示各种资源的使用情况)
调整负载
nice:以特定优先级运行程序,调整 CPU 资源分配。
- 示例:nice -n 10 command(以优先级 10 运行命令)
renice:改变运行中的进程的优先级。
- 示例:renice -n 5 -p (将指定 PID 的进程优先级设置为 5)
负载测试
stress:用于生成负载,测试系统的稳定性。
- 示例:stress --cpu 4 --timeout 30(使用 4 个 CPU 核心进行 30 秒的负载测试)
ab(Apache Benchmark):用于测试 HTTP 服务器的负载能力。
- 示例:ab -n 1000 -c 10 http://localhost/(向本地服务器发送 1000 次请求,10 个并发)
记录和分析负载
sar:收集并报告系统负载情况。
- 示例:sar -u 1 3(每秒显示 CPU 使用情况,共显示 3 次)