电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python 在服務器上調用數據庫特別慢的解決過程

瀏覽:10日期:2022-06-22 13:47:00

在排除網絡和環境配置問題后,如果發現本地調試比較快,而部署到服務器就會出現卡頓現象,可以檢查下在上傳服務器時,是否將連接mysql 的IP改為:localhoast、或者unix_socket 方式連接。

本地調試需要使用服務器ip地址!

更改如下:

python 在服務器上調用數據庫特別慢的解決過程

補充:服務器響應慢問題

一.分析思路

1.排除本機自身原因

2.服務器性能分析

3.項目本身分析(不詳細說)

4.虛擬機分析

5.數據庫分析

二.詳細分析方法1.排除本機自身原因

可以使用站長工具測試網站速度。

python 在服務器上調用數據庫特別慢的解決過程

2.服務器性能分析

使用top命令查看服務器的資源使用情況,主要分析CPU和內存的使用情況(top 命令是 Linux 下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,默認5秒刷新一下進程列表,所以類似于 Windows 的任務管理器。):

python 在服務器上調用數據庫特別慢的解決過程

第三行顯示的是Cpu的使用情況,詳細含義如下:

us---用戶空間占用CPU的百分比、sy---內核空間占用CPU的百分比、ni---改變過優先級的進程占用CPU的百分比、id---空閑CPU百分比、wa---IO等待占用CPU的百分比、hi---硬中斷(Hardware IRQ)占用CPU的百分比、si---軟中斷(Software Interrupts)占用CPU的百分比、st---Steal Time,分配給運行在主機上其它虛擬機的任務的實際CPU時間,一般只有在虛擬機OS。

第4行是當前的內存情況,服務器總內存8054352k,已使用2879468k,剩余5174884k,緩沖265728k。

我個人的理解是:當us的百分比小于50%時,是不需要去考慮服務器的配置問題的,如果服務器的us百分比長時間在70%以上時,可以考慮加強服務器的硬件配置。此外,還需要查看服務器的網絡情況,下載一個大型文件基本就可以確定網絡情況了。

3.項目本身分析

如果使用JDBC連接池,需要對連接池的配置進行分析(分析線程池的最大數量和釋放時間等等)。

這里以C3P0為例,下面是我曾經做的一個項目的配置,如下圖:

python 在服務器上調用數據庫特別慢的解決過程

這里本來只是本地測試的配置方案,由于粗心,上線后忘記修改了,當多人訪問時,會出現等待連接超時的情況,我們需要根據項目的實際情況設定合適的配置數據。

還有可能項目的設計方面不合理導致響應緩慢,這里就不詳細說明了。

checkoutTimeout---當連接池連接耗盡時,客戶端調用getConnection()后等待獲取新連接的時間,超時后將拋出SQLException,如設為0則無限期等待。單位毫秒。默認: 0

minPoolSize---連接池中保留的最小連接數,默認為:3

maxPoolSize---連接池中保留的最大連接數。默認值: 15

maxIdleTime---最大空閑時間,設定時間內未使用則連接被丟棄。若為0則永不丟棄。默認值: 0

maxIdleTimeExcessConnections---default : 0 單位 s 這個配置主要是為了減輕連接池的負載,比如連接池中連接數因為某次數據訪問高峰導致創建了很多數據連接 ,但是后面的時間段需要的數據庫連接數很少,則此時連接池完全沒有必要維護那么多的連接,所以有必要將斷開丟棄掉一些連接來減輕負載,必須小于maxIdleTime。配置不為0,則會將連接池中的連接數量保持到minPoolSize。為0則不處理

acquireIncrement---當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數。默認值: 3

4.虛擬機分析

使用top指令查看虛擬機的內存占用情況,有時候可以發現雖然虛擬機占用內存的百分比不大卻有明顯的上限值,我們就需要去查看虛擬機的配置情況。

解決方法(以tomcat為例):

python 在服務器上調用數據庫特別慢的解決過程

具體的數值根據實際情況而定。

5.數據庫分析(MySql)

數據庫的分析內容和需要考慮的方面有很多,這里只說本人遇到過的幾種情況:

a.最大連接數

show variables like ’%max_connections%’; 查看最大連接數show status like ’Threads%’;當前連接的使用情況

python 在服務器上調用數據庫特別慢的解決過程

Threads_connected---打開的連接數

Threads_running---這個數值指的是激活的連接數,這個數值一般遠低于connected數值

如果最大連接數的值太小可以根據實際情況進行修改,一般修改為1000即可,設置方法有兩種:

1.臨時設置,重啟服務后將失效

python 在服務器上調用數據庫特別慢的解決過程

2.修改數據庫配置文件

在/etc/my.cnf 文件的[mysqld]下增減一行:max_connections = 1000

b.超時控制

mysql存在一項屬性“wait_timeout”,默認值為28800秒(8小時),wait_timeout的值可以設定,但最多只能是2147483,不能再大了。也就是約24.85天 ,可以通過show global variables like ’wait_timeout’;命令來查看。

