linux内存、负载相关的操作

avatar
作者
筋斗云
阅读量: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 次)

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!