linux – 服务器的内存几乎占用了8GB
最近,我们的服务器面临内存问题.从几周前开始,我们的服务器加载非常慢.访问电子邮件和网站真的需要太长时间.然后我们请求服务器技术支持为我们重启服务器.重启后,事情恢复正常.我们认为现在是我们升级RAM的时候了.最初我们的服务器上只有2GB RAM,因此我们将其升级到8GB.
我们认为问题已经解决了.但是,升级RAM后,内存使用量不断增加.它总是达到其最大使用率(例如,从7.8 GB内存中免费456.5 MB).第二天,服务器完全关闭,我们不得不请求技术支持再次为我们重启服务器.每当我们遇到问题时,我们都要请支持人员为我们重启服务器.据支持人员介绍,如果他们进行了SQL访问,内存将恢复正常.但如果他们再次上场,记忆力将再次升高.因此,他们怀疑问题与SQL查询有关. 我想问一下,问题真的是SQL查询吗?还是硬件问题?如果是SQL,我怎么知道哪些查询占用了如此巨大的内存?我怎么检查呢?我们的服务器正在运行以下详细信息: OS: Linux 2.6.18 CPU: GenuineIntel,Intel(R)Xeon(R)CPU W3550 @ 3.07GHz Average Load: 808.18;674.21;587.18 database records: 421,031 with 58 tables 查询我可以从PHPMyAdmin提供的统计信息: select 314 k 11.98 k 66.37% set option 34 k 1,296.59 7.18% show fields 19 k 712.00 3.94% update 16 k 620.61 3.44% alter table 16 k 610.32 3.38% change db 15 k 569.08 3.15% insert 15 k 560.20 3.10% show variables 11 k 434.01 2.40% show tables 9,752 371.66 2.06% begin 7,172 273.33 1.51% 执行’top’的结果: top - 15:20:07 up 1 day,6:13,1 user,load average: 497.30,512.17,542.15 Tasks: 7743 total,5 running,7738 sleeping,0 stopped,0 zombie Cpu(s): 23.9%us,50.9%sy,0.1%ni,25.0%id,0.0%wa,0.0%hi,0.0%si,0.0%st Mem: 8173372k total,8048380k used,124992k free,1816952k buffers Swap: 2096376k total,216k used,2096160k free,533876k cached 我希望有人可以给我一些建议,因为我已经面对这个问题一段时间了,我没有人可以寻求指导.先感谢您. 更新:dmesg CPU5: Temperature above threshold,cpu clock throttled CPU7: Temperature/speed normal CPU2: Temperature/speed normal CPU6: Temperature/speed normal CPU1: Temperature above threshold,cpu clock throttled CPU3: Temperature/speed normal CPU0: Temperature/speed normal CPU4: Temperature/speed normal CPU6: Temperature/speed normal CPU5: Temperature/speed normal CPU1: Temperature/speed normal CPU2: Temperature/speed normal CPU4: Temperature/speed normal CPU7: Temperature/speed normal CPU0: Temperature/speed normal CPU3: Temperature/speed normal brute[19592]: segfault at 0000000000000028 rip 00000000080a592f rsp 00000000ffae3a28 error 6 brute[19539]: segfault at 0000000000000028 rip 00000000080a592f rsp 00000000ffae3a28 error 6 CPU2: Temperature/speed normal CPU4: Temperature/speed normal CPU7: Temperature/speed normal CPU1: Temperature/speed normal CPU5: Temperature/speed normal CPU3: Temperature/speed normal CPU6: Temperature/speed normal CPU0: Temperature/speed normal CPU0: Temperature/speed normal CPU7: Temperature/speed normal CPU6: Temperature/speed normal CPU1: Temperature/speed normal CPU2: Temperature/speed normal CPU3: Temperature/speed normal CPU5: Temperature/speed normal CPU4: Temperature/speed normal brute[21368]: segfault at 0000000000000000 rip 0000000008048f03 rsp 00000000ffb82db0 error 4 今天的TOP结果: top - 10:42:47 up 3 days,1:35,load average: 4.35,4.53,4.59 Tasks: 187 total,182 sleeping,0 zombie Cpu(s): 12.7%us,38.5%sy,0.0%ni,48.7%id,7800156k used,373216k free,1653768k buffers Swap: 2096376k total,2723732k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 27913 consulti 25 0 31096 3700 1172 R 100.2 0.0 1484:40 perl 27916 consulti 25 0 31096 3732 1204 R 100.2 0.0 1051:59 perl 28213 consulti 25 0 31096 3736 1204 R 100.2 0.0 1073:30 perl 28210 consulti 23 0 31096 3740 1204 S 86.9 0.0 1016:23 perl 3205 mysql 15 0 333m 55m 5416 S 13.6 0.7 143:36.73 mysqld 14616 apache 15 0 333m 33m 6056 S 4.7 0.4 1:02.12 httpd 25104 consulti 18 0 31096 3732 1204 R 4.7 0.0 486:12.74 perl 2702 root 15 0 12744 1148 808 R 0.3 0.0 0:00.01 top 1 root 15 0 10352 696 588 S 0.0 0.0 0:01.62 init 2 root RT -5 0 0 0 S 0.0 0.0 0:00.07 migration/0 3 root 34 19 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0 4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 5 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/1 6 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/1 7 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/1 8 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/2 9 root 34 19 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd/2 10 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/2 11 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/3 12 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/3 13 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/3 14 root RT -5 0 0 0 S 0.0 0.0 0:00.05 migration/4 15 root 34 19 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/4 16 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/4 17 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/5 解决方法
首先,与评论中的其他几个一样,我非常关注矿工和暴力流程.一个小小的谷歌侦探工作表明,这些名称分别与比特币挖掘和
automated network traffic generation(如:DDoS攻击中的一个节点)相关联,表明其他人可能正在将您的服务器用于自己的目的.
解决这个问题(请快速解决),您也可以通过一些数据库调优来改进.鉴于analysis posted by RandomSeed您可能有未使用的RAM,而是在磁盘上等待,并且注意到您在没有任何其他更改的评论的情况下将RAM添加到服务器,我怀疑您的MySQL缓冲池太小. 这归结为数据库服务器性能调优101:磁盘速度慢,内存速度快.数据库喜欢在内存中预加载或缓冲数据和索引,以减少需要外出到较慢的硬盘驱动器. MySQL有一些配置设置可以控制允许像这样缓存多少数据.如果您向服务器添加内存,但不更改这些MySQL设置,那么通过确保其他(非MySQL)进程有足够的RAM来帮助它会有所帮助,但它不会对您的核心数据库性能有很大帮助;你还需要告诉MySQL你添加的新内存. 那么,该怎么做?在MySQL的情况下,它有点棘手,因为MySQL支持多个存储引擎.您可能正在使用InnoDB,但也可能使用MyISAM,甚至可以将两者混合用于不同的表.不幸的是,在不知道哪些表使用什么存储引擎,以及(如果有混合)查询大小和卷的情况下,很难准确地告知如何更改MySQL配置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |