我用Jmeter测试我的Web服务器.我启动40个用户测试,然后dump top命令.
我所看到的是40(1个主机)apache进程.每个流程都使用appr. 7毫秒的RES内存.但7 * 40是280 MB的内存.但顶部显示总共有508mb和345mb免费.所以只用了163mb ……
为什么我有这么奇怪的东西?
我所看到的是40(1个主机)apache进程.每个流程都使用appr. 7毫秒的RES内存.但7 * 40是280 MB的内存.但顶部显示总共有508mb和345mb免费.所以只用了163mb ……
为什么我有这么奇怪的东西?
top - 04:49:24 up 1 day,10:49,1 user,load average: 0.28,0.18,0.16 Tasks: 107 total,2 running,105 sleeping,0 stopped,0 zombie cpu(s): 1.4%us,0.4%sy,0.0%ni,97.6%id,0.5%wa,0.0%hi,0.0%si,0.0%st Mem: 508132k total,162428k used,345704k free,28340k buffers Swap: 916476k total,21800k used,894676k free,63480k cached PID USER PR NI VIRT RES SHR S %cpu %MEM TIME+ COMMAND 9816 www-data 20 0 69232 7260 3232 S 1.9 1.4 0:00.69 apache2 9890 www-data 20 0 69232 7260 3232 S 1.9 1.4 0:00.06 apache2 9900 www-data 20 0 69232 7260 3232 S 1.9 1.4 0:00.04 apache2 9906 www-data 20 0 69232 7256 3232 S 1.9 1.4 0:00.04 apache2 9908 www-data 20 0 69232 7256 3232 S 1.9 1.4 0:00.06 apache2 1 root 20 0 2836 760 460 S 0.0 0.1 0:01.50 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.99 ksoftirqd/0 4 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 6 root 20 0 0 0 0 S 0.0 0.0 0:04.20 events/0 7 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuset 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr 11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm 12 root 20 0 0 0 0 S 0.0 0.0 0:00.45 sync_supers 13 root 20 0 0 0 0 S 0.0 0.0 0:00.62 bdi-default 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/0 15 root 20 0 0 0 0 S 0.0 0.0 0:05.89 kblockd/0 16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kacpid 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kacpi_notify 18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kacpi_hotplug 19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ata_aux 20 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ata_sff/0 21 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khubd 22 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kseriod 23 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kmmcd 25 root 20 0 0 0 0 S 0.0 0.0 0:00.08 khungtaskd 26 root 20 0 0 0 0 S 0.0 0.0 0:08.30 kswapd0 27 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd 28 root 20 0 0 0 0 S 0.0 0.0 0:00.00 aio/0 29 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ecryptfs-kthrea 30 root 20 0 0 0 0 S 0.0 0.0 0:00.00 crypto/0 35 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pciehpd 37 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0 38 root 20 0 0 0 0 S 0.0 0.0 0:00.02 scsi_eh_1 41 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kstriped 42 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kmpathd/0 43 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kmpath_handlerd 44 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksnapd 45 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kondemand/0 46 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kconservative/0 239 root 20 0 0 0 0 S 0.0 0.0 0:03.95 mpt_poll_0 240 root 20 0 0 0 0 S 0.0 0.0 0:00.00 mpt/0 241 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_2 258 root 20 0 0 0 0 S 0.0 0.0 0:05.60 jbd2/sda1-8 259 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ext4-dio-unwrit 304 root 20 0 2392 68 68 S 0.0 0.0 0:00.04 upstart-udev-br 306 root 16 -4 2440 72 68 S 0.0 0.0 0:00.06 udevd 414 root 18 -2 2328 64 60 S 0.0 0.0 0:00.00 udevd 415 root 18 -2 2328 64 60 S 0.0 0.0 0:00.00 udevd 518 root 20 0 0 0 0 S 0.0 0.0 0:02.87 vmmemctl 526 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kpsmoused 556 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kgameportd 618 syslog 20 0 33976 440 440 S 0.0 0.1 0:00.83 rsyslogd 689 root 20 0 1856 84 80 S 0.0 0.0 0:00.00 getty 693 root 20 0 1856 84 80 S 0.0 0.0 0:00.00 getty 697 root 20 0 1856 84 80 S 0.0 0.0 0:00.00 getty 698 root 20 0 1856 84 80 S 0.0 0.0 0:00.00 getty 701 root 20 0 1856 84 80 S 0.0 0.0 0:00.00 getty 703 memcache 20 0 54192 128 128 S 0.0 0.0 0:07.77 memcached 705 root 20 0 2456 268 204 S 0.0 0.1 0:00.42 cron 706 daemon 20 0 2316 0 0 S 0.0 0.0 0:00.00 atd 722 root 20 0 5640 360 256 S 0.0 0.1 0:00.53 sshd 753 MysqL 20 0 153m 456 32 S 0.0 0.1 0:20.57 MysqLd 9280 root 20 0 2780 1408 1064 S 0.0 0.3 0:00.05 login 9292 zim32 20 0 8828 6068 1536 S 0.0 1.2 0:00.26 bash 9324 root 20 0 7268 2968 2180 S 0.0 0.6 0:03.50 mc 9326 root 20 0 6252 3544 1588 S 0.0 0.7 0:00.21 bash 9735 root 20 0 0 0 0 S 0.0 0.0 0:00.00 flush-8:0 9808 root 20 0 68892 8624 4828 S 0.0 1.7 0:00.15 apache2 9814 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:01.03 apache2 9827 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.97 apache2 9842 www-data 20 0 69232 7264 3236 S 0.0 1.4 0:00.40 apache2 9844 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.40 apache2 9870 www-data 20 0 69232 7264 3236 S 0.0 1.4 0:00.22 apache2 9872 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.23 apache2 9877 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.18 apache2 9878 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.18 apache2 9888 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.07 apache2 9889 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.06 apache2 9891 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.08 apache2 9892 www-data 20 0 69232 7256 3232 S 0.0 1.4 0:00.05 apache2 9893 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.06 apache2 9894 www-data 20 0 69232 7256 3232 S 0.0 1.4 0:00.08 apache2 9895 www-data 20 0 69232 7256 3232 S 0.0 1.4 0:00.06 apache2 9896 www-data 20 0 69232 7256 3232 S 0.0 1.4 0:00.04 apache2 9897 www-data 20 0 69232 7248 3228 S 0.0 1.4 0:00.06 apache2 9898 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.03 apache2 9899 www-data 20 0 69232 7260 3236 S 0.0 1.4 0:00.06 apache2 9901 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.04 apache2 9902 www-data 20 0 69232 7256 3232 S 0.0 1.4 0:00.04 apache2 9903 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.03 apache2 9904 www-data 20 0 69232 7256 3232 S 0.0 1.4 0:00.08 apache2 9905 www-data 20 0 69232 7256 3232 S 0.0 1.4 0:00.05 apache2 9907 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.05 apache2 9909 www-data 20 0 69232 7256 3232 S 0.0 1.4 0:00.08 apache2 9911 www-data 20 0 69232 7256 3232 S 0.0 1.4 0:00.04 apache2 9912 www-data 20 0 69232 7248 3228 S 0.0 1.4 0:00.04 apache2 9913 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.06 apache2 9914 www-data 20 0 69232 7260 3232 S 0.0 1.4 0:00.04 apache2 9915 www-data 20 0 69232 7260 3232 R 0.0 1.4 0:00.04 apache2 9916 www-data 20 0 69232 7256 3232 S 0.0 1.4 0:00.04 apache2 9917 www-data 20 0 69232 7256 3232 S 0.0 1.4 0:00.06 apache2 9918 www-data 20 0 69232 7248 3228 S 0.0 1.4 0:00.02 apache2 9919 root 20 0 2632 1068 816 R 0.0 0.2 0:00.02 top
解决方法
这是一个顶级报告每个进程的内存使用情况的情况,就好像它是唯一运行的进程一样.实际上,所有apache进程都有共享内存(公共链接库),并且正在为每个进程报告此共享内存,因此所有apache进程的总使用量似乎比实际情况更多.
process memory usage on Linux is a complex matter; you can’t just run ps and know what is going on. This is especially true when you deal with programs that create a lot of identical children processes,like Apache. ps might report that each Apache process uses 10 megabytes of memory,when the reality might be that the marginal cost of each Apache process is 1 megabyte of memory