我目前正在服务器上进行性能分析,我发现一个应用程序正在产生大量的页面错误/秒。 检查页面读取/秒后,似乎这些都是软页面错误而不是硬页面错误(没有磁盘活动)。 然后我在网上阅读,大多数现代的cpus可以处理大量的软页面错误,但我从哪里都找不到大数量的应用程序……这个应用程序每秒跳跃3000到7000多页错误。 那么,对于这个数量的每秒软页面错误,我是否需要担心? 这个级别的故障有一个明显的性能打击吗? 我可以做任何事情来优化它吗? 提前致谢
我正在32位Ubuntu 10 PAE内核机器上运行Java数据导入过程。 在运行了一段时间之后,这个杀手锏就是我的Java进程。 经过一些谷歌search和挖掘文档,看起来系统正在耗尽LowMem。 我第三次开始了这个过程,并且正在看我free -lm向我展示Low: 464 386 77 ,自由价值(77MB)缓慢下降。 为什么我耗尽了lowmem,我该如何增加呢? 一些细节: $ cat / proc / sys / vm / lowmem_reserve_ratio 256 256 32 $ free -lm caching总共使用的空闲共享缓冲区 Mem:32086 24611 7475 0 0 24012 低:464 407 57 高:31621 24204 7417 – / + buffers / cache:598 31487 交换:2047 0 2047
在这里我有一个12GB内存的专用服务器,运行Debian Lenny x64。 dmesg | grep Memory [ 0.004000] Memory: 11917152k/12259740k available (2279k kernel code, 333820k reserved, 1022k data, 216k init) 有些日子以来,我有另外一台专用服务器(几乎相同的硬件),但是Debian Squeeze x64(通过debootstrap,Kernel 2.6.32-5-xen-amd64安装) dmesg | grep Memory [ 1.551510] Memory: 6864620k/8151916k available (3146k kernel code, 1057736k absent, 229560k reserved, 1901k data, 600k init) 缺席记忆是什么意思? 我怎样才能得到1GB的内存?
我处于一个网站将有大量的networking用户和一些后端网站pipe理员的情况。 网站pipe理员将上传图片(+其他高存储任务),这使得httpdsubprocess的内存分配增加到100-150mb。 为了停止交换,我正在将httpd.conf中的MaxClients设置为20.但是这会降低最大的同时请求。 当网站上线时这会成为问题吗? 什么是最好的configuration? 信息:Drupal 6,PHP 5,Apache 2.2(Prefork atm) 我正在考虑Worker MPM,两个apache实例或者MaxRequestsPerChild。
我有一个便宜的VPS 128Mb RAM和256Mb突发。 MySQL启动并保留大约110Mb,但使用不超过20Mb。 我的VPS控制面板显示,我使用127Mb(我也运行nginx和sphinx),我知道,它显示保留的内存,但是当我达到128Mb,我的VPS每4小时自动重新启动。 所以我想强制MySQL预留更less的RAM。 我怎样才能做到这一点? 我做了一些与my.conf的调整,但没有太多的帮助。 顶级输出: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 15 0 2156 668 572 S 0.0 0.3 0:00.03 init 11311 root 15 0 11212 356 228 S 0.0 0.1 0:00.00 vzctl 11312 root 18 0 3712 1484 1248 S 0.0 0.6 […]
如果我运行该命令 time perl -e 'use threads; $T=12 ; foreach (1..$T) { $thr[$i++] = threads->create(sub { printf "I am thread %s\n", threads->tid(); foreach (1..9e6) { push(@a, sqrt(1234)/sin(1234)*cos(1234)) } ; printf "thread %s finished.\n", threads->tid(); }); } foreach (0..$T-1) { $thr[$_]->join(); }' 我看2.6.37比2.6.34 慢了80% 。 该命令刚刚开始计算sqrt(1234)/ sin(1234)* cos(1234)9.000.000次的12个线程,并等待所有线程完成。 我使用双核Xeon X5650 @ 2.67GHz(带HT的6个内核)以及24 GB内存,openSUSE 11.3,kernel 2.6.34.7-0.5-default和kernel-default-2.6.37-6.1从http:// download .opensuse.org […]
我有一个大的PHP脚本,需要一个或更多的技嘉运行。 我将php.ini中的memory_limit设置为2048M。 如果我用ini_get回应这个限制,那么按预期得到2048M。 但是,当我运行脚本失败,并说,它只能分配512MB。 我在服务器上有16GB的内存,所以不是。 必须在另一个地方设置另一个限制..?
我有Windows Server 2008 SP2 EE x86与6GB的内存。 在IIS7上有10个应用程序池。 多less内存可以分别使用所有10个应用程序池和每个应用程序池? 什么是我的应用程序会抛出OutOfMemoryExceptions的限制? 监视IIS7应用程序池的性能和可用服务器资源的最佳方法是什么? 我试图使用默认的性能监视器和性能计数器的进程(私人字节,虚拟内存,工作集)是索引的身份,但我不能将这些计数器实时链接到当前的应用程序池。
在我们的生产环境中,我正在经历tomcat的定期无响应。 我不能在testing环境中重现这一点,并且在事件发生之前或事件发生期间没有任何内容出现在日志中。 Tomcat继续运行,但停止服务请求。 我读过这个线程,并在JAVA_OPTS中放置了垃圾收集输出选项,但是我还没有重新启动tomcat来使它们生效。 我的情况不同在于,tomcat / jvm显然不会恢复或“醒来”。 我已经确认,我们的应用在多个场合中至less有15分钟没有响应。 解决scheme总是重新启动tomcat(使用daemontools)。 频率变化,有时在高峰负荷,有时在半夜(非常轻的负荷)。 我已经允许jvm(-Xms2g -Xmx4g)的内存高达4g。 服务器有16克内存,正在运行64位jvm。 Sun关于Java调优的白皮书声称:“承诺过多的系统物理内存很可能导致虚拟内存分页到磁盘,很可能在垃圾收集操作期间,导致显着的性能问题。 我是否将堆大小设置得太大? 将最小尺寸设置为与最大尺寸相同,我会受益吗? 我不相信系统正在将内存交换到磁盘。 free -m的输出不显示交换使用情况,我在系统上将swappiness设置为0。 当今天凌晨2:30发生无反应时,我在重新启动tomcat之前运行了一个快速的jstat和ps: 除了一些例外情况,jstat显示了类似的值:YGC是431比44现在,YGCT 10/1,FGC 59/7,FGCT 39/2,GCT 49/3 ps的输出显示了1422832个常驻和5723580个虚拟内存使用情况。 这与昨天正常运营期间的1390036和5642668相比。 我不是这方面的专家,所以任何帮助,将不胜感激。 更新:好的,我已经添加到JAVA_OPTS以下将暂时重新启动tomcat: -XX:+ UseConcMarkSweepGC -Xms2g -Xmx2g -verbose:gc -XX:+ PrintGCTimeStamps -XX:+ PrintGCDetails 变化是:1)swich gcalgorithm。 2)降低最大堆大小,因为它似乎我不需要4克,显然过度使用可以导致周期性的大规模gc。 3)打开vebose gc日志logging。 谢谢大家。
我的web服务器在同一台机器上运行apache 1.3.x的PHP应用程序和mysql。 大多数情况下,它运行良好,CPU使用率仍然有很好的余地,但不知何故内存使用在整个正常运行时间内不断增长。 虽然它看起来像是时不时,我有片刻我的服务器因为内存不足而closures。 重启apache或者mysql只会减less100M的memusage。 附件是每月内存使用情况的概述。 在内存不足的情况下,这两次大规模的丢包是服务器重启。 http://imageshack.us/photo/my-images/51/memorymonth.png/ 对他的行为有任何解释,或者我可以如何解决? 谢谢! 史蒂芬