请参转载:https://www.sky8g.com/technology/198/
如果浏览不顺畅请到原文章出处:https://www.sky8g.com/technology/198/
请注意可能会提示风险,这是csdn官网如果不是他们的网址,其他的网址都会提示有风险,这是CSDN网站设置的问题,本网站全部文章为免费技术分享,请放心访问,无需担心。谢谢。
原文章出处:https://www.sky8g.com/technology/198/
介绍
让服务器响应更快、防止应用程序出现内存不足错误的最简单方法之一是添加一些交换空间。交换是存储驱动器上的一个区域,操作系统可以在其中临时存储无法保存在内存中的数据。
这使您能够增加服务器能够保存在其工作内存中的信息的数量,但有一些警告。读写交换比使用内存慢,但它可以为服务器内存不足时提供良好的安全网。
没有交换空间,服务器将耗尽内存。
CentOS 7服务器上创建和启用交换文件。
虽然通常推荐使用传统旋转硬盘的系统使用swap,但是随着时间的推移,与ssd一起使用swap会导致硬件退化的问题。因此,我们不建议在DigitalOcean或任何使用SSD存储的其他提供者上启用swap。这样做会影响您和您的邻居的底层硬件的可靠性。
如果您需要改进服务器的性能,我们建议您升级您的Droplet。这通常会导致更好的结果,并降低导致硬件问题的可能性
检查系统是否有交换信息
free -m
total used free shared buffers cached
Mem: 3953 315 3637 8 11 107
-/+ buffers/cache: 196 3756
Swap: 0 0 4095
检查可用存储空间
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 59G 1.5G 55G 3% /
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 8.3M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
注意:-h标志简单地告诉dh以人类友好的阅读格式输出驱动器信息。例如,df -h将告诉我们M(兆字节)或G(十亿字节)的空间使用情况和可用性,而不是在分区中输出原始的内存块数量。
正如您在第一行看到的,我们的存储分区有59gb可用空间,因此我们有相当大的空间可以使用。请记住,这是在一个新的、中等大小的VPS实例上进行的,因此您的实际使用可能非常不同。
尽管对于交换空间的适当大小有很多意见
创建交换文件
既然知道了可用的存储空间,我们就可以着手在文件系统中创建交换文件。我们将在根(/)目录中创建一个名为swapfile的文件,不过如果您愿意,您可以将该文件命名为其他文件。文件必须分配交换文件所需的空间。
创建交换文件的最快和最简单的方法是使用fallocate。这个命令立即创建一个预先分配大小的文件。我们可以通过输入:
sudo fallocate -l 4G /swapfile
在输入您的密码以授权sudo特权之后,交换文件将几乎立即创建,提示将返回给您。我们可以使用ls来验证为swap预留的空间是否正确:
ls -lh /swapfile
-rw-r–r– 1 root root 4.0G Oct 30 11:00 /swapfile
如您所见,我们的交换文件是在留出正确数量的空间的情况下创建的
启用交换文件
现在,我们的文件已经创建,但是我们的系统不知道这应该用于交换。我们需要告诉系统将此文件格式化为交换文件,然后启用它。
在此之前,我们应该调整交换文件的权限,以便除根帐户之外的任何人都无法读取它。允许其他用户读或写这个文件将是一个巨大的安全风险。我们可以通过chmod锁定权限:
sudo chmod 600 /swapfile
这将仅限制root帐户的读取和写入权限。我们可以再次使用ls -lh验证交换文件是否具有正确的权限:
ls -lh /swapfile
-rw——- 1 root root 4.0G Oct 30 11:00 /swapfile
既然我们的交换文件更安全,我们可以通过输入以下内容告诉我们的系统设置交换空间以供使用:
sudo mkswap /swapfile
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=b99230bb-21af-47bc-8c37-de41129c39bf
我们的交换文件现在可以用作交换空间。我们可以通过键入来开始使用它:
sudo swapon /swapfile
为了验证程序是否成功,我们可以检查我们的系统现在是否报告交换空间:
swapon -s
Filename Type Size Used Priority
/swapfile file 4194300 0 -1
此输出确认我们有一个新的交换文件。我们可以再次使用free程序来证实我们的发现:
free -m
total used free shared buffers cached
Mem: 3953 315 3637 8 11 107
-/+ buffers/cache: 196 3756
Swap: 4095 0 4095
我们的交换已成功设置,我们的操作系统将根据需要开始使用它。