Linux 性能调优

  1. 内存优化:这包括合理配置虚拟内存、减少内存泄漏、优化内存分配算法等。
  2. CPU 优化:这包括识别并避免 CPU 占用过高的进程、优化 CPU 调度策略、限制并发线程数等。
  3. 网络优化:这包括优化网络设备、优化网络协议栈、减少网络延迟等。
  4. 文件系统优化:这包括优化文件系统的读写速度、优化磁盘 I/O 策略、减少磁盘碎片等。
  5. 存储优化:这包括优化数据库查询、优化缓存策略、优化数据结构等。
  6. 容器和虚拟化优化:这包括优化容器启动时间、优化资源调度、提高虚拟机效率等。
  7. 启动程序优化:这包括优化开机自启程序、优化应用程序启动时间、优化系统服务管理等。

#内存优化

检查内存使用情况:

  free -h
  top -n 5 -c -o RES

前5个占用内存最多的线程
要在Linux系统中找到占用内存最多的前5个线程,可以通过以下几个步骤完成:

  1. 使用 top 命令查看线程信息

    • 首先运行 top 命令,然后按 Shift + H 切换到线程视图。这将显示每个线程的信息,包括它们的内存和CPU使用情况。
  2. 使用 ps 命令结合 sort 命令

    • 你可以使用 ps 命令结合 sort 命令来列出占用内存最多的线程。以下是一个常用的方法:
    ps -eLo pid,ppid,tid,%mem,cmd --sort=-%mem | head -n 6
    • ps -eLo pid,ppid,tid,%mem,cmd:列出所有线程的PID、PPID、TID、内存使用百分比(%MEM)和命令(CMD)。
    • --sort=-%mem:按内存使用量从高到低排序。
    • head -n 6:显示前6行,其中包括表头行。
  3. 解释命令

    • pid:进程ID。
    • ppid:父进程ID。
    • tid:线程ID。
    • %mem:内存使用率。
    • cmd:执行命令。

通过执行以上命令,你可以快速找到系统中占用内存最多的前5个线程。如果你只想查看线程的ID及其内存使用情况,可以调整输出格式,例如:

ps -eLo tid,%mem --sort=-%mem | head -n 6

这会只显示线程ID和内存使用情况。

释放无用内存:

使用 ps aux | grep | awk ‘{print $PID}’ | xargs kill -9 来结束占用大量内存的进程;也可以使用 free -m 命令查看内存使用情况,并手动删除不需要的大文件或压缩包来释放内存。

配置虚拟内存:

可以通过编辑 /etc/fstab 文件或者使用 sysctl 命令来调整交换分区的大小,以提高系统的可用内存。

优化内核参数:

通过编辑 /etc/sysctl.conf 文件或者使用 sysctl -p 命令来修改内核参数,例如设置内核线程数量、限制进程内存等。

举例

结束占用大量内存的进程:如果有一个名为 “apache” 的 Web 服务器进程占用大量内存,可以使用以下命令来结束它:

ps aux | grep apache | awk '{print $PID}' | xargs kill -9

增加交换分区的大小:如果系统中已经没有足够的物理内存来满足运行需求,可以增加交换分区的大小来提高系统的可用内存。例如,如果希望将交换分区的大小从 2GB 增加到 4GB,可以在 /etc/fstab 文件中添加如下内容:

/dev/sda5 swap swap defaults 0 0

然后重新加载 fstab 文件:

mount -a

这样就会自动创建一个新的交换分区,然后将原来的交换分区缩小到原来的一半。

作者:严锋  创建时间:2023-09-13 11:40
最后编辑:严锋  更新时间:2025-05-09 15:48