mysql - CentOS 内存使用情况。已使用约 22GB RAM(22GB 可用内存)

标签 mysql apache memory-management shared

几个月以来,我的物理共享托管服务器一直存在问题。我的专用服务器有 24Gb RAM,具有 8 核 CPU。我有内存泄漏的问题。可能是设置有问题,或者是硬件配置有问题。我需要找到原因。重新启动服务器后,我有大约 22Gb 的可用 RAM,然后在白天,它的时间都会增加。我正在通过 top、sar、ps 其他任务管理器观看,但我找不到任务,这完全占用了内存。现在,我的 24Gb 可用内存只剩下约 40Mb。 swap 仅 512 mb,但 sar 显示了其使用量的 0.2%。

root@srv [~]# free -m
             total       used       free     shared    buffers     cached
Mem:         24149      23689        459          0       2958      17862
-/+ buffers/cache:       2868      21280
Swap:          513          0        512

还有顶级结果:

Mem:  24728844k total, 24463380k used,   265464k free,  3029508k buffers
Swap:   525916k total,      816k used,   525100k free, 18316304k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 6307 someuser  20   0  151m  55m 6068 S 18.0  0.2   0:00.54 php
 6313 someuser  20   0  144m  50m 5908 R 12.3  0.2   0:00.37 php
 6316 someuser  20   0  141m  46m 5700 R  9.3  0.2   0:00.28 php
 6991 mysql     20   0  545m 249m 5740 S  9.0  1.0  24:41.08 mysqld
 6310 someuser  20   0  713m  62m  30m S  7.6  0.3   0:00.23 php
   25 root      20   0     0    0    0 S  0.3  0.0   0:07.15 ksoftirqd/6
 5012 nobody    20   0 71220 5580 1868 S  0.3  0.0   0:00.04 httpd
 6036 nobody    20   0 71372 5640 1768 S  0.3  0.0   0:00.01 httpd
 6056 root      20   0 12804 1228  840 R  0.3  0.0   0:00.05 top

我知道,有些应用程序会使用大量内存,但是它们在哪里呢?停止 Apache 或 MySQL 也没有帮助。我有另一台具有 64Gb RAM 的服务器。经过大约一周的可中断运行和艰苦使用后,64Gb 的可用容量约为 30Gb。为什么这样?如何计算物理内存\已用缓冲区等之间的比率?以及如何减少呢?如何真正确定每个应用程序使用了多少资源?如果我安装一个需要例如的应用程序会怎样? 6GB 内存?

最佳答案

Linux 积极使用空闲内存作为缓存和缓冲区。如果您的应用程序需要该内存,内核会很乐意将其移交。

查看 free -m 的输出的第 3 行,即标记为 -/+ buffers/cache: 的行——这就是最准确地表示有多少内存是“空闲”的。

参见:http://www.linuxatemyram.com/

关于mysql - CentOS 内存使用情况。已使用约 22GB RAM(22GB 可用内存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22392667/

相关文章:

mysql - 不重复行时插入?

c++ - 本地类变量位置

mysql - MDX 相当于 SQL 查询

php - 如何检索mysql数据并将其显示在html中

apache - 了解 Firefox 开发者控制台(网络选项卡)中用于图像缓存控制的 "Response Headers"和 "Request Headers"之间的区别

java - 如何在 Apache Lucene 中将页面转换为 SearchResult

apache - Node.js 在 Windows 上表现不佳吗,它的基本 I/O 肯定不会比 apache 慢

c - 在 C 中使用 malloc() 初始化大型数组时出现段错误

ios - NSJSONSerialization 与基于流的解析器

php - 在 MySQL 中减去两个带时间数据类型的字段