Linux 性能调优
- 内存优化:这包括合理配置虚拟内存、减少内存泄漏、优化内存分配算法等。
- CPU 优化:这包括识别并避免 CPU 占用过高的进程、优化 CPU 调度策略、限制并发线程数等。
- 网络优化:这包括优化网络设备、优化网络协议栈、减少网络延迟等。
- 文件系统优化:这包括优化文件系统的读写速度、优化磁盘 I/O 策略、减少磁盘碎片等。
- 存储优化:这包括优化数据库查询、优化缓存策略、优化数据结构等。
- 容器和虚拟化优化:这包括优化容器启动时间、优化资源调度、提高虚拟机效率等。
- 启动程序优化:这包括优化开机自启程序、优化应用程序启动时间、优化系统服务管理等。
#内存优化
检查内存使用情况:
free -h
top -n 5 -c -o RES
前5个占用内存最多的线程
要在Linux系统中找到占用内存最多的前5个线程,可以通过以下几个步骤完成:
使用
top
命令查看线程信息:- 首先运行
top
命令,然后按Shift
+H
切换到线程视图。这将显示每个线程的信息,包括它们的内存和CPU使用情况。
- 首先运行
使用
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行,其中包括表头行。
- 你可以使用
解释命令:
pid
:进程ID。ppid
:父进程ID。tid
:线程ID。%mem
:内存使用率。cmd
:执行命令。
通过执行以上命令,你可以快速找到系统中占用内存最多的前5个线程。如果你只想查看线程的ID及其内存使用情况,可以调整输出格式,例如:
ps -eLo tid,%mem --sort=-%mem | head -n 6
这会只显示线程ID和内存使用情况。
释放无用内存:
使用 ps aux | grep
配置虚拟内存:
可以通过编辑 /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
最后编辑:严锋 更新时间:2025-05-09 15:48