另,也与异常的处理方式有很大关系,不论是driverManager获取或者数据源获取连接,在未能获取连接时的异常处理将会影响后面的进程.
在was中,若使用数据源,那还有一个原因就是应用服务器的连接池机制本身.因为用户应用的连接实际上取的是连接池中的连接而非物理连接,连接池有自身的一套处理机制,在获得缓冲的同时,也会在数据库和用户应用之间造成一定的时间差和状态差.因此,可能的情况是数据库实际上已经拒绝服务(含堵塞/停止等),而应用服务器连接池中的某些连接仍可用,这时候,pool的处理和应用的处理的消耗就造成了应用服务器的堵塞.对于这种情况的处理,只有依据实际情况对数据源和数据库的参数进行调整.
1,首先通过任务管理器进行进程排序,查找占用内存较大的程序进程。一般占用内存较大的进程有W3WP、sqlserver、mysqld-nt.exe;2, 站点进程w3wp 可以在cmd命令行中通过 iisapp 命令来对应是那个网站占用内存较大。可以通过设置回收时间、内存最大使用值或共用进程池来减少内存的占用,但是如果要保证网站的访问质量,还是建议升级至更高型号来解决;
3,数据库 sql server 也可以通过数据库的企业管理器来设置最大内存占用,但是如果网站程序必须要占用较大内存的话,设置后会发生页面报错、打不开等问题;
4,MYSQL本身会占用较大虚拟内存,如果不使用mysql数据库的话,可以将其停止。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)