成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【博文推薦】一次網站遷移故障及分析

運維 系統運維 系統
公司運營項目遷移,結果出現了很多意想不到的問題。因為這次遷移的LNMP環境不同,以前用的是Ver 14.14 Distrib 5.1.60,新服務器用的是Ver 14.14 Distrib 5.6.16,還有一個mysql的主輔同步,做了過濾,只同步了某些表,當時凌晨遷移……

本博文出自51CTO博客 lxshopping博主,有任何問題請進入博主頁面互動討論!
博文地址:http://lxshopping.blog.51cto.com/4542643/1574929

公司運營項目遷移,這個項目最重要的就是充值和讓玩家能玩游戲,還有后臺統計,就是類似支付寶這樣的第三方平臺的支付工具,由于涉及的到錢,所以上個月就做好遷移的準備,將代碼和數據庫都已轉移完畢,并提交運營那邊測試,***跟運營討論說凌晨0點充值的人最少,開始切域名,考慮到切換DNS后無法立即生效,所以做了301跳轉,整個遷移流程是:

1.暫停原服務器數據庫,導出相關數據庫

2.將導出的數據庫同步到杭州xx服務器上面并導入到數據庫中

3.切換域名指向到xx服務器

4.原服務器上面做301跳轉到xx服務器(保證不寫入新數據到原運營服務器上面)

5.運營協助測試新服務器數據是否正常

按照上面的流程操作,結果出現了很多意想不到的問題,因為這次遷移的LNMP環境不同,特別的是數據庫,以前用的是Ver 14.14 Distrib 5.1.60,新服務器用的是Ver 14.14 Distrib 5.6.16,還有一個mysql的主輔同步,做了過濾,只同步了某些表,當時凌晨遷移,將***的數據再次導入新服務器mysql,由于版本的問題,發現有個mysql存儲過程無法導入,還有默認值問題,如下圖:默認值要改為"NULL",不能是"無",原mysql中還有些定時任務無法導出,只能重新創建了。

wKioL1RgIQCypKaRAADnLKibCSI525.jpg

好了,解決了上面的問題,重新做了mysql主輔同步和過濾,當時測試也是正常的,結果第二天早上8點半用戶流量過來了,網站都打不開了,首先查看了php日志,出現下面這個問題:

wKiom1RgIX7QK9iWAAMJY17ZGUs576.jpg然后不斷的修改下面的參數,感覺調到2048后已經是臨界值了,因為這臺機器只有8G內存,max_children = 2048后發現內存基本滿了,在調高可能內存就爆了,當時調整php后發現可以短時間的正常訪問,功能也正常,但是過了10分鐘左右,又出現訪問很慢的問題,繼續看php日志,還是上圖的提示,感覺這個不是php的問題,因為這個網站原服務器沒有開啟這么多php進程,但是運行正常,整個站的出口流量也不大。

wKiom1RgId3QbEvxAAETcEKJZrc924.jpg

綜上分析,發現應該是php連接mysql出現了堵塞,導致php進程一直在排隊,當新的請求過來后,由于其他的php進程都在排隊,只能在開啟新的php進程,php進程永遠提示繁忙,不夠用,要調整max_children值,于是就看mysql是不是有問題?

進mysql,show processlist查看mysql的全部的線程,發現pay庫里面有張uc_members表大量lock,

wKioL1RgJg-gvdZlAAPbC55JhBc254.jpg

大量的鎖表,詢問開發這張表是用戶表,也就是用戶每次登錄都要查詢這張表,這下終于找到原因了,就是php執行用戶登錄的時候,要讀取mysql中這張uc_members表,每個用戶登錄都要鎖表然后查詢用戶登錄信息,導致這張表一直處于被鎖死的狀態,隨著用戶請求越來越多,php進程也增多,一直等待mysql返回用戶登錄信息,但是mysql一直處于鎖表狀態,結果就導致了這種現象,php進程卡死,用戶無法登錄,網站***也打不開。

