前几天我发了一篇文章:在 4GB 物理内存的机器上,申请 8G 内存会怎么样?,但是当时写的比较匆忙,文章中只考虑关闭 swap 的情况,没有提及开启 swap 的情况,有读者希望我补充这部分内容。
究其原因,监控系统计算的可用内存算法有偏差,他只关注了计算机的“实际”内存,忽略了计算机的虚拟内存。
1. 显示系统内存 用于检查已用和可用空间的 free 命令physical memory和swap memory在KB.请参阅下面的操作命令。 # free total used free shared buffers cached Mem: 1021628 912548 109080 0 120368 655548 -/+ buffers/cache: 1366
这篇文章其实之前发过,但是最近有位读者跟我反馈,我文章中的实验在 64 位操作系统、2 G 物理内存的场景,申请 8G 内存是没问题的,而他也是这个环境,为什么他就无法申请成功呢?
毋庸置疑,虚拟内存是操作系统中最重要的概念之一。我想主要是由于内存的重要”战略地位”。CPU太快,但容量小且功能单一,其他 I/O 硬件支持各种花式功能,可是相对于 CPU,它们又太慢。于是它们之间就需要一种润滑剂来作为缓冲,这就是内存大显身手的地方。
毋庸置疑,虚拟内存绝对是操作系统中最重要的概念之一。我想主要是由于内存的重要”战略地位”。CPU太快,但容量小且功能单一,其他 I/O 硬件支持各种花式功能,可是相对于 CPU,它们又太慢。于是它们之间就需要一种润滑剂来作为缓冲,这就是内存大显身手的地方。
前言: 一个进程最大能使用多少虚拟内存,能控制的地方还是比想象的多一点。 尤其是IaaS上,一个qemu进程能使用多少虚拟内存,就是对应着虚拟机的物理内存的最大限制。 分析: 1,limit 在s
前不久组内又有一次我比较期待的分享:“Linux 的虚拟内存”。是某天晚上加班时,我们讨论虚拟内存的概念时,leader 发现几位同事对虚拟内存认识不清后,特意给这位同学挑选的主题。
前不久组内又有一次我比较期待的分享:”Linux 的虚拟内存”。是某天晚上加班时,我们讨论虚拟内存的概念时,leader 发现几位同事对虚拟内存认识不清后,特意给这位同学挑选的主题(笑)。
本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.2节的翻译 原文地址:http://www.redbooks.ibm.com/redpapers/pdfs/redp4285.pdf 原文作者:Eduardo Ciliendo, Takechika Kunimasa, Byron Braswell 1.2 Linux内存架构 为了执行一个进程,Linux内核为请求的进程分配一部分内存区域。该进程使用该内存区域作为其工作区并执行请求的工作。它与你的
作者简介:许庆伟,Linux Kernel Security Researcher & Performance Developer 众所周知,Linux内核和CPU处理器负责将虚拟内存映射到物理内存。为了提高效率,在一个称为页的内存组中创建一个内存映射,其中每个页的大小根据处理器的实际情况而来。尽管大多数处理器也支持更大的页,但默认通常是4 KB,。内核可以从页空闲列表中为物理内存页的申请提供分配,并且为了提高效率,为每个DRAM组和CPU均设计了维护这些请求的方案。内核程序可以通过分配器(比如slab分配
来源 | https://zhenbianshu.github.io/ 前不久组内又有一次我比较期待的分享:”Linux 的虚拟内存”。是某天晚上加班时,我们讨论虚拟内存的概念时,leader 发现几位同事对虚拟内存认识不清后,特意给这位同学挑选的主题(笑)。 之前了解一些操作系统的概念,主要是毕业后对自己大学四年的荒废比较懊恼,觉得自己有些对不起计算机专业出身,于是在工作之余抽出时间看了哈工大在网易云课堂的操作系统公开课,自己也读了一本讲操作系统比较浅的书 《Linux内核设计与实现》,而且去年自己用 C
dev/zero是Linux的一种特殊字符设备(输入设备),可以用来创建一个指定长度用于初始化的空文件,如临时交换文件,该设备无穷尽地提供0,可以提供任何你需要的数目。
交换空间是当今计算的一个共同方面,不管操作系统如何。Linux使用交换空间来增加主机可用的虚拟内存量。它可以在常规文件系统或逻辑卷上使用一个或多个专用交换分区或交换文件。
sar是System Activity Reporter(系统活动情况报告)的缩写。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的 特点是可以连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小。sar是目前Linux上最为全面的系统性能分析 工具之一,可以从14个大方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、串口、CPU效率、内存使用状况、进程活动及IPC有关的 活动等,使用也是较为复杂。 sa
通常来看,Redis开发和运维人员更加关注的是Redis本身的一些配置优化,例如AOF和RDB的配置优化、数据结构的配置优化等,但是对于操作系统是否需要针对Redis做一些配置优化不甚了解或者不太关心,然而事实证明一个良好的系统操作配置能够为Redis服务良好运行保驾护航。
根分区包含Linux系统所有的目录。如果在安装系统时只分配了/分区,那么上面的/boot、/usr和/var将都包含在根分区中,也就是这些分区将占用根分区的空间。
无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节,网上的一些Ubuntu Linux安装教程一般都是自动分区,给初学者带来很大的不便,下面我就根据多年来在装系统的经验谈谈安装Ubuntu Linux系统时硬盘分区最合理的方法。
马哥linux运维 | 最专业的linux培训机构 ---- 最近在维护一台CentOS服务器的时候,发现内存无端"损失"了许多,free和ps统计的结果相差十几个G,搞的我一度又以为遇到灵异事件了,后来Google了许久才搞明白,特此记录一下,以供日后查询。 虽然天天都在用Linux系统办公,其实对它的了解也不过尔尔。毕业几年才迈入"知道自己不知道"的境界,我觉得自己丝毫没有愧对万年吊车尾这个称号 :( 问题描述和初步调查 同事说有一台服务器的内存用光了,我连上去用free看了下,确实有点怪。 $ fr
12. sar 找出系统瓶颈的利器 sar是System Activity Reporter(系统活动情况报告)的缩写。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小。sar是目前Linux上最为全面的系统性能分析工具之一,可以从14个大方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、串口、CPU效率、内存使用状况、进程活动及IPC有关的活动等,使用也
当今无论什么操作系统交换Swap空间是非常常见的。Linux 使用交换空间来增加主机可用的虚拟内存。它可以在常规文件或逻辑卷上使用一个或多个专用交换分区或交换文件。
人生可悲的事情是,你不知道问题如何解决,并且困惑中, 而更可悲的是,你根本就不知道自己不知道, 当然从另一个角度,那也是一种"幸福".
爱可生交付服务部团队北京 DBA,主要负责处理 MySQL 的 troubleshooting 和我司自研数据库自动化管理平台 DMP 的日常运维问题,对数据库及周边技术有浓厚的学习兴趣,喜欢看书,追求技术。
在进行部署 Kubernetes 时,我们往往会发现这样一种场景:官方强烈建议在环境初始化时关闭 Swap 空间 。比如在进行 K8S 相关操作时,给予如下提示:
Koenig查找或参数依赖查找描述了C ++编译器如何查找不合格的名称 。简单来说:如果在函数的名称空间中定义了一种或多种参数类型,则不必为函数限定名称空间。
查看Swap分区的大小以及使用情况,一般使用free命令即可,如下所示,Swap大小为512M,目前没有使用Swap分区
最近在学习kubernetes(之后都称为k8s),在跟着kubernetes交互式文档学习玩基本概念等知识后,想着自己也搭建一个集群,加深一下对其的理解。
早上匆匆忙忙去上班了, 在一个例行的早会上, 被告知昨天 消息推送服务 内存报警超出了80%.
前言:既然你都找到这了,相信对Linux和Ubuntu已经有了一定的了解,这里就不再做过多的赘述,直接步入正题了。由于各种原因我已经反复装了七八遍的Ubuntu(从16.04到20.04都装过几次),发现不同版本的Ubuntu安装过程都大同小异,就决定拿最新版的20.04来和大家分享一下。由于安装过程中我不知道怎么截图,有些的配图是手机拍摄的,敬请谅解。
在工作环境中有一台gc的服务器,已经好几年没有动过了,上面安装着gc的服务和数据库,也就说gc里面的HttpServer,数据库,webcache都在这台服务器上。 大家在访问gc的时候,感觉有些时候访问很慢,尽管是内网,但是还是有很大的延迟的感觉,大家认为可能是监控的机器比较多了,也就没有在意,今天我抽空查看了下这台机器,还是发现了一些问题。 首先看看gc的服务是否正常。我们也可以使用opmn来检测。 $ ./opmnctl status Processes in Instance: Enterpri
最近很多人都在问明月的博客上用的是啥缓存插件以及服务器端采用的是什么缓存组件等等的,今天明月在此再次重申一下目前我的博客 WordPress 程序没有使用任何缓存插件了,服务器端仅仅保留了 PHP 代码的优化扩展OPCache而已,服务器的 CentOS Linux 启用了 SWAP 分区(可参考【阿里云 ECS 上运行 WordPress & Typecho 的建议开启 swap 分区】一文)。网站外部使用的 CDN 来加速的,目前主要是360 网站卫士和上海云盾 CDN 为主,【学习笔记 Blog】在上述两个 CDN 任意一个前提下使用了七牛云的“动静分离”加速优化(主要是使用的 handsome 主题原声支持七牛云加速)。
在之前的k8s实践中,我们使用minikube搭建了k8s环境,为了更真实的展示生产级别的k8s,本节课采用kubeadm来搭建master+worker集群,实现k8s集群,master、worker在虚拟机上来执行,中间遇到了超级多的坑,在这里系统的总结一下,分上下两篇进行讲解。
在Redis中,一个字符串最大512MB,一个二级数据结构(例如hash、list、set、zset)可以存储大约40亿个(2^32-1)个元素,但实际中如果下面两种情况,我就会认为它是bigkey。
在Linux系统中,top命令是一款强大的性能监测工具,它可以帮助系统管理员实时监控系统的性能情况,查看各个进程的资源占用情况,以及了解系统的负载情况。当我们在终端中输入top命令后,屏幕上会显示一系列的性能数据和进程信息,这些信息对于系统性能调优和故障排查非常重要。本文将深入探讨在执行top命令之后,屏幕上显示的各项内容以及它们的作用。
mkswap命令用于在一个文件或者设备上建立交换分区。在建立完之后要使用sawpon命令开始使用这个交换区。最后一个选择性参数指定了交换区的大小,但是这个参数是为了向后兼容设置的,没有使用的必要,一般都将整个文件或者设备作为交换区。
LXC 就是 Linux 容器工具,容器可以提供轻量级的虚拟化,以便隔离进程和资源,使用 LXC 的优点就是不需要安装太多的软件包,使用过程也不会占用太多的资源。LXC 是在 Linux 平台上基于容器的虚拟化技术的未来标准,最初的 LXC 技术是由 IBM 研发的,目前已经进入 Linux 内核,这意味着 LXC 技术将是目前最有竞争力的轻量级虚拟容器技术。本文将循序渐进地介绍在 Linux 容器中如何管理几种主要资源设备:内存、CPU 、硬盘存储器。 什么是虚拟机的重要资源 资源管理是将资源从资源提供方
在Linux系统中,内存管理是一个至关重要的方面,尤其在生产环境中,了解系统内存的使用情况可以帮助管理员优化系统性能,检测内存泄漏,合理分配资源,从而确保系统的稳定运行。本文将详细介绍在CentOS 7系统中如何使用常见的内存监控工具,如free、top、ps等,并深入探讨这些工具的各种参数和用法,以便读者能够全面掌握系统内存的监控与管理。
优先队列由一个基于堆的完全二叉树表示,存储于数组pq[1..N]中,pq[0]没有使用。在insert()中,我们将N加一并把新元素添加在数组最后,然后用swim()恢复堆的有序性(当一颗二叉树的结点都大于等于它的两个子节点时,它被称为堆有序)。在delete()中,我们从pq[1]中得到需要返回的元素,然后将pq[N]移动到pq[1],将N减一,并用sink()恢复堆有序。同时我们还将不再使用的p[N]设置为null,以便系统回收它所占用的空间。
Linux Swap 分区大小跟你服务器本身的物理内存大小有关,内存越大,设置的 Swap 分区也应该越大,两者的关系如下。
原文发布于微信公众号 - 云服务与SRE架构师社区(ai-cloud-ops),作者李勇。
shutdown命令 shutdown命令可以安全地关闭或重启linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。精确时间的格式是hh:mm,表示小时和分钟;时间段由“+”和分钟数表示。系统执行该命令后,会自动进行数据同步的工作。 该命令的一般格式为: shutdown [选项] [时间] [警告信息] 命令中各选项的含义为: - k 并不真正关机,而只是发出警告信息给所有用户。 - r 关机后立即重新启动。 - h 关机后不重新启动。 - f 快速关机,重启动时跳过fsck。 - n 快速关机,不经过init程序。 - c 取消一个已经运行的shutdown。 需要特别说明的是,该命令只能由超级用户使用。 free命令 free 命令显示系统内存使用情况信息,多少内存使用和多少内存空闲。 语法: 语法是 free [命令开关] [-V] 命令开关:
笔者团队发现现网服务负载即将达到瓶颈,但cpu利用率并未达到瓶颈,基于充分利用机器资源的考量,研发同学提出:“降低nginx worker数,腾出一部分内存,随后提高业务程序worker数,从而提升业务处理能力”的解决方案。
swap空间对于操作系统来说比较重要,当我们使用操作系统的时候,如果系统内存不足,常常会将一部分内存数据页进行swap操作,以解决临时的内存困境。swap空间由磁盘提供,对于高并发场景下,swap空间的使用会严重降低系统性能,因为它引入了磁盘IO操作。
问:我是一个Ubuntu 14.04 LTS版本的新手。我需要一块额外的swap文件来提高我Ubuntu服务器的性能。我怎样才能通过SSH连接用相关命令为我的Ubuntu 14.04 LTS 增加一块swap分区。
为什么选择Linux?因为Linux能让你掌握你所做的一切! 为什么痛恨Windows?因为Windows让你不知道自己在做什么! 这就是我喜欢Linux的原因。只要我愿意,我可以将底层的系统运行机制看得清清楚楚,可以掌握一切。而Windows尽管界面漂亮,却让你总也猜不透她心里想什么。我不喜欢若即若离的感觉。 如果你一看到这个标题就觉得头疼,或者对Linux的内部技术根本不关心,那么,我劝你一句:别用Linux了。你只是在追赶潮流,并不是真心喜欢它。Linux的确没有Windows好用,可它比Windows“结实”。如果你对Linux的稳定性感兴趣,特别是想把Linux作为网站服务器的话,那就请看看下文吧! Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。 本文内容包括: Swap基本原理 突破128M Swap限制 Swap配置对性能的影响 Swap性能监视 有关Swap操作的系统命令 Swap基本原理 Swap的原理是一个较复杂的问题,需要大量的篇幅来说明。在这里只作简单的介绍,在以后的文章中将和大家详细讨论Swap实现的细节。 众所周知,现代操作系统都实现了“虚拟内存”这一技术,不但在功能上突破了物理内存的限制,使程序可以操纵大于实际物理内存的空间,更重要的是,“虚拟内存”是隔离每个进程的安全保护网,使每个进程都不受其它程序的干扰。 Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。 计算机用户会经常遇这种现象。例如,在使用Windows系统时,可以同时运行多个程序,当你切换到一个很长时间没有理会的程序时,会听到硬盘“哗哗”直响。这是因为这个程序的内存被那些频繁运行的程序给“偷走”了,放到了Swap区中。因此,一旦此程序被放置到前端,它就会从Swap区取回自己的数据,将其放进内存,然后接着运行。 需要说明一点,并不是所有从物理内存中交换出来的数据都会被放到Swap中(如果这样的话,Swap就会不堪重负),有相当一部分数据被直接交换到文件系统。例如,有的程序会打开一些文件,对文件进行读写(其实每个程序都至少要打开一个文件,那就是运行程序本身),当需要将这些程序的内存空间交换出去时,就没有必要将文件部分的数据放到Swap空间中了,而可以直接将其放到文件里去。如果是读文件操作,那么内存数据被直接释放,不需要交换出来,因为下次需要时,可直接从文件系统恢复;如果是写文件,只需要将变化的数据保存到文件中,以便恢复。但是那些用malloc和new函数生成的对象的数据则不同,它们需要Swap空间,因为它们在文件系统中没有相应的“储备”文件,因此被称作“匿名”(Anonymous)内存数据。这类数据还包括堆栈中的一些状态和变量数据等。所以说,Swap空间是“匿名”数据的交换空间。 突破128M Swap限制 经常看到有些Linux(国内汉化版)安装手册上有这样的说明:Swap空间不能超过128M。为什么会有这种说法?在说明“128M”这个数字的来历之前,先给问题一个回答:现在根本不存在128M的限制!现在的限制是2G! Swap空间是分页的,每一页的大小和内存页的大小一样,方便Swap空间和内存之间的数据交换。旧版本的Linux实现Swap空间时,用Swap空间的第一页作为所有Swap空间页的一个“位映射”(Bit map)。这就是说第一页的每一位,都对应着一页Swap空间。如果这一位是1,表示此页Swap可用;如果是0,表示此页是坏块,不能使用。这么说来,第一个Swap映射位应该是0,因为,第一页Swap是映射页。另外,最后10个映射位也被占用,用来表示Swap的版本(原来的版本是Swap_space ,现在的版本是swapspace2)。那么,如果说一页的大小为s,这种Swap的实现方法共能管理“8 * ( s - 10 ) - 1”个Swap页。对于i386系统来说s=4096,则空间大小共为133890048,如果认为1 MB=2^20 Byte的话,大小正好为128M。 之所以这样来实现Swap空间的管理,是要防止Swap空间中有坏块。如果系统检查到Swap中有坏块,则在相应的位映射上标记上0,表示此页不可用。这样在使用Swap时,不至于用到坏块,而使系统产生错误。
什么是Linux swap space呢?我们先来看看下面两段关于Linux swap space的英文介绍资料:
2.使用 cd /usr 进入 /usr 文件夹,新建一个名叫swap的文件夹,使用ll命令可以看到多了一个swap的文件夹
本文介绍linux内存机制、虚拟内存swap、buffer/cache释放等原理及实操。
嵌入式Linux中文站消息,Linux系统的Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。
领取专属 10元无门槛券
手把手带您无忧上云