我有一个 Web 应用程序,它发出许多 Ajax 请求(使用网格更新数据)。
当我使用 JMeter 进行 20 个线程和 10 个循环的压力测试时,我的 Web 应用程序无法连接到第 3 个示例中的数据库(Oracle)。
我的服务器具有以下配置:
Physical Server: Dell r710 , 01 processor Xeon 2.66 Ghz 06 Cores, RAM 32 GB, 05 Disk of 500GB
Virtual Server: 01 Processor Xeon 04 Cores, 03 GB RAM, 36 GB of hard disk.
soporte@olivo:~$ df -h
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/sda3 5,6G 2,5G 2,8G 48% /
none 2,0G 172K 2,0G 1% /dev
none 2,0G 0 2,0G 0% /dev/shm
none 2,0G 916K 2,0G 1% /var/run
none 2,0G 0 2,0G 0% /var/lock
none 2,0G 0 2,0G 0% /lib/init/rw
/dev/sda1 92M 26M 62M 30% /boot
/dev/mapper/vg1-lv1 28G 7,5G 19G 30% /var
soporte@olivo:~$
APACHE:
Apache/2.2.14 (Ubuntu)
PHP:
PHP 5.3.2-1ubuntu4.9 with Suhosin-Patch (cli)
SO:
Ubuntu 10.04.2 LTS
Welcome to the Ubuntu Server!
* Documentation: http://www.ubuntu.com/server/doc
System information as of Tue Dec 27 17:15:34 PET 2011
System load: 0.1 Memory usage: 17% Processes: 134
Usage of /: 44.6% of 5.50GB Swap usage: 0% Users logged in: 1
Graph this data and manage this system at https://landscape.canonical.com/
此外,此 Web 应用程序在后台通过 ajax 发出许多请求,因此当有 10 个或更多用户时,这些在后台发出的 ajax 请求会导致应用程序崩溃(后续连接会出现 ORA-12520 错误)。
我知道如何避免当大量用户(20 个或更多)同时连接时服务器停止连接数据库。
答案1
这是编码问题还是服务器问题?两者的答案可能是使用数据库连接池,但具体怎么做取决于太多变量,我无法根据您目前告诉我们的内容来回答。