我可以减少多少内存

我可以减少多少内存

我租用 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。

相关内容