MySQL的调谐器报告说,MySQL可以使用安装的RAM的166%,我如何限制RAM的使用? [!!]最大可能的内存使用量:426.8M(已安装RAM的166%)
我用一些服务来维护一个Gentoo服务器,包括Apache。 这是相当低端的(2GB内存和2核心的低端CPU)。 我的问题是,尽pipe我尽了最大的努力,一个过载的Apache崩溃了整个服务器。 事实上,在这一点上,我已经确信Linux是一个可怕的操作系统,不值得任何人在负载下寻求稳定性。 我试过的东西: 为根进程调整oom_adj(以及它的所有subprocess)。 这几乎没有影响。 当Apache超负荷的时候,系统就会崩溃,因为系统在杀死任何东西之前都会调出所有的东西。 关掉交换。 没有帮助,它会卸载内存分页进程和其他文件的二进制文件/,从而导致相同的效果。 把它放在一个内存限制的cgroup(限于512MB的RAM,占总数的1/4)。 这个“工作”,至less在我自己的压力testing中 – 除了服务器在负载下一直崩溃(基本上拖延所有其他进程,通过SSH等无法访问) 以闲置的I / O优先级运行。 最后这不是一个好主意,因为它只是导致系统负载无限上升(成千上万),几乎没有可见的效果 – 直到您尝试访问磁盘的未缓冲部分。 这导致任务冻结。 (对于很好的I / O调度,呃?) 限制并发连接到Apache的数量。 由于大多数插槽被长时间请求(文件下载)占用,将该数字设置得太低会导致网站无响应。 我尝试了各种各样的Apache MPMs(prefork,event,itk)。 从prefork / event + php-cgi + suphp切换到itk + mod_php。 这改善了性能,但并没有解决实际问题。 切换I / O调度程序(cfq截止date)。 只是强调一下:我不在乎Apache本身是否在负载下,我只是希望我的系统的其余部分保持稳定。 当然,在短时间的密集负荷之后,阿帕奇能够很快恢复,这是一件非常棒的事情。 现在我大部分都不知道,在这个时代,人类怎么能devise一个操作系统,在这个看起来很简单的任务中(不允许一个系统组件崩溃整个系统)似乎几乎是不可能的 – 或者至less是非常的很难做到。 请不要build议像虚拟机或“购买更多内存”的东西。 在朋友的帮助下收集的更多信息:当cgroup oom杀手被调用时,进程挂起。 这是呼叫跟踪: [<ffffffff8104b94b>]? prepare_to_wait + 0x70 / […]
我有一个〜45GB的数据库,迅速增加(每周〜1GB)。 所以它做了很多插入; networking应用没有太多的用户,所以现在的阅读率很低。 但是我注意到,服务器在一周之后首次开始使用〜7GB的内存时,RAM sql server用户从〜1GB开始下降。 是否有某种内存泄漏? 有一篇关于MSDN的文章,build议SQL服务器增加用于caching的内存,并且会一直增加。 然而,服务器只有7.5GB或RAM,所以我担心它会用尽内存,除非我每周重新启动SQL Server …这似乎是错误的。 这是典型的行为吗? 是否有一些设置可以设置内存使用上限?
服务器级RAM与桌面级RAM之间有什么区别?
我读过 linux使用可用内存进行caching,使系统更快。 但是,Nagios和Paessler PRTG监视系统都显示我的内存使用情况非常严重。 我可以改变Nagios的mem_usage脚本,以免费和caching内存,但这将是正确的信息? 我怀疑他们误解了Linux的内存使用情况。 可以说我有8 GB的RAM。 5 GB被使用,2 GB被caching,并且我有1 GB可用内存。 真正的可用内存应该是免费+caching(3 GB)? 如果某些新应用程序需要额外的3 GB RAM,是否可以在不使用交换的情况下从caching和空闲中获取所有内容,还是应该在caching中存在最小值? 真实的例子: $ cat /proc/meminfo MemTotal: 5984256 kB MemFree: 137052 kB Buffers: 140484 kB Cached: 3439616 kB SwapCached: 244 kB Active: 3148824 kB Inactive: 2341768 kB … 我的监视工具显示,我有137 MB可用RAM,但是我有3.5 GB的caching。 谢谢!
我经常使用ImageMagick的convert来进行* – > PNG转换,但是当PDF有超过50页的时候 – convert吃更多3吉姆(!!!)的内存。 我想它首先加载一切。 这是不可接受的。 它应该逐页阅读PDF,为什么一下子把它们全部搞定! 也许有办法调整它不知何故? 或者有什么好的select?
我一直想知道这一点,从来没有完全理解32位机器如何寻址超过4 GB的RAM 。 我的意思是,没有更多的地址线了,对吗? 即使在我们的设施中,我们也知道,我们有戴尔数据库服务器,可以使用8 GB的内存和32位版本的SQL Server 。 是否使用旋转存储器的窗口来实现类似于20地址线8086的EMS存储器?
在完美的世界中,我可以得到我想要的一切,但是新笔记本电脑的预算很低,所以我通常可以为用户提供笔记本电脑+额外的RAM(至less4Gb)。 这一直主要是由于Vista的RAM吃饭能力 – 然而我一直认为,join更快的驱动器(即不是标准的5400rpm驱动器)将会有更大的好处。 对于运行Vista / Office和Win7或XP / Office的笔记本电脑(因为它们不像RAM硬盘),你会把更多的内存或更快的磁盘放在哪里?
在有32个RAM的盒子上运行MySQL。 交换99%已满,并有大约200 MB的RAM空闲。 MySQL是当然的罪魁祸首。 当内存和交换完全填满时会发生什么? 谢谢!
最近,我有我们的服务器pipe理员告诉我,我们订购了140GB内存的新服务器具有“太多”内存,并且服务器开始遭受超过80GB的损失,因为这是“最佳数量”。 他抽烟了,还是真的有更多的内存比一定水平的性能问题? 我可以看到这个观点 – 更多的是操作系统来pipe理等等,但是这是合理的,还是额外的呼吸空间会超过pipe理层? 我不是问“我会全部使用它”(这是一个有数十个实例的SQL Server集群,所以我怀疑我会这么做,但这与我的问题无关),但是是否太多会导致问题。 我总是认为越多越好,但也许有一个限制。