查看這張表用的是MyISAM的引擎:

wKiom1RgJ67Al7UvAACMsXKr1wc834.jpg

MyISAM引擎是表級鎖,更換為InnoDB引擎為行級鎖,再次show processlist發現鎖表大量減少,頁面可以正常打開,用戶也可以登錄了,問題解決。

InnoDB與Myisam的六大區別:

wKiom1RgKzyhnkeWAAKESjE-BRk751.jpg

參考:http://www.ha97.com/4197.html
 

總結:

已經建議開發部門,以后開發程序不要再mysql里面寫定時任務,因為mysql里面寫定時任務,執行成功與否很難看到,遷移mysql的時候也會很麻煩,可以寫crontab讓php去執行定時任務即可,還有存儲過程,如果一定需要在mysql里面寫存儲過程,盡量要規范,防止以后遷移由于mysql版本問題導致很多奇怪的現象。

出現這次故障主要是事先沒有做壓力測試,只是做了網站基本功能的測試,下次遷移網站之前一定要做好壓力測試,用戶登錄測試及回滾方案,一個完整的遷移流程應該是:

1.暫停原服務器數據庫,導出相關數據庫

2.將導出的數據庫同步到杭州xx服務器上面并導入到數據庫中

3.對xx服務器進行壓力測試及用戶登錄測試

4.回滾方案,出現問題及時回滾到原服務器,保證用戶正常訪問

5.切換域名指向到xx服務器

6.原服務器上面做301跳轉到xx服務器(保證不寫入新數據到原運營服務器上面)

7.運營協助測試新服務器數據是否正常

責任編輯:林師授 來源: 51CTO
相關推薦

2015-02-27 10:14:33

2015-03-18 13:18:45

MySQLSQL優化

2021-01-08 13:52:15

Consul微服務服務注冊中心

2010-07-30 16:10:45

UPS設備燒毀故障分析

2014-12-01 10:33:51

Python

2015-05-15 10:04:28

localhost

2019-04-18 10:55:00

故障演練流量

2024-12-24 09:17:53

瀏覽器報錯運維

2023-03-26 20:24:50

ERP網站系統

2018-12-06 16:01:01

Redis遷移容器數據庫

2020-10-18 12:53:29

黑科技網站軟件

2011-05-06 10:32:06

硬盤鍵盤

2015-03-16 10:26:59

2015-06-17 09:34:09

軟件定義存儲 云存儲

2015-07-01 10:25:07

Docker開源項目容器

2015-04-30 10:32:16

2015-05-13 11:12:19

Linux企業運維技巧

2011-04-07 11:20:21

SQLServer

2014-10-15 16:32:43

MapReducehadoop

2018-05-30 11:09:41

memcache服務器故障
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 999久久久 | 精品一二区 | 日韩快播电影网 | 在线观看视频一区 | 性在线| 黄视频国产 | 人人插人人 | 九九导航| 国产精品久久久久免费 | 久久久久国产精品一区三寸 | 精品日韩一区二区三区 | 香蕉国产在线视频 | 中文字幕人成人 | 欧美区日韩区 | 黄色av网站免费看 | 亚洲精品永久免费 | 伊人精品在线视频 | 99久久精品国产一区二区三区 | av在线免费观看网站 | 日本在线免费观看 | 欧美高清性xxxxhd | 国产一区二区三区在线看 | 久久久久久九九九九 | 亚洲国产一区二区三区四区 | 电影午夜精品一区二区三区 | 色播久久| av免费入口 | 精品日本久久久久久久久久 | 久久久久久综合 | 日韩视频成人 | 在线黄色影院 | 成人免费看片又大又黄 | 99视频在线播放 | 久久亚洲欧美日韩精品专区 | 午夜免费福利影院 | 日韩免费中文字幕 | 午夜激情影院 | 欧美一区免费 | 久久一区二区三区四区 | 911网站大全在线观看 | 天天干夜夜操 |