热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

linux内存性能调优网站安全分享!

linux内存性能调优linux内存系统简述关于linux内存系统我们至少应该了解什么?linux系统中内存地址分为虚拟地址和物理地址,虚拟地址必须通过mmu映射成物理地址。为了完


%ignore_a_1% 内存性能调优

linux内存系统简述

关于linux内存系统我们至少应该了解什么?

linux 系统中内存地址分为虚拟地址和物理地址,虚拟地址必须通过mmu映射成物

理地址。为了完成虚拟地址到物理地址的映射,linux内核中必须为每一个用户态

进程维护一个页目录和相应的页表项。一般系统中页表中一页大小为4K,

利用getconf PAGESIZE可以获取系统中页大小。

linux伙伴系统,为了将系统中的内存页做相应的管理,linux内核将系统中内存为

分为不同的node,zone. 系统将不同cpu访问速率的内存归纳为不同的node.

zone表示同一个node不同内存区域,一般分问DMA, NORMAL, HIGHMEM.

每一个ZONE上面有active_list,inactive_list.

在每一个ZONE中需要管理这个ZONE中的活动页和非活动页,这样就方便每个ZONE中

页面的回收

nr_inactive_anon 3949

nr_active_anon 3299

nr_inactive_file 7305

nr_active_file 3182

nr_unevictable 0

页面交换,linux可以将系统中匿名页交换到交换分区或者交换文件中去,当系统

中的内存紧张时。

swapon -s 查看系统中交换分区或者交换文件使用情况

swapon -a 开启系统的交换功能

swapoff -a 关闭系统的交换功能

系统中缓存类型分为页缓存和块缓存。当系统去读取文件系统中的文件时,系统会

将读到的文件的内容缓存到一个地址空间中,组成这个地址空间的内存页就是页缓

存,叫做cache.

系统在读取文件系统中类似目录,超级块或者管理块时,读取到系统中的内存页中

,这种页面叫做块缓存,也叫做buffer.

linux如果按页管理分配内存,对较小的内存分配是一种严重的浪费。slab内存分

配器解决内核空间较小的内存分配问题。slab就是为了满足内核中各个模块特定大

小内存的快速分配,就从伙伴系统中要出内存页,自己建立一个相对独立的内存池

子,向特定的内核模块分配特定大小的内存。

slabtop

cat /proc/slabinfo

linux系统中内存使用分类

  1. 内核系统中分配的内存
  2. 用户态代码段,数据段,堆空间,栈空间
  3. 文件地址空间缓存,块缓存
  4. 文件在用户空间的地址映射消耗的内存.
  5. mmap 匿名映射的页,shmem共享内存使用的页.

可回收的页和不可回收的页

上面总结了linux中内存页的不同种类,上面不同类型的页面基本上可以分为两种不同的类型,一种是可回收页面,另外一种为不可以回收的页面。除了第一种,内核系统中分配的内存为不可回收的外,其它类型的页面都是可以回收的页面。

可回收页面分类

  1. 匿名页面需要将页面内容交换到交换设备或者文件才能回收该页面
  2. 文件地址空间缓存,块缓存通过回写页面内容后再回收页面.

如何查看系统中不同类型内存数量

使用这个命令可以看到系统中空闲内存数量,buffer缓存数量,页缓存数量.同时可以看到交换分区换入,换出页面的数目.

root@localhost:~# vmstat 1 -S m

procs———–memory———- —swap– —–io—- -system– —-cpu—-

rb swpd free buffcache si sobi bo incs us sy id wa

21 0 0 665 69 508 0 0 0 0 19 5 38 3 59 0

19 0 0 665 69 508 0 0 0 0 2161 3112 97 4 0 0

20 0 0 665 69 508 0 0 0 0 1903 3394 97 3 0 0

查看进程内存使用情况

top

shift + m

linux系统中的进程按照消耗内存大小进行排列,VIRT表示虚拟地址空间内存大小,RES表示实际内存使用大小。

shift + p

linux系统中的进程按照消耗CPU大小进行排列

使用pmap查看进程内存使用情况

pmap pid

我们可以看到整个进程占用的虚拟内存的情况

查看slab使用情况

slabtop

cat/proc/slabinfo

www.dengb.comtruehttp://www.dengb.com/wzaq/1180567.htmlTechArticlelinux 内存性能调优 linux 内存性能调优 linux内存系统简述 关于 linux 内存系统我们至少应该了解什么? linux 系统中内存地址分为虚拟地址和物…

—-想了解更多的网站安全相关处理怎么解决关注<编程笔记>


推荐阅读
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文详细介绍了VMware的多种认证选项,帮助你根据职业需求和个人技能选择最合适的认证路径,涵盖从基础到高级的不同层次认证。 ... [详细]
  • 深入理解Java泛型:JDK 5的新特性
    本文详细介绍了Java泛型的概念及其在JDK 5中的应用,通过具体代码示例解释了泛型的引入、作用和优势。同时,探讨了泛型类、泛型方法和泛型接口的实现,并深入讲解了通配符的使用。 ... [详细]
  • 本文介绍如何通过更改软件源来提前体验Ubuntu 8.10,包括详细的配置步骤和相关注意事项。 ... [详细]
  • 汇编语言等号伪指令解析:探究其陡峭的学习曲线
    汇编语言以其独特的特性和复杂的语法结构,一直被认为是编程领域中学习难度较高的语言之一。本文将探讨汇编语言中的等号伪指令及其对初学者带来的挑战,并结合社区反馈分析其学习曲线。 ... [详细]
  • 本文介绍如何在Linux服务器之间使用SCP命令进行文件传输。SCP(Secure Copy Protocol)是一种基于SSH的安全文件传输协议,支持从远程机器复制文件到本地服务器或反之。示例包括从192.168.45.147复制tomcat目录到本地/home路径。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 解决网站乱码问题的综合指南
    本文总结了导致网站乱码的常见原因,并提供了详细的解决方案,包括文件编码、HTML元标签设置、服务器响应头配置、数据库字符集调整以及PHP与MySQL交互时的编码处理。 ... [详细]
author-avatar
锋丽恋歌521
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有