首先要明确一个问题:Linux系统内存占用90%以上,是否属于正常范围?网上有详细的解释,这属于正常现象~~~
Linux/Unix系统管理内存的方式和windows是不一样的,即便是一个负载很小的linux,跑几天后,内存占用量也将达到90%以上,即便无人访问,这个数字是完全正常的。但是,这个内存占用量不会达到100%的,每天夜里系统都会执行/etc/cron.daily进行内存优化。
Linux/Unix系统是非常稳健的,虽然内存占用显示90%以上,但依然可保证365天以上无须重启。对于Linux系统,评估其压力的主要指标是最近5分钟的负载指数:比如用w命令或者top去看,可以看到“0.70 0.35 0.01”这样的数字,分别表示5分钟内的、10分钟内的、15分钟内排队的进程数,只要第一个数字即5分钟内的负载不大于5,系统就是健康的,不用做任何维护;如果这个数字大于了5,那么通常系统速度就会变慢,一般有如下几种可能:
1) 有程序占用大量CPU,使用top命令来检查(看看是否有java程序锁死之类的故障)
2) 有程序占用大量内存,使得内存真正不够用了(这个才是真正需要加内存的时候),比如由于MySQL在较大负载下运行容量为GB级别的数据库导致内存不够用,需要给服务器插入更多物理内存
3) 磁盘系统读写故障,IO吞吐错误造成CPU负载上升,需要光盘引导进入单用户模式扫描修复磁盘,修不好就只能更换新硬盘了
因此,对于Linux/Unix系统内存占用的百分比,无须过于关心,一般检查系统负载参数即可
但也可以手动进行内存释放,具体操作如下:
[root@ajcheng]# cat /proc/sys/vm/drop_caches
0
首先,/proc/sys/vm/drop_caches的值,默认为0
[root@ajcheng]# sync
手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)
[root@ajcheng]# echo 3 > /proc/sys/vm/drop_caches
[root@ajcheng]# cat /proc/sys/vm/drop_caches
3
将/proc/sys/vm/drop_caches值设为3
[root@ajcheng]# free -m
total used free shared buffers cached
Mem: 249 66 182 0 0 11
-/+ buffers/cache: 55 194
Swap: 511 0 511
再来运行free命令,发现现在的used为66MB,free为182MB,buffers为0MB,cached为11MB.那么有效的释放了buffer和cache.
分享到:
相关推荐
在Linux操作系统中,...以上方法涵盖了基本的Linux系统监控,通过这些命令和工具,我们可以实时了解CPU和内存的状态,进而进行故障排查、性能优化等工作。在实际操作中,根据需求选择合适的工具和方法是非常重要的。
本实验指导——“操作系统实验指导——基于Linux内核(第2版)”旨在帮助学习者深入理解操作系统的原理,并通过实际操作来增强对Linux内核的熟悉度。 在学习操作系统时,我们首先会接触到进程管理、内存管理、文件...
在Linux系统管理中,监控工具是非常关键的,它们帮助管理员实时了解系统运行状态,及时发现并解决问题。本文将详细介绍四个常用的Linux监控工具:iotop、htop、IPTraf和Monit。 1. iotop iotop是针对Linux系统I/O...
- **低占用率**: 内核占用内存小。 - **高性能计算**: 支持集群技术。 **3.3 高可扩展性和可维护性** - **模块化设计**: 方便定制和升级。 ##### 四、Linux发展概述 **4.1 内核版本号** - **格式**: x.y.zz-www -...
在代码层面,可以使用弱引用、软引用等技术避免不必要的内存占用。 对于内存溢出问题,通常发生在JVM无法为新的对象分配足够的内存时。这可能是由于内存泄露、大对象的频繁创建、堆设置不合理等原因导致。解决内存...
在linux实现共享内存的创建、写入数据、读取数据
通过链接脚本,开发人员可以控制不同部分的代码如何放置在内存中,这对于优化内核性能和减少内存占用非常重要。 #### 八、Linux内核启动-其他重要步骤 - **系统调用参数**:系统调用是内核与用户空间交互的主要...
每个 oom_adj 都有一个空闲内存的阈值,当系统内存不足时,Low Memory Killer 会杀死 oom_adj 最大的 Bad 进程,如果有两个以上 Bad 进程 oom_adj 相同,则杀死其中占用内存最多的进程。 Low Memory Killer 与 OOM ...
通过以上介绍可以看出,《嵌入式Linux开发教程_上册》不仅详细介绍了Linux内核的基本概念、主要特点及其在嵌入式领域的应用,还提供了安装Linux操作系统所需的详细指导。这对于初学者来说是非常宝贵的学习资料,有助...
### Android内核驱动——内存管理:深入理解LowMemoryKiller机制 #### 一、LowMemoryKiller概述 在深入探讨LowMemoryKiller之前,我们先了解下它的背景和作用。LowMemoryKiller(低内存杀手)是Android内核中一种...
### Linux内存管理详解 #### 一、Intel x86保护模式下的分段与分页机制 在探讨Linux如何实现内存管理之前,我们首先需要理解Intel x86架构下的内存管理基础——分段与分页机制。 **分段机制**: - **段选择器**:...
然而,这种方法占用了一定量的内存资源,对于内存有限的嵌入式设备来说,这意味着可用的内存资源减少。例如,如果一个8MB的Flash中存放了经过50%压缩的执行环境,解压缩后需要16MB的RAMDISK空间。这不仅消耗了内存,...
终止进程时,Linux会清理其占用的所有资源,包括打开的文件、内存空间等,以避免资源泄漏。同时,Linux还提供了僵尸进程和孤儿进程的处理机制,确保系统资源的有效回收和父进程能获取子进程的退出状态。 通过对...
对于某些特定的应用场景,例如嵌入式设备、物联网(IoT)设备或者资源有限的服务器,可能需要对完整的Linux系统进行裁减,以降低系统的内存占用和提升运行效率。"Linux系统裁减3/5"这个主题可能是指一个系列教程或项目...
最后,软件在系统中的重要性日益凸显,软件开发的需求和复杂度增加,操作系统作为软件开发的基础变得至关重要,而嵌入式Linux提供了完整的操作系统解决方案。 在70年代,大多数嵌入式系统基于简单的主程序和中断...
在传统的Linux内存管理中,内核空间和用户空间是分开的,这意味着内核访问用户空间的数据时,需要先将数据复制到内核空间。反向映射通过创建用户空间到内核空间的直接映射,避免了不必要的数据复制,降低了系统开销...