好久以前在作一个网站的时候,发现的一个问题。
以前在搭建完网站须要启动Mysql的时候,死活启动不了。为何?我查了下日志,发现是etc/mysql/下的Mysql配置文件一直没法生成。
这个文件通常是随着Mysql服务重启的时候会自动生成到etc/配置文件下。我当前的机器内存是很足的,因此我想临时文件不可能生成不了呀!mysql
可是也知道SWap文件交换区的做用,可是我想的是按照Windows的路子,临时的东西不都是放在内存里的吗?
不过我后来又想到操做系统有虚拟内存一说呀,那么Linux的虚拟内存是啥?
swap全称为swap place,即交换区,当内存不够的时候,被踢出的进程被暂时存储到交换区。当须要这条被踢出的进程的时候,就从交换区从新加载到内存,不然它不会主动交换到真实内存中。
就这样我从新修改了一下机器的Swap空间大小,若是配置文件成功生成了!这里就有一个疑问了,Linux在工做中何时选择内存,何时选择Swap?sql
交换分区并非等到物理内存用尽了才使用的,是否尽可能的使用或不使用swap,在内核空间有一个参数控制。
cat /proc/sys/vm/
swappinessswappiness=0 的时候表示最大限度使用物理内存,而后才是swap空间;swappiness=100 的时候表示积极的使用swap分区,而且把内存上的数据及时的搬运到swap空间里面。app
考虑到如下状况:网站
1)安装系统时难以肯定内存的负荷,如何设置交换分区大小。操作系统
2)系统中物理内存越大,所需交换分区就会越少。日志
所以,在Red Hat Enterprise Linux 中,如下是设置合适的交换分区大小的规则:
咱们平时安装系统时,默认都份内存的2倍,由于如今有硬盘空间都很大,也不在意那几十G的空间。
经过一些实践发现,通常临时配置文件都是会放在Swap区里的,因此当你发现你机子内存很足,可是就是出现一些程序忽然运行中断现象,极有多是你分配给机子的Swap空间过小了。
好比网站的搭建必然要很大的Swap空间去存储一些临时静态文件。blog