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

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


推荐阅读
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • Linux系统中Boot分区空间不足的处理方案
    在Linux系统的默认安装过程中,Boot分区通常分配的空间为200MB左右,理论上这个大小足以满足日常需求。然而,随着系统的频繁更新,尤其是内核的不断升级,如果不及时清理过期的内核版本,Boot分区很容易出现空间不足的问题。 ... [详细]
  • Android 中的布局方式之线性布局
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • 本文详细介绍了在 Red Hat Linux 系统上安装 GCC 4.4.2 的步骤,包括必要的依赖库的安装及常见问题的解决方法。 ... [详细]
  • 在Android应用开发过程中,开发者经常遇到诸如CPU使用率过高、内存泄漏等问题。本文将介绍几种常用的命令及其应用场景,帮助开发者有效定位并解决问题。 ... [详细]
  • 本文详细介绍了如何利用Xshell配合Xftp实现文件传输,以及如何使用Pure-FTPd构建FTP服务,并探讨了VSFTP与MySQL结合存储虚拟用户的方法。 ... [详细]
  • 本文详细介绍了Linux系统中信号量的相关函数,包括sem_init、sem_wait、sem_post和sem_destroy,解释了它们的功能和使用方法,并提供了示例代码。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
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社区 版权所有