mod_wsgi + pymssql访问SQL Server阻塞

在通过pymssql访问SQL Server时,直接在python中运行没有问题,在通过mod_wsgi和Apache进行部署时,发现所有请求都hang再数据库查询。

通过google查到了答案,感谢google,详细描述请见:https://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API

简要说一下,mod_wsgi针对每个virtual host和app mount point创建一个sub interpreter。python中有个著名的GIL,在通过C extension访问GIL State时,只有第一个sub interpreter才可以正常工作,如果使用后续的sub interpreter会导致死锁或crash,因为pymssql是一个C extension所以会有这个问题,解决方案是,添加配置项:

WSGIApplicationGroup %{GLOBAL}

强制该app使用第一个sub interpreter,使得GIL正常工作。改完后,mod_wsgi一切ok。

mod_wsgi + pymssql访问SQL Server阻塞

时间: 2024-10-31 05:04:19

mod_wsgi + pymssql访问SQL Server阻塞的相关文章

mod_wsgi + pymssql通路SQL Server座

靠pymssql通路SQL Server时刻,直接地python没有问题的执行.靠mod_wsgi和Apache当部署.所有请求被发现hang然后数据库查询. 通过google查到了答案,感谢google,具体描写叙述请见:https://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API 简要说一下,mod_wsgi针对每一个virtual host和app mount point创建

.NET跨平台之旅:升级至ASP.NET 5 RC1,Linux上访问SQL Server数据库

今天微软正式发布了ASP.NET 5 RC1(详见Announcing ASP.NET 5 Release Candidate 1),.NET跨平台迈出了关键一步. 紧跟这次RC1的发布,我们成功地将运行在Linux上的示例站点(http://about.cnblogs.com)升级到了ASP.NET 5 RC1,并且增加了数据库访问功能——基于Entity Framework 7 RC1访问SQL Server数据库. 示例站点页面左侧的导航是从数据库读取数据动态加载的,数据库服务器用的是阿里

NodeJS下访问SQL Server

1.下载node-sqlserver(msnodesql-0.2.1-v0.8-x64.msi) msnodesql 下载地址:下载  自行选择与自己系统相符的版本,点击安装. msnodesql 官方地址:https://github.com/WindowsAzure/node-sqlserver 含wiki 和 疑问解答 . 2.打开msnodesql 文件夹下的README.md文件,里面有说到要安装的东西. 3.安装node-gyp,打开命令行,输入命令: npm install -g

访问SQL Server WMI对象

访问SQL Server WMI对象 1. 使用Powershell访问 get-wmiobject -list -namespace "root\Microsoft\SqlServer" get-wmiobject -list -namespace "root\Microsoft\SqlServer\ServerEvents\MSSQLSERVER" get-wmiobject -namespace "root\Microsoft\SqlServer\C

Oracle Gateways透明网关访问SQL Server

自己的本机安装了Oracle 12c,公司的平台需要同时支持Oracle与SQL Server,很多时候都有将数据从Oracle同步到SQL Server的需求.通过SQL Server的link Server可以达到目的,但是因为SQL Server都是64位版本,试过很多次都失败了.再安装32位SQL Server也懒得折腾.因Oracle是12c, 安装的Gateways也是12c.尝试过在Oracle数据库服务器(本机)安装11g的gateways, 但是配置都失败了.    Oracl

Ubuntu12.10下Python(pyodbc)访问SQL Server解决方案

一.基本原理 请查看这个网址,讲得灰常详细:http://www.jeffkit.info/2010/01/476/ 二.实现步骤 1.安装linux下SQL Server的驱动程序 安装Freetds,不要使用apt-get install 来安装,因为源里的版本不一定是新的,建议使用stable版本, 下载源码手工编译安装,因为有好些参数需要在编译中指定的. 执行以下命令: tar zfvx freetds-stable.tgz cd freetds-* ./configure --pref

ODBC database driver for Go:Go语言通过ODBC 访问SQL server

Go语言通过ODBC 访问SQL server,这里需要用到go-odbc库,开源地址::https://github.com/weigj/go-odbc 一.驱动安装 在cmd中打开GOPATH: 转到src目录 在src目录通过git获取odbc驱动: git clone git://github.com/weigj/go-odbc.git odbc 转到odbc目录: 运行go install命令: 提示未安装 gcc 编译程序,到官方网站下载http://tdm-gcc.tdragon.

原生的ado.net(访问sql server数据库)

本文介绍原生的ado.net(访问sql server数据库) 写在前面 数据库连接字符串 过时的写法 string str = "server=localhost;database=my_db;uid=sa;pwd=123"; 主流的写法 sql验证写法 string str = "Data Source=localhost;Initial Catalog=my_db;User ID=sa;Password=123"; windows验证写法 string str

sql server 阻塞查询

原文:sql server 阻塞查询 在生产环境下,有时公司客服反映网页半天打不到,除了在浏览器按F12的Network响应来排查,确定web服务器无故障后.就需要检查数据库是否有出现阻塞 当时数据库的生产环境中主表数据量超过2000w,子表数据量超过1亿,且更新和新增频繁.再加上做了同步镜像,很消耗资源. 这时就要新建一个会话,大概需要了解以下几点: 1.当前活动会话量有多少? 2.会话运行时间? 3.会话之间有没有阻塞? 4.阻塞时间 ? 查询阻塞的方法有很多.有sql 2000 的sp_l