我正在开发一个用PHP编写的中等大小的Web应用程序,这个Web应用程序运行在一个512MB RAM的VPS上。 这个webapp还没有正式发布,所以没有太多的stream量在发生,只有我和其他一些人在做这个。 还有另外一个稍微小一点的webapp在这个机器上托pipe,在4-5个其他小的静态站点中。 我们正在运行Centos 5 32位和cPanel / WHM。 这是运行ps aux的结果,正如您所看到的,它不使用100%的RAM。 但是,在hypanel概述中,总是显示为使用一个500MB ram,仅用于运行apache,mysql,以及邮件服务器,ftp服务器等占用内存最小的版本。 -bash-3.2# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 2156 664 ? Ss 12:08 0:00 init [3] root 1123 0.0 0.0 2260 548 ? S<s 12:08 0:00 /sbin/udevd -d root 1462 0.0 0.0 […]
我对free的输出的理解是缓冲区/caching值是可用内存的真实反映。 我已经分配了512M到PHP APC操作码caching,虽然它利用了所有这些,但是免费的输出仍然是一样的。 我知道问题在于我对内存pipe理的理解(或缺乏)。 有人能给我一些这方面的见解吗? 更新: 我对记忆的理解来自我所做的集会学习。 我不知道的是(至less我认为)Linux内核如何pipe理内存。 自从发布这个问题我读了更多,我的理解是,在最简单的层面,他们是他们的名字build议 – caching是内核镜像文件到RAM更快的访问和缓冲区是个人使用的瞬态信息位stream程。 APC运行(512M充分利用): total used free shared buffers cached Mem: 1498 1452 46 0 36 796 -/+ buffers/cache: 619 879 在APC禁用后重新启动PHP FPM后立即执行: total used free shared buffers cached Mem: 1498 776 721 0 36 285 -/+ buffers/cache: 454 1043 忽略交换空间,因为它保持不变: 第一行对我有意义,内存从APC(512M)和PHP工作者(721-46-512 = 163M)中解脱出来。 分配给caching的内存不再有APC处理,减less了796-285 =〜512M(或者这只是一个巧合?)。 这是令我困惑的第二条线。 […]
当ESXi主机没有受到内存压力(即,运行中的虚拟机占用的内存比物理内存less)如何pipe理“空闲”内存? 它是否有块设备(虚拟磁盘)的块caching? 还要别的吗?
这是我的htop输出: 例如,我被这个ruby脚本弄糊涂了: 它使用多less物理内存? 3+1+8+51+51 51 ? 51+51 ?
我正在运行一个JVM来支持ElasticSearch。 我仍在resize和调整,所以我把JVM的最大堆大小设置为ElasticSearch的默认值1GB。 将数据放入数据库之后,我发现JVM的进程在SIZE top输出中显示了50GB。 看来这实际上是在系统上造成性能问题; 其他进程在分配内存时遇到困难。 在询问ElasticSearch社区时,他们build议说“只是”文件系统caching。 根据我的经验,文件系统caching不会显示为特定进程使用的内存。 当然,他们可能一直在谈论操作系统的文件系统caching以外的东西,也许是JVM或ElasticSearch本身在操作系统之上做的事情。 但他们也表示,如果需要的话,它会被释放,似乎没有发生。 所以任何人都可以帮我弄清楚如何调整JVM,或者ElasticSearch本身,不要使用太多的RAM。 系统是具有72GB RAM的Solaris 10 x86。 JVM是“Java(TM)SE运行时环境(build 1.7.0_45-b18)”。
下面的C程序分配10MB内存片,直到它被内存不足杀手所杀死。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> int main() { int counter = 0; int slice_size = 10*1000*1000; char c = 0; while (1) { char *assigned = malloc(slice_size); memset(assigned, c, slice_size); counter++; printf("Managed to assign %d times %d\n", counter, slice_size); usleep(100000) } } 鉴于free -m (运行程序后立即运行)报告6450 MB的可用内存 total used free shared buffers […]
我有一对非常大(〜17 GB)的数据库转储,我想加载到postgresql 9.3中。 在安装完数据库包之后,学习或多或less地使用它们,以及在各种StackExchange页面(特别是这个问题 )上摆弄一下,看起来像我使用的正确的命令是这样的: cat mydb.pgdump | psql mydb 由于转储的格式。我的机器有16 GB的内存,我不熟悉cat命令,但我知道我的RAM已用尽99%,数据库需要一段时间才能加载。 我的机器不是没有响应的悬挂点; 我可以在其他terminal窗口中运行其他命令,并让它们在一个合理的剪辑执行,但我想知道如果cat是最好的方式来pipe文件,或者如果别的更有效? 我担心的是,也许cat可能会用尽所有的内存,所以数据库没有太多的工作,扼杀其performance。 但我是新来思考像这样的内存问题,不知道我是不是在担心什么。 现在我想起来,这似乎更多的是关于cat和它的内存使用情况的问题。 如果有一个更合适的论坛这个问题,请让我知道。 谢谢!
这是一个8GB RAM(内核3.12)的无头服务器…即使在几天之后,我的内存也很低。 事实上,这个服务器已经OOMed前几天…有些东西正在失去记忆,但我不知道在哪里… 看到下面的输出: 简而言之: 64位系统和操作系统 不是pipe理程序,也不是虚拟机 低空闲的内存 交换使用 低caching 低缓冲区 无效+有效== 1GB? 低ipcs 低shm 低板 约500MB的tmpfs使用 实际上所有进程的总共RSS是262MB 所有进程的HWM小于600MB 我失去了超过6GB的地方…? [root @ localhost〜]#cat / proc / meminfo MemTotal:8186440 kB MemFree:251188 kB 缓冲区:144 kB caching:853548 kB SwapCached:9988 kB Active:480036 kB 无效:529456 kB Active(anon):256196 kB Inactive(anon):333072 kB Active(file):223840 kB Inactive(file):196384 kB Unevictable:13656 kB Mlocked:0 kB SwapTotal:4194300 kB […]
每天几次我在/ var / log / messages中收到以下错误。 服务器挂起并需要重新启动以再次响应: Feb 1 13:44:54 xenserver-abfuqvrs kernel: [35023.166776] BUG: unable to handle kernel paging request at ffffee00006fb6e0 Feb 1 13:44:54 xenserver-abfuqvrs kernel: [35023.166789] IP: [<ffffffff8111a8c8>] get_page_from_freelist+0x2d8/0x530 Feb 1 13:44:54 xenserver-abfuqvrs kernel: [35023.166801] PGD 0 Feb 1 13:44:54 xenserver-abfuqvrs kernel: [35023.166805] Oops: 0002 [#1] SMP Feb 1 13:44:54 xenserver-abfuqvrs kernel: [35023.166810] […]
我开始使用PHP 5.6的内置PHP OPcache,现在面临一个问题。 我将其设置为使用高达1 GB的RAM,这对于我的网站来说已经足够了,但是它永远无法使用全部1 GB的RAM。 caching被清除了很多次,然后才能分配这个限制,就像你在这张munin图中看到的那样: 所以每隔几天它就从caching中删除所有文件,并重新开始caching它们。 首先,我认为问题是variablesopcache.max_wasted_percentage但它不关心我设置它的值。 我的configuration如下: ; configuration for php ZendOpcache module ; priority=05 zend_extension=opcache.so opcache.enable = 1 opcache.enable_cli = 1 opcache.memory_consumption = 1024 opcache.interned_strings_buffer = 128 opcache.blacklist_filename = /etc/php5/opcache_blacklist.txt opcache.max_accelerated_files = 65407 opcache.revalidate_freq = 5 opcache.fast_shutdown = 1 opcache.max_wasted_percentage = 50 opcache.enable_file_override = 1 我正在使用nginx和FastCGI的Debian Jessie环境。 我想达到caching只有在内存消耗达到1 GB时才被清除。 我已经尝试了这样一个非常小的configuration: ; […]