我对我的网络服务器有一些疑问。它是一台运行 centos 5.5 和 php5、mysql5 的 LAMP 网络服务器。在高峰时段,服务器会同时有数百(甚至数千)个用户。
我正在尝试进行一些优化并了解“top”。据我所知:
我的所有 16GB 内存都用完了吗?
这是否意味着我的服务器需要更多内存?
我的交换空间只有 2GB,应该增加吗?
通常在高峰时段,我的服务器负载平均值约为 2.5-3。我可以做些什么来优化服务器,以便即使在高峰期间负载平均值也不会超过 1?过去我被告知,运行良好的服务器负载应保持在 1 以下,这仍然是真的吗?尽管即使在负载为 2.5-3 时,服务器页面和应用程序的加载速度似乎也相当快。
php.ini 中的内存大小应该设置为什么?
顶部 - 14:30:18 启动 2 天,12:41,5 个用户,平均负载:1.25、1.74、2.92 任务:总计 305 个,其中 2 个正在运行,302 个正在休眠,0 个已停止,1 个僵尸 CPU:6.3%us,0.9%sy,0.0%ni,92.5%id,0.2%wa,0.0%hi,0.1%si,0.0%st 内存:总计 16427200k,已用 16111472k,可用 315728k,缓冲区 3120316k 交换:总计 2104496k,已使用 268k,可用 2104228k,缓存 6216756k PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令 29080 apache 15 0 358m 36m 5192 S 20.2 0.2 2:08.40 httpd 29093 阿帕奇 18 0 357米 36米 5192 S 18.2 0.2 2:02.52 httpd 29079 阿帕奇 15 0 370米 49米 5832 S 10.0 0.3 2:32.14 httpd 1812 阿帕奇 15 0 370米 49米 5196 S 7.3 0.3 2:25.30 httpd 5204 阿帕奇 15 0 358米 36米 5168 S 5.3 0.2 0:59.28 httpd 29075 阿帕奇 15 0 370米 48米 5184 S 3.3 0.3 2:15.93 httpd 9712 阿帕奇 15 0 360米 38米 5180 S 3.0 0.2 0:54.81 httpd 29072 阿帕奇 16 0 358米 36米 5192 S 2.7 0.2 2:24.43 httpd 6310 阿帕奇 17 0 388米 67米 5180 S 2.3 0.4 0:58.85 httpd 8674 阿帕奇 15 0 343米 21米 4980 S 2.0 0.1 0:07.91 httpd 29085 阿帕奇 15 0 371米 49米 5224 S 2.0 0.3 2:16.86 httpd 29083 阿帕奇 15 0 370米 48米 5196 S 1.7 0.3 2:10.64 httpd 5575 阿帕奇 15 0 357米 36米 5228 S 1.3 0.2 0:53.78 httpd 29066 阿帕奇 15 0 379米 59米 5860 R 1.3 0.4 2:11.93 httpd 29078 阿帕奇 15 0 370米 48米 5188 S 1.3 0.3 2:14.52 httpd 29084 阿帕奇 15 0 370米 48米 5208 S 1.0 0.3 2:02.49 httpd 29089 阿帕奇 15 0 370米 48米 5188 S 1.0 0.3 2:27.61 httpd 29082 阿帕奇 15 0 390米 68米 5188 S 0.7 0.4 2:32.48 httpd 29984 阿帕奇 15 0 358米 36米 5228 S 0.7 0.2 2:08.32 httpd 3571 根 16 0 13400 1792 848 S 0.3 0.0 2:37.89 顶部 4419 mysql 15 0 668m 175m 7204 S 0.3 1.1 3:32.25 mysqld 28181 根 15 0 90460 3624 2680 S 0.3 0.0 0:17.60 sshd 29091 apache 15 0 390m 69m 5196 S 0.3 0.4 2:29.99 httpd 32476 根 15 0 12900 1320 848 R 0.3 0.0 0:06.46 顶部 1 根 15 0 10372 680 572 S 0.0 0.0 0:02.01 初始化 2 根 RT -5 0 0 0 S 0.0 0.0 0:00.51 迁移/0 3 根 34 19 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0 4 根 RT -5 0 0 0 S 0.0 0.0 0:00.00 看门狗/0 5 根 RT -5 0 0 0 S 0.0 0.0 0:00.12 迁移/1 6 根 34 19 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/1 7 根 RT -5 0 0 0 S 0.0 0.0 0:00.00 看门狗/1 8 根 RT -5 0 0 0 S 0.0 0.0 0:00.06 迁移/2 9 根 34 19 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/2 10 根 RT -5 0 0 0 S 0.0 0.0 0:00.00 看门狗/2 11 根 RT -5 0 0 0 S 0.0 0.0 0:00.06 迁移/3 12 root 34 19 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/3 13 root RT -5 0 0 0 S 0.0 0.0 0:00.00 看门狗/3 14 根 RT -5 0 0 0 S 0.0 0.0 0:01.45 迁移/4 15 根 34 19 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/4 16 根 RT -5 0 0 0 S 0.0 0.0 0:00.00 看门狗/4 17 根 RT -5 0 0 0 S 0.0 0.0 0:00.22 迁移/5 18 根 34 19 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/5 19 根 RT -5 0 0 0 S 0.0 0.0 0:00.00 看门狗/5 20 根 RT -5 0 0 0 S 0.0 0.0 0:00.15 迁移/6 21 根 34 19 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd/6 22 根 RT -5 0 0 0 S 0.0 0.0 0:00.00 看门狗/6 23 根 RT -5 0 0 0 S 0.0 0.0 0:00.15 迁移/7 24 根 34 19 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/7 25 根 RT -5 0 0 0 S 0.0 0.0 0:00.00 看门狗/7 26 根 RT -5 0 0 0 S 0.0 0.0 0:00.19 迁移/8 27 根 34 19 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/8 28 根 RT -5 0 0 0 S 0.0 0.0 0:00.00 看门狗/8 29 根 RT -5 0 0 0 S 0.0 0.0 0:00.34 迁移/9 30 根 34 19 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/9 31 根 RT -5 0 0 0 S 0.0 0.0 0:00.00 看门狗/9 32 根 RT -5 0 0 0 S 0.0 0.0 0:00.16 迁移/10 33 根 34 19 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/10 34 根 RT -5 0 0 0 S 0.0 0.0 0:00.00 看门狗/10 35 根 RT -5 0 0 0 S 0.0 0.0 0:00.12 迁移/11 36 根 34 19 0 0 0 S 0.0 0.0 0:00.05 ksoftirqd/11 37 根 RT -5 0 0 0 S 0.0 0.0 0:00.00 看门狗/11 38 根 RT -5 0 0 0 S 0.0 0.0 0:00.35 迁移/12
这里还有另一个热门帖子,但现在还不是流量高峰期。httpd 使用 100% CPU 不是一个问题吗?
top - 16:35:57 up 2 days, 14:47, 4 users, load average: 4.34, 3.60, 3.09
Tasks: 321 total, 3 running, 317 sleeping, 0 stopped, 1 zombie
Cpu(s): 15.0%us, 1.1%sy, 0.0%ni, 65.7%id, 18.1%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 16427200k total, 16235036k used, 192164k free, 3129048k buffers
Swap: 2104496k total, 268k used, 2104228k free, 6184496k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
540 apache 25 0 385m 63m 4720 R 100.1 0.4 0:22.11 httpd
16194 apache 18 0 358m 36m 5188 S 29.6 0.2 2:42.62 httpd
1759 apache 15 0 391m 69m 5188 S 20.6 0.4 3:32.70 httpd
1761 apache 17 0 388m 67m 5844 S 20.0 0.4 3:32.70 httpd
5420 apache 16 0 357m 36m 5816 S 18.0 0.2 3:29.58 httpd
1758 apache 16 0 358m 37m 5188 S 15.3 0.2 3:11.11 httpd
26922 apache 16 0 366m 45m 4148 R 12.6 0.3 0:29.59 httpd
13655 apache 15 0 371m 49m 5840 S 6.3 0.3 5:22.93 httpd
26894 apache 15 0 358m 36m 5124 S 6.0 0.2 1:00.43 httpd
26925 apache 15 0 358m 36m 5156 S 2.0 0.2 0:29.61 httpd
13654 apache 15 0 358m 36m 5200 S 1.3 0.2 5:06.32 httpd
23337 apache 15 0 359m 37m 5184 S 1.3 0.2 3:02.68 httpd
24108 apache 16 0 357m 35m 5180 S 1.3 0.2 0:48.09 httpd
28473 apache 15 0 357m 35m 5128 S 1.3 0.2 0:25.66 httpd
584 apache 15 0 357m 35m 5068 S 1.0 0.2 0:12.12 httpd
2687 apache 15 0 370m 48m 5168 S 1.0 0.3 3:26.85 httpd
26893 apache 15 0 357m 35m 5144 S 1.0 0.2 0:33.74 httpd
26923 apache 15 0 357m 35m 5072 S 1.0 0.2 0:33.96 httpd
26924 apache 15 0 360m 38m 5156 S 1.0 0.2 0:58.06 httpd
585 apache 15 0 357m 35m 5096 S 0.7 0.2 0:11.08 httpd
17329 apache 15 0 369m 48m 5176 S 0.7 0.3 1:15.52 httpd
1760 apache 15 0 389m 68m 5856 D 0.3 0.4 3:36.45 httpd
4419 mysql 15 0 668m 175m 7204 S 0.3 1.1 4:04.57 mysqld
1 root 15 0 10372 680 572 S 0.0 0.0 0:02.04 init
答案1
Mem: 16427200k total, <--- You have 15.6GB total RAM.
16111472k used, <--- Of which, Linux is using 15.4GB of it for various things.
315728k free, <--- The remainder .3GB, is officially unused by anything.
3120316k buffers <--- 3GB is used in Buffers of various kinds.
6216756k cached <--- 5.9GB is used in the block and file caches.
你应该惊慌吗?不。缓冲区和缓存中的内存可由应用程序按需使用。就你的情况而言,你在此状态下的内存刚好不到 9GB,你有足够的 RAM。
缓存用于通过将磁盘数据放入内存来加快磁盘访问速度。例如,如果您正在运行大型文件服务器,则需要尽可能多的内存处于缓存状态。Linux 中的“可用”内存是完全未使用内存,这会被浪费。
答案2
http://www.linuxatemyram.com/?
编辑摘要:备用内存被用作缓存
答案3
您的 RAM 并未完全用完,其中 6GB 被用作缓存。这是正常的,Linux 会用缓存填充可用 RAM。如果需要,它会将此 RAM 用于应用程序。
您仅使用了 268k 的交换空间,不需要再分配任何空间。
对于繁忙的网络服务器来说,2/3 的负载似乎没问题。一般来说,如果负载小于 CPU 核心数,则不表示存在问题。
php.ini 中的内存限制取决于您的 Web 服务器运行的应用程序的要求。
答案4
尝试free -m
快速查看内存/交换的使用情况、空闲情况以及缓存情况。
~# 免费 -m 已使用的、可用的、缓存的共享缓冲区总数 内存:70000 69650 349 0 38 21361 -/+ 缓冲区/缓存:48250 21750 交换:0 0 0