我的一个托pipe服务器是运行Debian和Linux内核2.6.32,然后是2.6.38的Xen客户机。 它运行良好很长一段时间(一年多),但我最近注意到一些奇怪的东西。 几个月后,分配给缓冲区(磁盘I / O,networking)的内存部分总是保持为零。 免费的输出是这样的: total used free shared buffers cached Mem: 2071148 1775284 295864 0 0 1139388 -/+ buffers/cache: 635896 1435252 Swap: 524280 19508 504772 buffers列总是打印0,不pipe服务器的使用情况(这是相当繁忙的邮件服务器运行后缀和快递)。 这里是一些更多的信息: /proc/meminfo和/proc/slabinfo输出: http : /proc/slabinfo atsar -p (分页/交换)从正常的date输出: http : //pastebin.com/VwLdf1L1 (它表明几乎没有交换) 我也有印象,但我不能真正衡量它,系统读取一些文件,勉强使用的文件或像日志这样的大文件很慢。 因此,我想知道,如果这种buffers内存可能会以某种方式错误configuration,并且磁盘吞吐量可能会增加。 但是,似乎没有linux内核参数来pipe理buffers内存,至less没有像cached内存的参数那样。 或者我错过了什么? 这个记忆如何总是为零? 这是我应该担心的吗? 如果实际上可行,我怎么可能改变这种行为来使一些内存更好地使用? 更新:在内核升级(2.6.38定制内核从我的提供者)后,行为仍然保持与缓冲区保持在0相同。这是持续了一年多的时间,与服务器被相当多的使用(邮件服务器2百个用户)。 这台服务器已经运行Debian 6,现在正在高兴地运行Debian 7.缓冲区内存仍然保持在0!
我正在debian上运行一个小型的存储服务器,在过去的几个月中,我注意到进程udisks-daemon几乎消耗了所有可用的内存。 这只是真正积极的caching或内存泄漏? uname -a Linux Proto 2.6.32-5-amd64 #1 SMP Sun May 6 04:00:17 UTC 2012 x86_64 GNU/Linux free -m total used free shared buffers cached Mem: 7999 7390 608 0 317 368 -/+ buffers/cache: 6704 1294 Swap: 15621 15621 0 vmstat procs ———–memory———- —swap– —–io—- -system– —-cpu—- rb swpd free buff cache si so bi […]
我正在寻找一个V40z(一个借用者),运行RHEL 4.8(不,我不能更新它,它是一个租借者),根据dmidecode有8个DIMM,每个2048M,这使得16GB RAM,关心。 但是,内核报告的总内存是 cat /proc/meminfo MemTotal: 14898844 kB 现在,在集成显卡芯片组的机器上,我已经看到内存在128到512MB的范围内“丢失”,但是对于服务器上的这种巨大差异,会有什么解释呢? 我看到它错过了1.8G。
在运行Debian Wheezy amd64的本地机器(i7 9200)上,我可以通过以下方式获得一些“大数据”/ HPCtypes的重要加速: 按照这里的说明,为大页面保留一些RAM并设置hugetlbfs。 运行我的应用程序使用libhugetlbfs '(2.17)漂亮HUGETLB_MORECORE=yes将其mallocredirect到2M页。 在EC2上的Debian Wheezy(我正在使用最新的wheezy AMI )和正常的4k页面(在c3.2xlarge,c3.4xlarge和c3.8xlarge实例上尝试过的一些可伸缩性testing)上运行得也相当不错。 但是我很好奇,看看在EC2上使用大页面是否有类似的好处,如果可能的话。 我激发了一个c3.3xlarge的实例, 像往常一样设置了大量的页面。 之后/ proc / meminfo确实报告 HugePages_Total: 4096 HugePages_Free: 4095 然而在编译libhugetlbfs之后, make func自检会触发一些内核错误。 不久之后,系统似乎locking了,但在我没有时间检查dmesg之前,看到一堆带有各种xen_和hugetlb_fault符号的调用堆栈。 一旦无响应,系统需要从AWS控制台强行停止以使其停止。 我试着重新启动,然后用HUGETLB_MORECORE=yes运行我的应用程序(如果make functesting正在打破我实际上并不需要的东西),但是同样的事情再次发生了。 任何EC2上的libhugetlbfs成功的故事 (最好用Debian)或食谱获得正确的工作 ? 研究 :关于EC2(或Xen)上巨大页面的Googleable信息很less。 我确实发现了这一点 ,这似乎报告了同样的问题:/ proc / meminfo报告巨大页面可用,但试图使用它们内核恐慌。 文章早于新的C3实例,但build议cc2.8xlarge可能值得一试,因为它使用HVM而不是PVM。 更新 :找不到一个最新的Debian AMI for HVM,但在cc2.8xlarge和libhugetlbfs上尝试了一个Ubuntu(13.04“raring”),而HUGETLB_MORECORE=yes似乎在这方面工作得很好。 唯一的是,它实际上减慢了我的应用程序的一点点!
我最近用hyper-v设置了2012服务器核心。 然后,我将服务器核心2008 R2作为客户端安装。 安装IIS并开始托pipe一个内部网站。 我开始运行吞吐量testing,发现Web服务器无法处理预期的stream量。 虚拟机configuration了最大6GB的dynamic内存(比这个简单的页面所需的方式更多)。 经过大量的阅读后,似乎IIS会根据启动时可用的ram数量来计算它的最大连接数。 所以我把hyper-v中的启动内存改为6GB(最大值),现在吞吐量testing是我所期望的。 即使分配的内存只有668 MB。 我的问题是,IIS在启动时是否需要最大内存来进行计算? 如果我做了一个1 GB的启动内存,IIS是否会尝试使用超过它的任何内容? 如果我有五六台Web服务器,并且必须分配最大内存(可能会超过总可用内存),那么每次重启时都会出现问题(一次启动所有机器)? 基本上,我是否需要将最大内存设置为启动内存?
从今天早上我们的一个networking服务器的内存被PHP填满,最终导致服务器开始交换,变慢和变得不可用(一个sshlogin需要5分钟,然后有时完全死亡)… 我想知道你将如何继续解决这类问题。 Jul 23 06:16:31 websrv2 kernel: [10409040.981882] php-cgi invoked oom-killer: gfp_mask=0x200da, order=0, oom_adj=0 Jul 23 06:16:31 websrv2 kernel: [10409040.981888] php-cgi cpuset=/ mems_allowed=0 Jul 23 06:16:31 websrv2 kernel: [10409040.981892] Pid: 27697, comm: php-cgi Not tainted 2.6.32-5-amd64 #1 Jul 23 06:16:31 websrv2 kernel: [10409040.981894] Call Trace: Jul 23 06:16:31 websrv2 kernel: [10409040.981903] [<ffffffff810b6714>] ? oom_kill_process+0x7f/0x23f Jul […]
每当我的Apache服务器崩溃,出现一个错误,说MaxClients已经达到。 在我的研究中,我得到了一个印象,那就是我的内存不足(只要选中,MaxClients设置为1500,尽pipeapache进程的数量在40到100之间) 无论如何,这只是一个背景。 当我跑到top我被告知我总共有大约15GB,使用14GB,而Free现在似乎在500MB到1GB之间徘徊(尽pipe大约一个小时之前大约有3-4GB是免费的) 我也运行ps_mem.py ,而且显示只有3-4 GB被使用! 为什么区别? 哪一个是正确的?
我试图找出什么在吃我的记忆。 我在猜测,如果它不被用户空间进程使用,那么它可能来自内核方面。 有一些命令的输出。 我知道Linux正在使用copy-on-write,所以预期的内存使用量应该是514MB或更less(共享段总共只有7.75 MB)。 free -m报告使用了2804 MB。 我试图用python吃掉它,当它使用超过7324 MB(由free -m报告)时,它确实开始交换。 那么我怎样才能找出使用ram的2804-514 MB? 我没有find任何简单的方法来分解内核模块使用的内存。 基本系统信息:Linux Mint 17,带有BTRFS文件系统的Thinkpad T530。 $ free -m total used free shared buffers cached Mem: 7669 4055 3614 66 0 1250 -/+ buffers/cache: 2804 4864 Swap: 5367 0 5367 $ ipcs -m|tail -n +4|awk '{sum+=$5} END {print sum / 1024/1024}' 7.75 $ […]
我正在开发一个运行定制Linux平台的embedded式系统,看来Xorg进程正在泄漏内存。 据了解,Xorg的虚拟内存会增长,直到系统崩溃。 根据/ proc / $ pid / status,它的VmPeak会不受控制地增长,但它的VmSize将保持很小。 / proc / $ pid / status的内容如下: Name: Xorg State: S (sleeping) Tgid: 610 Pid: 610 PPid: 605 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 32 Groups: 0 VmPeak: 102628 kB VmSize: 18020 kB VmLck: 0 kB VmPin: 0 kB […]
希望你能帮助我解决以下问题。 我们正在CentOS 6.6(Final)系统上运行CrushFTP服务。 但几乎每个星期的服务崩溃。 所以我看看日志,发现这些行 cat /var/log/messages Jun 28 05:06:23 crushftp kernel: Out of memory: Kill process 1491 (java) score 883 or sacrifice child Jun 28 05:06:23 crushftp kernel: Killed process 1491, UID 0, (java) total-vm:9620220kB, anon-rss:3245824kB, file-rss:128kB CrushFTP是java和我们在机器上运行的唯一服务。 日志看起来像系统正在杀死进程。 但我不明白为什么。 所以我search了一下发现这个设置 cat /proc/sys/vm/overcommit_memory 0 当我了解它是正确的,价值一定是好的,如果进程需要更多的内存,它应该能够得到它。 当我做一个“顶”时,java进程是RAM使用率最高的进程。 top – 11:13:58 up 1 day, 4 min, […]