热门标签 | 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 系统中内存地址分为虚拟地址和物…

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


推荐阅读
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文讨论了B360主板是否可以安装win7系统的问题。由于B360主板不支持win7系统且缺乏官方驱动的支持,安装win7系统可能存在兼容性和稳定性问题。然而,通过借助USB3.0转接卡,B360主板仍然可以安装win7系统,但USB接口无法使用。相比之下,B365主板可以直接支持win7系统,并提供了相应的驱动,具有更好的稳定性和兼容性。选择合适的主板对于安装win7系统至关重要。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了新款奇骏的两个让人上瘾的功能,分别是智能互联系统和BOSE音响。通过对新款奇骏的配置和功能进行评测,探讨了这两个新增功能的使用体验和优势。此外,还介绍了新款奇骏的其他配置和改进,如增加的座椅和驾驶辅助系统,以及内饰的舒适性提升。对于喜欢音响的消费者来说,BOSE音响的升级也是一个亮点。最后,文章提到了BOSE音响的数字还原能力,以及7座版无法配备BOSE音响的原因。 ... [详细]
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社区 版权所有