• 关于Linux下内存和Swap


    1.1 前言

    很久之前在做一个网站的时候,发现的一个问题。
    之前在搭建完网站需要启动Mysql的时候,死活启动不了。为什么?我查了下日志,发现是etc/mysql/下的Mysql配置文件一直无法生成。
    这个文件一般是随着Mysql服务重启的时候会自动生成到etc/配置文件下。我当前的机器内存是很足的,所以我想临时文件不可能生成不了呀!

    1.2 虚拟内存orSwap

    但是也知道SWap文件交换区的作用,但是我想的是按照Windows的路子,临时的东西不都是放在内存里的吗?

    不过我后来又想到操作系统有虚拟内存一说呀,那么Linux的虚拟内存是啥?
    swap全称为swap place,即交换区,当内存不够的时候,被踢出的进程被暂时存储到交换区。当需要这条被踢出的进程的时候,就从交换区重新加载到内存,否则它不会主动交换到真实内存中。
    就这样我重新修改了一下机器的Swap空间大小,如果配置文件成功生成了!这里就有一个疑问了,Linux在工作中什么时候选择内存,什么时候选择Swap?

    1.3 交换区

    交换分区并不是等到物理内存用尽了才使用的,是否尽量的使用或不使用swap,在内核空间有一个参数控制。
    cat /proc/sys/vm/
    swappinessswappiness=0 的时候表示最大限度使用物理内存,然后才是swap空间;swappiness=100 的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

    考虑到以下情况:

    1)安装系统时难以确定内存的负荷,如何设置交换分区大小。

    2)系统中物理内存越大,所需交换分区就会越少。

    因此,在Red Hat Enterprise Linux 中,以下是设置合适的交换分区大小的规则:

    我们平时安装系统时,默认都分内存的2倍,因为现在有硬盘空间都很大,也不在乎那几十G的空间。
    通过一些实践发现,一般临时配置文件都是会放在Swap区里的,所以当你发现你机子内存很足,但是就是出现一些程序突然运行中断现象,极有可能是你分配给机子的Swap空间太小了。
    比如网站的搭建必然要很大的Swap空间去存储一些临时静态文件。

  • 相关阅读:
    iOS崩溃治理--基础设施篇
    iOS崩溃治理--开篇
    AFNetworking 源码解读
    NSURLSession使用, 后台下载
    iOS10 越狱, openSSH
    iOS 私有API调用
    IOS 中openGL使用(使用基准图快速制作滤镜)
    IOS 中openGL使用教程4(openGL ES 入门篇 | 离屏渲染)
    IOS 中openGL使用教程3(openGL ES 入门篇 | 纹理贴图(texture)使用)
    SSM整合配置文件的主要内容
  • 原文地址:https://www.cnblogs.com/xhj928675426/p/13049563.html
Copyright © 2020-2023  润新知