2023拉

linux系统调优的内存管理--转

上一篇 / 下一篇  2014-12-18 17:59:28 / 个人分类:Linux杂谈

   原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://jingmu.blog.51cto.com/1812003/525405
内存管理:
             分为: 逻辑地址空间:linux很少用到
                    物理地址空间
                    线性地址空间:虚拟
为了更好的分配地址空间内存将其分成页page
             page:为了让线性地址空间映射成物理的,一页一般4K
             叶框page frames:存放页的4k
             页表page table数据结构,描述每一个页所对应的叶框的位置,不至          
于造成数据修改时的混乱
             每个进程都有自己的页表,每一行记录为page table entryPTE
      解释:
      MMU:内存管理单元:实选线性地址空间根据页表转换成物理地址空间,每一次的
转换都需要花费一定的时间,可以让TLB解决,TLB实现缓存MMU装换的结果,节省时间,提高
效率      
虚拟内存管理:
             buddy allocator避免外碎片,在内存中产生
             slab allocator:内碎片在内存的叶框中产生,重用解决
                     slabtop 查看系统的slab
             kswapd将物理内存的一些数据放到交换分区中(交换分区swap)
             bdflush:将内存中未同步的数据同步到磁盘中。当数据不在内存中,而
             在磁盘中,修改页时会保存到内存中,
              脏页dirty page:在内存中没有同步到磁盘上的页
 
 
             用户访问文件--通过inode---inode---找到对应的磁盘位置
             提高文件的响应能力: dentry cache-->缓冲池
             数据分为:metadata元数据:在inode表的inode项里
                     data
             ext2上:没有记录日志,
                    文件的存储:现存元数据再存文件,可能会造成数据的不完整,      
             元数据和数据不一致,数据的自检会花费很长时间
             ext3:启用日志功能journal,数据在存到磁盘前先写到日志中,同步后          
             ,然后会在日志中删除数据
             dumpe2fs /dev/sda1    查看分区的详细信息,是否有碎片等
             ext3模式:
                    journal数据和元数据都写进日志中,同步磁盘中再删除
                    ordered默认模式只写元数据,但会确保数据的同步
                    writeback性能最好,一致性最差元数据写到日志里就认为数据完成,不管数据是否和磁盘的同步
                    mount -o data={ordered|writeback|journal}
                    

本文出自 “静穆纱的博客” 博客,请务必保留此出处http://jingmu.blog.51cto.com/1812003/525405


TAG:

 

评分:0

我来说两句

Open Toolbar