标签: memory

Apache占用太多CPU

我正在尝试管理 Amazon 上的服务器,用于每月接收约 1 亿次综合浏览量的网站网络。不幸的是,我的 5 名开发人员团队中没有人拥有丰富的服务器管理经验。

现在我们将 MaxClients 设置为 1400。目前我们的流量大约是平均水平,我们总共有 1150 个 Apache 进程在运行,每个进程使用大约 2% 的 CPU!在这 1150 个中,有 800 个当前正在休眠,但仍在占用 CPU。我相信有办法优化这个。我有几个想法:

  1. 看来 Apache 正在为每个连接创建一个新进程。这是正常的吗?
  2. 有没有办法更快地终止休眠进程?
  3. 我们应该打开 KeepAlive 吗?每个页面加载大约 15-20 个中等大小的图形和大量的 javascript/css。

所以,这是我们的 Apache 设置。我们确实计划尽快与服务器管理员签约,但在我们找到某人之前,我真的很感激一些建议。

Timeout 25
KeepAlive Off
MaxKeepAliveRequests 200
KeepAliveTimeout 5

<IfModule prefork.c>
StartServers         100
MinSpareServers      20
MaxSpareServers      50
ServerLimit          1400
MaxClients           1400
MaxRequestsPerChild  5000
</IfModule>

<IfModule worker.c>
StartServers         4
MaxClients           400
MinSpareThreads      25
MaxSpareThreads      75
ThreadsPerChild      25
MaxRequestsPerChild  0
</IfModule>
Run Code Online (Sandbox Code Playgroud)

全顶输出:

top - 23:44:36 up 1 …
Run Code Online (Sandbox Code Playgroud)

memory httpd central-processing-unit apache-2.2

3
推荐指数
1
解决办法
1万
查看次数

如何解决 Apache 和 mySQL 的大内存问题

