在本地windows机器开发的Django项目运行正常,放到服务器上后响应超慢,花了一整个工作日没找到原因(非常绝望),又花了一整个周末才找到原因和临时解决办法,如果你的项目超慢可以参考一下解决思路。
排查过程:
1.怀疑是Python环境问题,到服务器上各种虚拟环境版本进行尝试,无果。
2.因为用了mysql数据库,开始用pymysql包连接改动了一些参数,担心是驱动问题导致数据库查的慢,更换mysqlclient包后,响应依旧慢。
3.担心是有什么报错导致慢,于是艰难地开启了debug模式(由于用了pymysql所以开启debug模式也会有个报错),开启之后Django反应慢但没有任何报错,绝望~
4.都说用uwsgi中间件部署Django能加快响应速度,尝试之,没用。
5.作为运维人员的思路来了-整个链路监控吧,看看哪个环节慢了。在网上找到了django性能监控工具django-silk,装上之后发现只能看到请求耗时、sql查询耗时,sql查询耗时就几ms,也不慢啊,哭死!
6.是不是模板渲染或者代码有问题导致慢呢?
views.py中新建一个方法,不做任何处理,直接返回一个字符串,依旧慢!
7.从客户端发出请求到views.py处理计算这个过程很慢?
views.py的处理函数中增加print('test'),在浏览器中刷新网页后,查看Django输出,请求后要15s才能看到打印test。
8.客户端到服务器网络慢?
服务器上新建一个空
在本地windows机器开发的Django项目运行正常,放到服务器上后响应超慢,花了一整个工作日没找到原因(非常绝望),又花了一整个周末才找到原因和临时解决办法,如果你的项目超慢可以参考一下解决思路。排查过程:1.怀疑是Python环境问题,到服务器上各种虚拟环境版本进行尝试,无果。2.因为用了mysql数据库,开始用pymysql包连接改动了一些参数,担心是驱动问题导致数据库查的慢,更换mysq...
在本地windows机器开发的
Django
项目
运行
正常,放到
服务器
上后
响应
超
慢
,花了一整个工作日没找到原因(非常绝望),又花了一整个周末才找到原因和临时
解决
办法,如果你的项目
超
慢
可以参考一下
解决
思路。
排查
过程
:
1.怀疑是
Python
环境问题,到
服务器
上各种虚拟环境版本进行尝试,无果。
2.因为用了mysql数据库,开始用pymysql包连接改动了一些参数,担心是驱动问题导致数据库查的
慢
,更换mysqlclient包后,
响应
依旧
慢
。
3.担心是有什么报错导致
慢
,于是艰难地开启了debug模式(由于用了pymysql所以开启debug模式也会有个报错),开启之后
Django
反应
慢
但没有任何报
响应
速度
慢
,跳转一个网页最
慢
的时候快十秒,找到了其中一个原因。
前期开发只想着实现逻辑功能就行,忽略掉了内存、数据库查询速度等大批量复杂度问题,导致
Django
框架查询速度、
响应
速度过
慢
。
1.数据库查询优化
拒绝使用以下语句:
if question = Question.objects.filter(catalogue_id=catalogue_id):
而要换成:
question = Question.objects.filter(catalogue_id=catalogue_id)
1 原因分析
是
Python
环境问题,到
服务器
上各种虚拟环境版本进行尝试,无果。
mysql数据库,开始用pymysql包连接改动了一些参数,担心是驱动问题导致数据库查的
慢
,更换mysqlclient包后,
响应
依旧
慢
。
都说用uwsgi中间件部署
Django
能加快
响应
速度,尝试之,没用。
为什么mysql
响应
这么
慢
,百度一番后发现原因
mysql建立连接之前会根据连接的ip反向查找对应的主机名,这一步会涉及DNS反向解析(如果本地hosts文件没有指定就会找其他
服务器
是的,我们可以使用
Python
和
Django
来建立一个
服务器
。
Django
是一个高级的
Python
Web 框架,可以帮助我们快速建立一个功能丰富的网站。
首先,我们需要安装
Python
和
Django
。如果你已经安装了这两个程序,你可以使用以下命令来创建一个新的
Django
项目:
django
-admin startproject myproject
这将会在当前目录下创建一个名为 "myproject" 的文件夹,其中包含了一系列的文件和文件夹,这些文件是必要的来
运行
你的
Django
项目。
接下来,我们需要创建一个应用。应用是一个独立的
Python
包,它实现了特定的功能。你可以使用以下命令来创建一个应用:
python
manage.py startapp myapp
这将在 "myproject" 文件夹下创建一个名为 "myapp" 的文件夹,其中包含了一系列的文件和文件夹,这些文件是必要的来
运行
你的应用。
现在,我们可以在 "myapp" 中编写代码来实现我们想要的功能。例如,我们可以创建一个视图来处理 HTTP 请求和返回
响应
,或者创建一个模型来存储数据。
最后,我们可以使用以下命令来
运行
我们的
Django
项目:
python
manage.py runserver