wait_timeout的含義是:一個connection空閑超過8個小時,Mysql將自動斷開該connection,通俗的講就是一個連接在8小時內沒有活動,就會自動斷開該連接。由于dbcp沒有檢驗該connection是否有效,用其進行數據操作便會出現異常。

如果是由超時控制引起的問題,不建議修改wait_timeout的值,在數據庫連接的url的后面加上“&autoReconnect=true&failOverReadOnly=false”即可解決。

c.DNS反向解析

MySQL數據庫收到一個網絡連接后,首先拿到對方的IP地址,然后對這個IP地址進行反向DNS解析從而得到這個IP地址對應的主機名。用主機名在權限系統里面進行權限判斷。反向DNS解析是耗費時間的,有可能讓用戶感覺起來很慢。甚至有的時候,反向解析出來的主機名并沒有指向這個IP地址,這時候就無法連接成功了。 可以在配置文件里面禁止MySQL進行反向DNS解析,只需在my.cnf的[mysqld]段落中加入如下行即可:

skip-name-resolve (windows與linux下一樣的)d.表高速緩存

show global status like ’open%tables%’;查看打開的表的數量:

python 在服務器上調用數據庫特別慢的解決過程

open_tables是當前在緩存中打開表的數量。

opened_tables是mysql自啟動起,打開表的數量。

當Opened_tables數值非常大,說明cache太小,導致要頻繁地open table,可以查看下當前的table_open_cache設置:show variables like ’table_open_cache’; 查看緩存的上限值

python 在服務器上調用數據庫特別慢的解決過程

設置table_open_cache的值有兩種方式(如果是4G左右內存的服務器,建議設為2048):

1.臨時設置,重啟服務后將失效

set global table_open_cache=2048;

2.修改數據庫配置文件

在/etc/my.cnf 文件的[mysqld]下增減一行:table_open_cache = 2048

e.慢查詢日志

記錄的慢查詢日志的目的是確認是否是由于某些語句執行緩慢而導致的服務器響應慢。

慢查詢就不詳細說了,網上可以查到很多。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 旋振筛|圆形摇摆筛|直线振动筛|滚筒筛|压榨机|河南天众机械设备有限公司 | 南京租车,南京汽车租赁,南京包车,南京会议租车-南京七熹租车 | 炉门刀边腹板,焦化设备配件,焦化焦炉设备_沧州瑞创机械制造有限公司 | GEDORE扭力螺丝刀-GORDON防静电刷-CHEMTRONICS吸锡线-上海卓君电子有限公司 | 不发火防静电金属骨料_无机磨石_水泥自流平_修补砂浆厂家「圣威特」 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 杭州中策电线|中策电缆|中策电线|杭州中策电缆|杭州中策电缆永通集团有限公司 | 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 - 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 | 成都思迪机电技术研究所-四川成都思迪编码器 | 天津暖气片厂家_钢制散热器_天津铜铝复合暖气片_维尼罗散热器 | 政府园区专业委托招商平台_助力企业选址项目快速落地_东方龙商务集团 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 中山市派格家具有限公司【官网】| 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 西门子伺服电机维修,西门子电源模块维修,西门子驱动模块维修-上海渠利 | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 低噪声电流前置放大器-SR570电流前置放大器-深圳市嘉士达精密仪器有限公司 | 全屋整木定制-橱柜,家具定制-四川峨眉山龙马木业有限公司 | 自恢复保险丝_贴片保险丝_力特保险丝_Littelfuse_可恢复保险丝供应商-秦晋电子 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 金属切削液-脱水防锈油-电火花机油-抗磨液压油-深圳市雨辰宏业科技发展有限公司 | 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | 电磁铁_推拉电磁铁_机械手电磁吸盘电磁铁厂家-广州思德隆电子公司 | 无水硫酸铝,硫酸铝厂家-淄博双赢新材料科技有限公司 | 江苏密集柜_电动_手动_移动_盛隆柜业江苏档案密集柜厂家 | 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | 大倾角皮带机-皮带输送机-螺旋输送机-矿用皮带输送机价格厂家-河南坤威机械 | 北京网站建设-企业网站建设-建站公司-做网站-北京良言多米网络公司 | 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 | 热闷罐-高温罐-钢渣热闷罐-山东鑫泰鑫智能热闷罐厂家 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 电动不锈钢套筒阀-球面偏置气动钟阀-三通换向阀止回阀-永嘉鸿宇阀门有限公司 | 筛分机|振动筛分机|气流筛分机|筛分机厂家-新乡市大汉振动机械有限公司 | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 辐射色度计-字符亮度测试-反射式膜厚仪-苏州瑞格谱光电科技有限公司 | 中央空调温控器_风机盘管温控器_智能_液晶_三速开关面板-中央空调温控器厂家 | 西门子伺服电机维修,西门子电源模块维修,西门子驱动模块维修-上海渠利 | 消泡剂-水处理消泡剂-涂料消泡剂-切削液消泡剂价格-东莞德丰消泡剂厂家 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 |