抓虫系列(二) 不要轻视web程序中常用的三个"池" 之应用程序池

简介:

前篇回顾:上一篇虫子给大家介绍了线程安全中容易出错的地方 内容不深 引发大家的思考与关注 看似简单的小程序可是为引发大麻烦的额 ~ ~

下面虫子给大家介绍下web应用范围的应用程序池、线程池以及数据库连接池中容易出现的问题

首先来看应用程序池

 你的session丢失了吗?! 有 当然有 不过我们一般都是设置超时时间或者新版本更新修改了配置文件导致丢失的。好吧,可以预见的异常虫子就不和大家多扯了。

     应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。(概念又见概念、枯燥的东西( ⊙ o ⊙ ))

下面详细的概念虫子就不具体说了 几张图送上 有什么功能自己琢磨下

下面是重点了 看到了没 那个回收工作进程

IIS 将应用程序分散到隔离的池中,并自动检测内存泄漏、有缺陷的进程和过度利用的资源。如果发生问题,IIS 通过关闭然后重新部署有问题的资源并将有问题的进程连接到解析工具上进行管理。亮点来了

工作进程回收如何工作
1.默认情况下,WWW 服务建立“重叠回收”,即继续运行要终止的工作进程,直到启动新的工作进程后为止。 
2.WWW 服务可以终止一个工作进程,然后启动一个新的工作进程(如果工作负荷允许执行此操作的话)。

何时使用工作进程回收

1.无法修复 Web 服务器上您所主控的有故障的应用程序。 
2.遇到不能确定的或间断性的故障。 
3.应用程序由于性能监视的原因而泄漏内存。 
4.先前已实施了临时性的重置解决方案,例如,计划执行 IISReset 命令行实用工具。

说得笼统点,我们经常碰到的就是:工作进程虚拟内存或者W3wp.exe 进程使用的内存达到阈值(session总体积过大)、未关注应用程序池时间配置

解决这类问题一方面可以禁用工作进程回收

在上图“回收”选项卡上,清除“回收工作进程(分钟)”复选框。

另外也可以改变session的存储方式

?
<sessionState mode= "InProc"  stateConnectionString= "tcpip=127.0.0.1:42424"  sqlConnectionString= "data source=127.0.0.1;user id=sa;password="  cookieless= "false"  timeout= "20" />

将inproc(进程模式)改为StateServer,也就是将会话数据存储到单独的内存缓冲区中(这个最常用)或者改为SQL Server进行数据库会话管理。



本文转自 熬夜的虫子  51CTO博客,原文链接:http://blog.51cto.com/dubing/712449


相关文章
|
14天前
|
前端开发 JavaScript 关系型数据库
从前端到后端:构建现代化Web应用的技术探索
在当今互联网时代,Web应用的开发已成为了各行各业不可或缺的一部分。从前端到后端,这篇文章将带你深入探索如何构建现代化的Web应用。我们将介绍多种技术,包括前端开发、后端开发以及各种编程语言(如Java、Python、C、PHP、Go)和数据库,帮助你了解如何利用这些技术构建出高效、安全和可扩展的Web应用。
|
30天前
|
监控 Serverless 测试技术
Serverless 应用引擎常见问题之做的web服务计费如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
401 3
|
5天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
11 0
|
7天前
|
缓存 负载均衡 数据库
优化后端性能:提升Web应用响应速度的关键策略
在当今数字化时代,Web应用的性能对于用户体验至关重要。本文探讨了如何通过优化后端架构和技术手段,提升Web应用的响应速度。从数据库优化、缓存机制到异步处理等多个方面进行了深入分析,并提出了一系列实用的优化策略,以帮助开发者更好地应对日益增长的用户访问量和复杂的业务需求。
10 1
|
7天前
|
缓存 监控 数据库
Flask性能优化:打造高性能Web应用
【4月更文挑战第16天】本文介绍了提升Flask应用性能的七大策略:优化代码逻辑,减少数据库查询,使用WSGI服务器(如Gunicorn、uWSGI),启用缓存(如Flask-Caching),优化数据库操作,采用异步处理与并发(如Celery、Sanic),以及持续监控与调优。通过这些手段,开发者能有效优化Flask应用,适应大型或高并发场景,打造高性能的Web服务。
|
8天前
|
数据库 开发者 Python
Python中使用Flask构建简单Web应用的例子
【4月更文挑战第15天】Flask是一个轻量级的Python Web框架,它允许开发者快速搭建Web应用,同时保持代码的简洁和清晰。下面,我们将通过一个简单的例子来展示如何在Python中使用Flask创建一个基本的Web应用。
|
12天前
|
JavaScript 前端开发 API
Vue.js:构建高效且灵活的Web应用的利器
Vue.js:构建高效且灵活的Web应用的利器
|
20天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
24天前
|
前端开发 JavaScript 数据管理
描述一个使用Python开发Web应用程序的实际项目经验,包括所使用的框架和技术栈。
使用Flask开发Web应用,结合SQLite、Flask-SQLAlchemy进行数据管理,HTML/CSS/JS(Bootstrap和jQuery)构建前端。通过Flask路由处理用户请求,模块化代码提高可维护性。unittest进行测试,开发阶段用内置服务器,生产环境可选WSGI服务器或容器化部署。实现了用户注册登录和数据管理功能,展示Python Web开发的灵活性和效率。
14 4
|
1月前
|
前端开发 JavaScript 安全
深入探索 Qt6 web模块 WebEngineCore:从基础原理到高级应用与技巧
深入探索 Qt6 web模块 WebEngineCore:从基础原理到高级应用与技巧
72 0