我有一台双核服务器,内存为 2 GB,有 2 个网站,流量不大,内存占用为 47%,我有一个简单的 html 网页和一个 wordpress,上面只有一些信息,没有流量
我做了测试,确保服务器正常运行,发现内存占用超过 47%,我的服务器处于 OVH 状态
实际上我做了一些测试并展示了 apache 的这个过程,直到我重新启动 apache 或者 mysql,内存消耗才会下降,之后再重新启动
9218 root 20 0 15068 1236 884 R 0.3 0.1 0:00.18 top
22325 apache 20 0 521m 94m 37m S 0.3 4.8 10:49.06 httpd
22329 apache 20 0 520m 93m 37m S 0.3 4.7 10:39.32 httpd
1 root 20 0 19272 328 148 S 0.0 0.0 0:04.01 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.04 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 1:56.34 ksoftirqd/0
6 root RT 0 0 0 0 S 0.0 0.0 331379:17 migration/0
7 root RT 0 0 0 0 S 0.0 0.0 333622:09 migration/1
9 root 20 0 0 0 0 S 0.0 0.0 6:04.62 ksoftirqd/1
11 root RT 0 0 0 0 S 0.0 0.0 333716:04 migration/2
13 root 20 0 0 0 0 S 0.0 0.0 1:48.47 ksoftirqd/2
14 root RT 0 0 0 0 S 0.0 0.0 333992:48 migration/3
16 root 20 0 0 0 0 S 0.0 0.0 2:34.33 ksoftirqd/3
17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset
18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
409 root 20 0 0 0 0 S 0.0 0.0 0:42.24 sync_supers
411 root 20 0 0 0 0 S 0.0 0.0 0:01.94 bdi-default
412 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd
414 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
533 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff
543 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khubd
550 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md
652 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 rpciod
653 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kvm-irqfd-clean
700 root 20 0 0 0 0 S 0.0 0.0 17:09.10 kswapd0
701 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd
702 root 20 0 0 0 0 S 0.0 0.0 0:00.00 fsnotify_mark
706 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 nfsiod
711 root 20 0 0 0 0 S 0.0 0.0 0:00.00 jfsIO
22259 apache 20 0 533m 106m 37m S 67.4 5.4 11:23.94 httpd
22329 apache 20 0 519m 92m 37m S 48.1 4.7 10:51.54 httpd
22325 apache 20 0 521m 94m 37m R 38.5 4.8 10:59.66 httpd
19357 mysql 20 0 1635m 42m 3628 S 2.3 2.2 752:19.11 mysqld
22284 apache 20 0 537m 110m 37m S 0.7 5.6 11:41.85 httpd
32199 root 20 0 456m 6584 1088 S 0.7 0.3 333:46.41 ajenti-panel
9218 root 20 0 15068 1236 884 R 0.3 0.1 0:01.80 top
22281 apache 20 0 528m 101m 37m S 0.3 5.1 12:23.11 httpd
22343 apache 20 0 522m 95m 37m S 0.3 4.8 11:40.06 httpd
28857 root 20 0 19296 356 232 S 0.3 0.0 0:14.25 dovecot
1 root 20 0 19272 328 148 S 0.0 0.0 0:04.01 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.04 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 1:56.34 ksoftirqd/0
6 root RT 0 0 0 0 S 0.0 0.0 331379:17 migration/0
7 root RT 0 0 0 0 S 0.0 0.0 333622:09 migration/1
9 root 20 0 0 0 0 S 0.0 0.0 6:04.62 ksoftirqd/1
11 root RT 0 0 0 0 S 0.0 0.0 333716:04 migration/2
13 root 20 0 0 0 0 S 0.0 0.0 1:48.49 ksoftirqd/2
14 root RT 0 0 0 0 S 0.0 0.0 333992:48 migration/3
16 root 20 0 0 0 0 S 0.0 0.0 2:34.35 ksoftirqd/3
17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset
18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
409 root 20 0 0 0 0 S 0.0 0.0 0:42.24 sync_supers
411 root 20 0 0 0 0 S 0.0 0.0 0:01.94 bdi-default
412 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd
414 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
533 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff
543 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khubd
550 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md
我不知道为什么使用 top 查看进程时会看到,为什么在没有运行网站的情况下会看到很多 apache 进程,例如,我需要帮助来解决这个问题,也在 OVH 的其他服务器中评论过,我有用于 testes 的服务器,但没有网站,并且总是显示 20% 的 RAM 使用率,我不知道为什么会发生这种情况
另外在 apache 的配置中评论这一点我有这个:
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule worker.c>
StartServers 4
MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
使用 free -m
total used free shared buffers cached
Mem: 1980 1929 51 0 94 790
-/+ buffers/cache: 1043 936
Swap: 510 100 410
谢谢您的帮助,谢谢
答案1
在 LWP(线程)服务器上运行 PHP?真勇敢。
MaxRequestsPerChild = 0?这......呃......太勇敢了吧?
我个人对您的系统的性能和稳定性的分析非常感兴趣。
您是否阅读过您发布的指标?虽然查看单个进程的内存使用情况会对其实际消耗的内存产生非常误导性的看法(即使对于作为单个进程运行的程序也是如此 - 分叉/LWP 进程的偏差更大),但从您在此处提供的内容可以清楚地看出,MySQL 正在使用大部分内存。
如果站点高度面向数据并且数据位于 inodb 后端,那么就应该如此。
即使它占用了太多内存,我也不认为这会对性能产生巨大影响 - 因此减少缓冲池的大小可能会使您当前测量的统计数据看起来更健康 - 但它不太可能对系统的性能产生很大影响。
看起来 Apache 安装的调整空间也很大。