我租用 VPS 主机,费用基于 RAM。目前,我租用的是 4G。但是,我想知道是否可以安全地将其减少到 2GB,如果可能的话,甚至可以减少到 1GB。
这里是我的输出:“free -m”当服务器运行时在高峰期.因此,我不会再运行任何应用程序或玉米作业:
user@mymachine:~$ free -m
total used free shared buffers cached
Mem: 4048 2838 1209 0 10 850
-/+ buffers/cache: 1977 2070
Swap: 255 0 255
top 命令的输出如下:
user@mymachine:~$ top
top - 12:38:17 up 1:11, 2 users, load average: 5.12, 3.77, 2.16
Tasks: 97 total, 1 running, 96 sleeping, 0 stopped, 0 zombie
Cpu(s): 88.6%us, 9.2%sy, 0.0%ni, 0.2%id, 0.0%wa, 0.0%hi, 1.3%si, 0.7%st
Mem: 4145552k total, 2998500k used, 1147052k free, 10408k buffers
Swap: 262140k total, 0k used, 262140k free, 890720k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2434 ahmed 20 0 1240m 1.1g 8300 S 262 27.3 26:30.29 java
2546 root 20 0 2433m 817m 8908 S 77 20.2 27:39.19 java
2008 mysql 20 0 182m 47m 5912 S 59 1.2 17:09.17 mysqld
2259 root 20 0 0 0 0 S 1 0.0 0:04.21 flush-202:0
2405 ahmed 20 0 8536 1592 984 S 1 0.0 0:00.34 sshd
1 root 20 0 2732 1596 1200 S 0 0.0 0:00.57 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0 0.0 0:00.19 ksoftirqd/0
4 root 20 0 0 0 0 S 0 0.0 0:00.00 kworker/0:0
5 root 0 -20 0 0 0 S 0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0 0.0 0:00.05 kworker/u:0
7 root 0 -20 0 0 0 S 0 0.0 0:00.00 kworker/u:0H
8 root RT 0 0 0 0 S 0 0.0 0:00.05 migration/0
9 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/1
10 root 20 0 0 0 0 S 0 0.0 0:00.00 kworker/1:0
11 root 0 -20 0 0 0 S 0 0.0 0:00.00 kworker/1:0H
12 root 20 0 0 0 0 S 0 0.0 0:00.08 ksoftirqd/1
答案1
如果目标是使用尽可能少的内存,您可以尝试将其减少到 2 GB(编辑,参见下面 user836026 的评论),同时增加交换空间。但请记住,一旦开始使用交换,一切都会变得非常慢。
还要确保将 Java 进程设置为不超过可用内存的限制(例如,堆空间的 -Xmx 参数)。这同样适用于 mysql(最大连接数、缓冲区...),最简单的检查方法是使用 mysqltuner。