Rails 内存泄露检测:实践二
Posted by devon on January 9th, 2008 filed in 部署与优化服务器一环境:
1 2 3 4 5 6 7 8 9 10 | <code> rails2@server:~$ cat /proc/version Linux version 2.6.16.29-xen (shand@endor) (gcc version 3.4.4 20050314 (prerelease) (Debian 3.4.3-13)) #3 SMP Sun Oct 15 13:15:34 BST 2006 rails2@server:~$ ruby -v ruby 1.8.6 (2007-03-13 patchlevel 0) [x86_64-linux] rails2@server:~$ gem -v 0.9.4 rails2@server:~$ rails -v Rails 2.0.2 </code> |
启动工程后,development 模式下:
1 2 3 4 | <code> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12661 rails2 16 0 99040 49m 2308 S 0 4.9 0:03.74 ruby </code> |
访问一千次首页:
seq 1000 | xargs -i curl –silent http://localhost:7010 > \dev\null
之后该进程的内存消耗情况:
1 2 3 | <code> 12661 rails2 16 0 118m 69m 2848 S 0 6.8 2:40.71 ruby </code> |
访问一万次首页:
seq 10000 | xargs -i curl –silent http://localhost:7010 > \dev\null
之后该进程的内存消耗情况:
1 2 3 | <code> 12661 rails2 16 0 343m 294m 2848 S 0 28.8 36:11.31 ruby </code> |
后期的持续访问会导致内存消耗不断上升。
Production 模式下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <code> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 27822 rails2 16 0 98840 49m 2308 S 0 4.9 0:04.43 ruby seq 1000 | xargs -i curl –silent http://localhost:7010 > \dev\null 27822 rails2 16 0 102m 53m 2840 S 14 5.3 0:26.97 ruby 10000 27822 rails2 16 0 110m 62m 2840 S 0 6.1 2:54.53 ruby 100000 27822 rails2 16 0 187m 138m 2840 S 0 13.6 25:55.28 ruby </code> |
服务器二环境:
1 2 3 4 5 6 7 8 9 10 | <code> rails2@server:~$ cat /proc/version Linux version 2.6.9-42.0.10.ELsmp (mockbuild@builder7.centos.org) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-3)) #1 SMP Tue Feb 27 10:11:19 EST 2007 rails2@server:~$ ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-linux] rails2@server:~$ gem -v 1.0.1 rails2@server:~$ rails -v Rails 2.0.2 </code> |
服务器二,production 模式下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <code> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 669 app 16 0 54188 39m 3568 S 0 3.9 0:04.06 mongrel_rails seq 1000 | xargs -i curl –silent http://localhost:6000 > \dev\null 669 app 16 0 54320 39m 3568 S 0 3.9 0:15.64 mongrel_rails seq 10000 | xargs -i curl –silent http://localhost:6000 > \dev\null 669 app 16 0 55288 40m 3568 S 0 4.0 2:16.58 mongrel_rails seq 100000 | xargs -i curl –silent http://localhost:6000 > \dev\null 669 app 15 0 68320 53m 3568 S 0 5.3 23:06.61 mongrel_rails </code> |
表现还算基本稳定。
Written by Devon. Copyright by enjoyrails.com
Related posts:
- Rails 内存泄露检测:实践一 在服务器运行在development模式下式,发现mongrel进程所占用的内存迅速上升,怀疑文件上传引起内存泄露(项目中有大文件上传的应用),以下是测试过程。 服务器环境: rails2@server:~$ cat /proc/version Linux version 2.6.16.29-xen (shand@endor) (gcc...
Related posts brought to you by Yet Another Related Posts Plugin.
Leave a Comment