我已经阅读了很多这个网站来优化我的服务器,但没有什么能真正帮助我:( 我认为我有记忆问题,我只有一个网站(Drupal)有 860K 的页面浏览量,但是当流量增加时,负载平均上升超过 +40、+70 等,100% 的内存使用导致服务器完全关闭

实际上,当我刚刚重新启动服务器时,总内存使用量约为 80%

我不知道该怎么办 !我真的不敢相信这个服务器不能处理这种流量,请帮帮我!

眼镜

Processor #1 to #24 
Intel Dual Xeon E5645 @ 2.40GHz
Cache 12288 KB
4GB Total RAM
Apache/2.2.19 -prefork- (Unix) mod_ssl/2.2.19 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4  PHP/5.2.17
500GB HD RAID 1
Drupal based website with Boost module and Cache Router (INNODB tables)
APC Installed
Run Code Online (Sandbox Code Playgroud)

顶部(移位 - m)

top - 23:05:37 up 19:42,  1 user,  load average: 0.78, 0.74, 0.64
Tasks: 527 total,   1 running, 524 sleeping,   0 stopped,   2 zombie
Cpu(s): …
Run Code Online (Sandbox Code Playgroud)

mysql optimization memory drupal apache-2.2

3
推荐指数
1
解决办法
6358
查看次数

IBM 服务器 RAM 与其他服务器 RAM

我们希望升级其中一台 IBM System X 服务器中的 RAM。我收到了来自 IBM 的 2x 4GB RAM 芯片报价 560 美元。我查看了来自 Kingston 和 Crucial 的完全相同类型的 RAM(ECC PC2-5600 服务器 RAM),对于相同数量的 RAM,两者的价格都在 200 美元左右。

  • IBM RAM 是否具有某种性质上的不同,从而证明成本增加 125% 是合理的?
  • 选择 IBM RAM 而不是非 IBM 品牌 RAM 的原因是什么?
  • 如果我购买了非 IBM 品牌的 ram 并将其用于我的服务器,可能的影响是什么?

ibm memory

3
推荐指数
1
解决办法
854
查看次数

我应该如何处理我所有的空闲内存?

我有一个奇怪的问题。我主持了一个小型网上商店,这没什么大不了的,也许每天有 20 个访客,每周有几个订单。我可能会扩大一点,但我怀疑它会变得非常大。

无论如何,我的问题是我遇到了一个大约 6gb 内存和 6 核的 VPS,非常便宜。现在我拥有这个 VPS,其功能比我真正需要的要强大得多。

所以现在我的问题。我在它上面运行 CentOS、nginx、php-fpm 和 mysql,它运行得很好,但由于我并不真正需要处理所有的 ram,我怎样才能让我的 VPS 消耗更多的 ram 以使其更快?你能给我一些广泛的建议吗?谢谢!

linux performance memory centos

3
推荐指数
1
解决办法
547
查看次数

故障安全 RAM 驱动器解决方案

我正在寻找一种生产解决方案来创建一个可以与 HDD 安全同步的 RAM 驱动器。

我有一个 I/O 负载很重的自定义软件(这是某种专有的面向文档的数据库),我需要显着加快它的速度。我无法修改或摆脱软件本身,因此必须进行水平或垂直缩放。该软件不支持盒子的水平侦察,所以我先看看垂直缩放。

主要想法很简单 - 我们购买大量 RAM (96GB) 并将整个内容放入 RAM 驱动器。但它需要是故障安全的,在服务器重启时丢失任何数据不是一种选择。所以我正在寻找能够在 RAM 驱动器和 HDD 之间保持透明同步的解决方案。

像通过 bash 脚本复制文件这样的肮脏解决方案不是一种选择,需要更可靠的方法。

理论上,正如我所见,这里描述的某种分布式 FS可以以一种奇怪的方式使用 - 在同一台机器上同步两个分区。但我怀疑这是否会在实践中起作用,并且从未尝试过。

那么,对于具有透明同步到 HDD 的 RAM 驱动器的现成解决方案有什么想法吗?


数据更新:

  1. 我需要在 RAM 中保存的估计数据量约为 50GB。
  2. 服务器是专用的 HP DL320、8 个 CPU、16GB RAM(最高 96GB)。
  3. I/O 配置文件类似于数据库应用程序 - 大量随机访问读取,较少写入。

filesystems memory replication ramdisk distributed-filesystems

3
推荐指数
1
解决办法
1291
查看次数

Sar:空闲内存统计信息(包括缓冲区、缓存)

这些free命令以两种形式提供可用内存量:完全可用内存(Mem行)和用于缓存和缓冲区的一次性内存(-/+ buffers/cache行):

-bash-3.2$ free -m
             total       used       free     shared    buffers     cached
Mem:         16057      15173        884          0         17       2520
-/+ buffers/cache:      12635       3422
Swap:        12287       4937       7350
Run Code Online (Sandbox Code Playgroud)

在此示例中,不包括缓冲区和缓存的可用内存为 884 MB,包括缓冲区和缓存的可用内存为 3422 MB。

如何在 中获得第二个测量值(可用内存,包括缓冲区和缓存)sar

memory memory-usage sar

3
推荐指数
1
解决办法
7810
查看次数

高内存 64 位服务器,不使用所有 ram

我有台运行 centos 64bit 的高内存 linux 服务器,在正常运行 10-20 天后,我注意到在所有这些服务器上,它们实际上并没有使用到那时可用的所有内存(它们在 48gb 系统上都有大约 10gb 的空闲空间,并且在 64gb 系统上免费 20gb。

它们是网络服务器,并且在服务器中有超过 ram 数量的工作数据集(例如活动文件),所以我假设页面缓存会增长到使用所有 ram 的程度,然后页面缓存中的页面会在需要时/如果需要被释放。

例如 :

top - 09:44:46 up 57 days,  9:32,  5 users,  load average: 6.44, 6.33, 6.27
Tasks: 680 total,   4 running, 676 sleeping,   0 stopped,   0 zombie
Cpu(s): 17.3%us,  3.3%sy,  0.0%ni, 79.0%id,  0.1%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:  49313212k total, 39277524k used, 10035688k free,  1247064k buffers
Swap: 20643832k total,        0k used, 20643832k free, 20592968k cached
Run Code Online (Sandbox Code Playgroud)

显示该服务器已经运行了 57 天,但是有 10GB …

linux memory centos virtual-memory

3
推荐指数
1
解决办法
1455
查看次数

服务器内存占用近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
Run Code Online (Sandbox Code Playgroud)

我可以从 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 …
Run Code Online (Sandbox Code Playgroud)

mysql linux memory

3
推荐指数
1
解决办法
220
查看次数

为什么此服务器报告内存使用率高

似乎考虑到列出的进程的内存百分比,我的服务器不应达到 98% 的内存使用率。为什么累积内存使用率这么高?

top - 14:34:50 up 14 days, 22:54,  3 users,  load average: 0.00, 0.01, 0.05
Tasks: 139 total,   1 running, 138 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:  32949428 total, 32566440 used,   382988 free,   604072 buffers
KiB Swap:        0 total,        0 used,        0 free. 31047712 cached Mem
-----------------------------------------------------------------------------------
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                                              
 5897 …
Run Code Online (Sandbox Code Playgroud)

memory top

3
推荐指数
2
解决办法
572
查看次数

尽管有足够的可用内存,但 Linux OOM 杀手仍在发挥作用

大约每周一次,OOM-killer 会在我的服务器中关闭一个 postgres 进程,尽管“免费”状态它有足够的可用内存。

我在这里和那里阅读了几个线程,但看不到任何真正的解释。难道真的是因为服务器现在已经掉呢?它是(Ubuntu)内核错误吗?

并且先发制人,是的,也许我会添加交换。但是就没有其他的解决办法了吗?或者至少解释一下?:)

服务器:物理戴尔
内存:64GB RAM 和 0 Swap
uname:Linux 服务器名称 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Postgres 版本:9.5.10(8GB 共享内存)
vm.overcommit_memory = 0

free -m在最后一次杀戮之前的输出

              可用的免费共享 buff/缓存总数
电话:64312 2666 450 8699 61196 52126
交换:0 0 0

上次杀死的内核日志

6 月 19 日 21:29:49 服务器名称内核:[17009377.877956] bash 调用 oom-killer:gfp_mask=0x26000c0,order=2,oom_score_adj=0
6 月 19 日 21:29:49 服务器名称内核:[17009377.877959] bash cpuset=/ mems_allowed=0-1
6 月 19 日 21:29:49 服务器名称内核:[17009377.877964] CPU:23 PID:61771 通讯:bash 未受污染 4.4.0-62-generic #83-Ubuntu …

postgresql linux memory virtual-memory oom

3
推荐指数
1
解决办法
2073
查看次数