但存放位置不像Win那么散乱,比较统一。清理起来比较方便。
另外,tmpwatch工具现在已经被废弃了
用tmpreaper替代
比如你想清理/tmp目录下超过3小时没用过的临时文件:
tmpreaper -avf 3 /tmp
磁盘碎片是个技术问题,一两句话说不清楚
简单来说就是——在Linux或Unix环境下,你可以忽略磁盘碎片的问题
磁盘碎片分为内部碎片和外部碎片两种
内部不可避免,也没法整理。只能通过文件系统的结构来尽量减少
Linux使用的ext系统显然比Windows的FAT32要强的多
外部碎片Linux下则几乎没有,而Windows下就不用我多说了……
我翻译了一篇小文章,对此有一个简要的介绍:
http://blog.csdn.net/UndeadWraith/archive/2011/02/17/6192322.aspx
Win下的蓝屏是Windows自身的一种保护机制
很多人都以为蓝屏是崩溃,其实不然,Windows的蓝屏恰恰是防止发生真正的崩溃的
即在真正的崩溃发生前,Windows停止一切活动,然后触发蓝屏予以保护并报告错误信息
如果没有蓝屏,那崩溃起来会更加的可怕……
Linux下可能会有类似的“崩溃”发生,但不会是以“蓝屏”的形式出现的。
由于Linux的内核和界面是分离的,所以一般崩溃的仅仅是界面。
而即便是界面崩溃的几率也会比Windows低很多,内核崩溃的几率更低。
个人用户一般不用太担心这些~~等你需要用Linux或Unix搭建大型服务器的时候再考虑这些东西也来得及~
=============================================
tmpreaper的具体用法可以用
tmpreaper --help
或者
man tmpreaper
来查询,或许不同的Linux发行版使用的清理程序不同,
我这里是Ubuntu 10.04,提示tmpwatch已经不存在,使用tmpreaper替代
也许别的发行版继续使用tmpwatch的吧,都差不多,可以试试
除了垃圾文件之外,其他的问题都不用考虑。
如果只是作为家用或小型服务器,那你可以认为不产生碎片也不会崩溃。
除非你准备搭建大型服务器……那要考虑的就多了……
=============================================
感谢I_am_a_voter的不吝赐教
我翻译的那篇文档下面加的注释中已经说明了:
文档比较老,最新的格式都已经针对文档中提出的缺陷作出了修正
我这里只是想像LZ说明不用太过担心清理磁盘碎片的问题
如果有任何引起误导的可能我表示抱歉~
1、内存是什么?
1) 内存又称主存,是 CPU 能直接寻址的存储空间,由半导体器件制成;
2) 内存的特点是存取速率快,断电一般不保存数据,非持久化设备;
2、内存的作用
1) 暂时存放 cpu 的运算数据
2) 硬盘等外部存储器交换的数据
3) 保障 cpu 计算机的稳定性和高性能
1、linux 内存地址空间 Linux 内存管理全貌
2、内存地址——用户态&内核态
3、内存地址——MMU 地址转换
4、内存地址——分段机制
1) 段选择符
更多Linux内核视频教程文档资料免费领取后台私信【 内核 】自行获取。
内核学习网站:
Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈-学习视频教程-腾讯课堂
2) 分段实现
5、内存地址——分页机制(32 位)
6、用户态地址空间
7、内核态地址空间
8、进程内存空间
内存管理算法 ——对讨厌自己管理内存的人来说是天赐的礼物
1、内存碎片
1) 基本原理
2) 如何避免内存碎片
2、伙伴系统算法——组织结构
1) 概念
2) 外部碎片
3、伙伴系统算法——申请和回收
1) 申请算法
2) 回收算法
3) 条件
4、如何分配 4M 以上内存?
1) 为何限制大块内存分配
2) 内核中获取 4M 以上大内存的方法
5、伙伴系统——反碎片机制
1) 不可移动页
2) 可回收页
6、slab 算法——基本原理
1) 基本概念
2) 内部碎片
7、slab 分配器的结构
详细参考:
经典|图解Linux内存性能优化核心思想
8、slab 高速缓存
1) 普通高速缓存
2) 专用高速缓存
9、内核态内存池
1) 基本原理
2) 内核 API
10、用户态内存池
1) C++ 实例
11、DMA 内存
1) 什么是 DMA
2) DMA 信号
out of memory 的时代过去了吗?no,内存再充足也不可任性使用。
1、内存的使用场景
2、用户态内存分配函数
a) 如果当前连续内存块足够 realloc 的话,只是将 p 所指向的空间扩大,并返回 p 的指针地址。这个时候 q 和 p 指向的地址是一样的
b) 如果当前连续内存块不够长度,再找一个足够长的地方,分配一块新的内存,q,并将 p 指向的内容 copy 到 q,返回 q。并将 p 所指向的内存空间删除
3、内核态内存分配函数
4、malloc 申请内存
5、缺页异常
6、用户进程访问内存分析
7、共享内存
1) 原理
2) shm 接口
1、C 内存泄露
2、C 野指针
3、C 资源访问冲突
4、STL 迭代器失效
错误示例:删除当前迭代器,迭代器会失效
正确示例:迭代器 erase 时,需保存下一个迭代器
5、C++ 11 智能指针
(1)原理分析:
(2)数据结构:
(3)使用方法:
6、C++ 11 更小更快更安全
六、 如何查看内存
可以通过 cat /proc/slabinfo 命令查看
可以通过 /proc/sys/vm/drop_caches来释放
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)