首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Nginx使用Linux内存加速静态文件访问

    Nginx是一个非常出色静态资源web服务器。如果你嫌它还不够快,可以把放在磁盘中文件,映射到内存中,减少高并发下磁盘IO。 先做几个假设。...nginx.conf中所配置站点路径是/home/wwwroot/res,站点所对应文件原始存储路径:/opt/web/res shell脚本非常简单,思路就是拷贝资源文件内存中,然后在把网站静态文件链接指向到内存中即可...测试前提:将测试网站首页全部内容包括html,图片,js,css等所有元素都拷贝到内存中,并且每次用户请求静态资源文件都不会缓存。使用LoadRunner按照200和100并发分别进行压力测试。...测试结果: 在高并发下全部使用磁盘文件200人并发 2分钟 平均每次事务响应时间为19.96秒 每秒处理事务数为9.26个 使用内存200人并发 2分钟 平均每次事务响应时间为11.3秒 每秒处理事务数为...15.8个 在低并发下全部使用磁盘文件100人并发 2分钟 平均每次事务响应时间为10.27秒 每秒处理事务数为9.32个 使用内存100人并发 2分钟 平均每次事务响应时间为5.84秒 每秒处理事务数为

    2.2K30

    Linux内存描述之高端内存--Linux内存管理(五)

    但是,当Linux物理内存超过1G时,线性访问机制就不够用了,因为只能有1G内存可以被映射,剩余物理内存无法被内核管理,所以,为了解决这一问题,Linux把内核地址分为线性区和非线性区两部分,线性区规定最大为...DMA Zone通常很小,只有几十M,低端内存区与高端内存划分来源于Linux内核空间大小限制。...Linux内核高端内存由来 2.1 为什么需要高端内存? 高端内存是指物理地址大于 896M 内存。对于这样内存,无法在“内核直接映射空间”进行映射。...1G) 2.3 Linux内核高端内存理解 前 面我们解释了高端内存由来。...4 页框管理 4.1 页框管理 Linux采用4KB页框大小作为标准内存分配单元。

    12.5K23

    Linux - Linux内存管理

    要深入了解Linux内存运行机制,需要知道下面提到几个方面。 首先,Linux系统会不时地进行页面交换操作,以保持尽可能多空闲物理内存。...其次,Linux进行页面交换是有条件,不是所有页面在不用时都交换到虚拟内存中,Linux内核根据“最近最经常使用”算法,仅仅将一些不经常使用页面文件交换到虚拟内存中。...---- 缓冲区(buffer)与缓存(cache)异同 在Linux操作系统中,当应用程序需要读取文件数据时,操作系统先分配一些内存,将数据从磁盘读入这些内存中,然后再将数据分发给应用程序;当需要往文件中写入数据时...在这种情况下,Linux引入了缓冲区和缓存机制。 缓冲区与缓存都是内存操作,用来保存系统曾经打开过文件以及文件属性信息。...Linux下可以使用文件系统中一个常规文件或者一个独立分区作为交换空间。同时Linux允许使用多个交换分区或者交换文件

    52.4K41

    Linux吃掉我内存

    这正是Windows和Linux内存管理上区别,乍一看,Linux系统吃掉我们内存Linux ate my ram),但其实这也正是其内存管理特点。 ?...free命令介绍 下面为使用free命令查看我们实验室文件服务器内存得到结果,-m选项表示使用MB为单位: ?...buffers/cached好处 Linux 内存管理做了很多精心设计,除了对dentry进行缓存(用于VFS,加速文件路径名到inode转换),还采取了两种主要Cache方式:Buffer Cache...其实不然,Linux并没有吃掉你内存,只要还未使用到交换分区,你内存所剩无几时,你应该感到庆幸,因为Linux缓存了大量数据,也许下一次你就从中受益!...实验证明 下面通过实验来验证上面的结论: 我们先后读入一个大文件,比较两次读入实践: 1.首先生成一个1G文件 ? 2.清空缓存 ? 3.读入这个文件,测试消耗时间 ?

    98950

    Linux 内存分页管理

    有趣是,尽管进程和内存关系如此紧密,但进程并不能直接访问内存。在Linux下,进程不能直接读写内存中地址为0x1位置数据。...因此,Linux采用了分页(paging)方式来记录对应关系。所谓分页,就是以更大尺寸单位页(page)来管理内存。在Linux中,通常每页大小为4KB。...Linux把物理内存和进程空间都分割成页。 内存分页,可以极大地减少所要记录内存对应关系。我们已经看到,以字节为单位对应记录实在太多。...因此,Linux分页表,采用了多层数据结构。多层分页表能够减少所需空间。 我们来看一个简化分页设计,用以说明Linux多层分页表。...最新Linux系统中分页表多达3层,管理内存地址也比本章介绍长很多。不过,多层分页表基本原理都是相同。 综上,我们了解了内存以页为单位管理方式。

    1.1K30

    聊聊 Linux 内存统计

    点击上方“小强进阶之路”,选择“星标”公众号 优质文章,及时送达 预计阅读时间: 18分钟 写在前面 本文主要分析 Linux 系统内存统计一些指标以及进程角度内存使用监控一些方法。...Linux 内存管理从物理内存管理到虚拟内存管理涉及概念和统计项实在太多,本文从实用和系统运维角度出发,只列举一些最实用统计。...Linux 2.4.10 内核之前,磁盘缓存有两种,即 Buffer Cache和 Page Cache。前者缓存管理磁盘文件系统时读取块,后者存放访问具体文件内容时生成页。...(File-backed Pages), 比如程序文件、读取文件时数据对应缓存页 与文件无关匿名内存页(Anonymous Pages),比如进程堆、栈等分配内存 所有Page Cache里页面都是...共享内存、可执行程序文件、动态库、mmap文件等都统计在这里 Shmem — 共享内存大小,包括Shared Memory、tmpfs和devtmpfs 注意 Linux 内存是真正使用时才分配

    6.4K40

    Linux 内核 内存管理】Linux 内核内存布局 ② ( x86_64 架构体系内存分布 | 查看 procmeminfo 文件 | procmeminfo 重要字段解析 )

    ; Buffers: 56496 kB 为 " 块设备 " 做缓存内存空间大小 Cached: 824888 kB 分配给 " 文件缓冲区 " 内存空间大小 SwapCached: 0 kB "...高速缓存 " " 交换空间 " 大小 Active: 1021364 kB " 高速缓存 " 页面文件大小 Inactive: 352536 kB 不经常使用 " 高速缓存 " 页面文件大小 Active...(anon): 493520 kB 活跃 " 匿名内存 " Inactive(anon): 17780 kB 不活跃 " 匿名内存 " Active(file): 527844 kB 活跃文件使用内存...Inactive(file): 334756 kB 不活跃文件使用内存 Unevictable: 48 kB 不可释放内存页 Mlocked: 48 kB 允许程序在 " 物理内存 " 上 锁住...kB 正在被写内存大小 AnonPages: 492572 kB " 未映射页 " 内存 映射到 " 用户空间 " 后 页表大小 Mapped: 191348 kB " 映射文件 " 内存大小 Shmem

    1.6K30

    Linux内存描述之内存节点node--Linux内存管理(二)

    CPU访问本地内存速度比访问远程内存速度要快 Linux适用于各种不同体系结构, 而不同体系结构在内存管理方面的差别很大....因此linux内核需要用一种体系结构无关方式来表示内存....因此linux内核把物理内存按照CPU节点划分为不同node, 每个node作为某个cpu结点本地内存, 而作为其他CPU节点远程内存, 而UMA结构下, 则任务系统中只存在一个内存node, 这样对于...分配内存操作时区域顺序,当调用free_area_init_core()时,由mm/page_alloc.c文件build_zonelists()函数设置 nr_zones 当前节点中不同内存域zone...-3.x~4.x实现 node_data内存节点数组 在新linux3.x~linux4.x内核中,内核移除了pg_data_tpgdat_next之指针域, 同时也删除了pgdat_list链表

    7.9K21

    Linux内存分页管理

    有趣是,尽管进程和内存关系如此紧密,但进程并不能直接访问内存。在Linux下,进程不能直接读写内存中地址为0x1位置数据。...因此,Linux采用了分页(paging)方式来记录对应关系。所谓分页,就是以更大尺寸单位页(page)来管理内存。在Linux中,通常每页大小为4KB。...Linux把物理内存和进程空间都分割成页。 内存分页,可以极大地减少所要记录内存对应关系。我们已经看到,以字节为单位对应记录实在太多。...因此,Linux分页表,采用了多层数据结构。多层分页表能够减少所需空间。 我们来看一个简化分页设计,用以说明Linux多层分页表。...最新Linux系统中分页表多达3层,管理内存地址也比本章介绍长很多。不过,多层分页表基本原理都是相同。 综上,我们了解了内存以页为单位管理方式。

    1.3K20

    Linux内存分页管理

    有趣是,尽管进程和内存关系如此紧密,但进程并不能直接访问内存。在Linux下,进程不能直接读写内存中地址为0x1位置数据。...因此,Linux采用了分页(paging)方式来记录对应关系。所谓分页,就是以更大尺寸单位页(page)来管理内存。在Linux中,通常每页大小为4KB。...Linux把物理内存和进程空间都分割成页。 内存分页,可以极大地减少所要记录内存对应关系。我们已经看到,以字节为单位对应记录实在太多。...因此,Linux分页表,采用了多层数据结构。多层分页表能够减少所需空间。 我们来看一个简化分页设计,用以说明Linux多层分页表。...最新Linux系统中分页表多达3层,管理内存地址也比本章介绍长很多。不过,多层分页表基本原理都是相同。 综上,我们了解了内存以页为单位管理方式。

    1.4K10

    Linux内存描述之内存页面page--Linux内存管理(四)

    1 Linux如何描述物理内存 Linux把物理内存划分为三个层次来管理 层次 描述 存储节点(Node) CPU被划分为多个节点(node), 内存则被分簇, 每个CPU对应一个本地物理内存, 即一个...简单来说, 页是一个数据块, 可以存放在任何页框(内存中)或者磁盘(被交换至交换分区)中 我们今天就来详细讲解一下linux下物理页帧描述 2 页帧 内核把物理页作为内存管理基本单位....在映射虚拟空间(vma_area)内偏移; 一个文件可能只映射一部分,假设映射了1M空间, index指的是在1M空间内偏移,而不是在整个文件偏移...2.2 mapping & index mapping指定了页帧所在地址空间, index是页帧在映射内部偏移量. 地址空间是一个非常一般概念. 例如, 可以用在向内存读取文件时....地址空间用于将文件内容与装载数据内存区关联起来. mapping不仅能够保存一个指针, 而且还能包含一些额外信息, 用于判断页是否属于未关联到地址空间某个匿名内存区.

    8.4K11

    Linux内存描述之概述--Linux内存管理(一)

    2 (N)UMA模型中linux内存机构 Linux适用于各种不同体系结构, 而不同体系结构在内存管理方面的差别很大. 因此linux内核需要用一种体系结构无关方式来表示内存....Linux内核通过插入一些兼容层, 使得不同体系结构差异很好被隐藏起来, 内核对一致和非一致内存访问使用相同数据结构 2.1 (N)UMA模型中linux内存机构 非一致存储器访问(NUMA)模式下...在LINUX中引入一个数据结构struct pglist_data ,来描述一个node,定义在include/linux/mmzone.h 文件中。..., 我们会在后面典型架构(x86)上内存区域划分详细讲解x86_32上内存区域划分 因此Linux内核对不同区域内存需要采用不同管理方式和映射方式, 为了解决这些制约条件,Linux使用了三种区:...2.6 高端内存 由于能够被Linux内核直接访问ZONE_NORMAL区域内存空间也是有限,所以LINUX提出了高端内存(High memory)概念,并且允许对高端内存访问

    6.9K30

    Linux 内核 内存管理】Linux 内核内存布局 ③ ( Linux 内核 动态分配内存 系统接口函数 | 统计输出 vmalloc 分配内存 )

    文章目录 一、Linux 内核 动态分配内存 系统接口函数 二、统计输出 vmalloc 分配内存 一、Linux 内核 动态分配内存 系统接口函数 ---- Linux 内核 " 动态分配内存 "...是通过 " 系统接口 " 实现 , 下面介绍几个重要 接口函数 ; ① 以 " 页 " 为单位分配内存 : alloc_pages , __get_free_page ; ② 以 " 字节 " 为单位分配..." 虚拟地址连续内存块 " : vmalloc ; ③ 以 " 字节 " 为单位分配 " 物理地址连续内存块 " : kmalloc ; 注意 该 " 物理地址连续内存块 " 是以 Slab 为中心...; 二、统计输出 vmalloc 分配内存 ---- 执行 grep vmalloc /proc/vmallocinfo 命令 , 可以统计输出 通过 vmalloc 函数分配 " 虚拟地址连续内存

    5.2K30

    Linux内存描述之内存区域zone--Linux内存管理(三)

    Linux使用enum zone_type来标记内核所支持所有内存区域 3.1 内存区域类型zone_type zone_type结构定义在include/linux/mmzone.h, 其基本信息如下所示..., 这个变量初始化完全依赖与硬件体系结构. max_possible_pfn x86系统中, find_max_pfn函数通过读取e820表获得最高page frame数值, 同样在文件mm...我理解为这段地址kernel可以直接访问,可以通过PAGE_OFFSET宏直接将kernel所用虚拟地址转换成物理地址区段。在文件mm/bootmem.c中对这个变量作初始化。...在arch/i386/mm/init.c文件中会对类似的highstart_pfn和highend_pfn变量作初始化。这些变量用于对高端内存页面的分配。后面将描述。...Linux必须处理如下两种硬件存在缺陷而引起内存寻址问题: 一些硬件只能用某些特定内存地址来执行DMA 一些体系结构其内存物理寻址范围比虚拟寻址范围大多。

    9.4K31

    Linux中进程内存与cgroup内存统计

    Linux内核,对于进程内存使用与Cgroup内存使用统计有一些相同和不同地方。...进程内存统计 一般来说,进程使用内存主要有以下几种情况: (1)用户空间匿名映射页(Anonymous pages in User Mode address spaces),比如调用malloc分配内存...,以及使用MAP_ANONYMOUSmmap;当系统内存不够时,内核可以将这部分内存交换出去; (2)用户空间文件映射页(Mapped pages in User Mode address spaces...),包含map file和map tmpfs;前者比如指定文件mmap,后者比如IPC共享内存;当系统内存不够时,内核可以回收这些页,但回收之前可能需要与文件同步数据; (3)文件缓存(page in...page cache of disk file);发生在程序通过普通read/write读写文件时,当系统内存不够时,内核可以回收这些页,但回收之前可能需要与文件同步数据; (4)buffer pages

    2.6K30
    领券