項(xiàng)目起不來(lái)了!
在網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細(xì)微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準(zhǔn)用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營(yíng)銷成為有效果、有回報(bào)的無(wú)錫營(yíng)銷推廣。創(chuàng)新互聯(lián)建站專業(yè)成都網(wǎng)站建設(shè)十多年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。
... 項(xiàng)目又起不來(lái)了!
... 又雙叒叕???!!!
上周經(jīng)常聽(tīng)到組里同事說(shuō)項(xiàng)目又雙叒叕掛了, redis連不上, 筆者在另一套正常的環(huán)境忙著開(kāi)發(fā)新需求, 沒(méi)空關(guān)心這個(gè)問(wèn)題.(PS: 反正我的環(huán)境能用(′???)σ , 先忙完我的再說(shuō)).
于是乎, 看了一眼日志, 連接數(shù)過(guò)多... emmm, 順手幫同事把Redis配置里連接數(shù)上限加了個(gè)0, 問(wèn)題排查什么的等忙完再說(shuō).
ERR max number of clients reached
終于... 該來(lái)的總逃不掉, 筆者用的環(huán)境也被搞崩了, 而且是莫名其妙地就涼了.
不過(guò)... 因吹斯汀 !
修改連接數(shù)上限畢竟治標(biāo)不治本, 本來(lái)連接數(shù)上限就是10000, 微服務(wù)總共才幾十個(gè), 按理說(shuō)根本用不完.
肯定有人沒(méi)關(guān)連接, 查他.
已知:
Redis服務(wù)重啟后, 用一段時(shí)間連接就又滿了. 服務(wù)總共幾十個(gè), 配置的一萬(wàn)連接數(shù)正常情況下不大可能用完.
第一步 重啟并搶先占一個(gè)連接
筆者重啟了Redis后, 立即連接到Redis, 查看客戶端數(shù)量(晚了就連不上了):
$ docker exec -it $(docker ps | grep redis | awk '{print $1}') redis-cli -a {pwd}
127.0.0.1:6379> info
...
# Clients
connected_clients:391
...
tips:
info命令能查看關(guān)于 Redis 服務(wù)器的各種信息和統(tǒng)計(jì)數(shù)值.
第二步 記錄全部客戶端
幾分鐘后再次查看:
127.0.0.1:6379> info
...
# Clients
connected_clients:10002
...
此時(shí), 連接已經(jīng)被全部占滿了.
將全部客戶端信息保存到文件準(zhǔn)備抓出這個(gè)搞事情的老哥.
127.0.0.1:6379> client list
id=7863 addr=172.18.0.104:56836 fd=6150 name= age=72 idle=72 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=7864 addr=172.18.0.50:56262 fd=6151 name= age=72 idle=72 flags=N db=9 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=7865 addr=172.18.0.104:56840 fd=6152 name= age=72 idle=72 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
...
ips:
client list: 列出全部客戶端信息.
第三步 找出異常IP
有了全部的客戶端連接信息, 就能找出到底是誰(shuí)的鍋了. 使用命令輸出連接數(shù)前五的IP:
$ cat client-list | awk '{print $2}' | awk -F "[=:]" '{print $2}' | sort | uniq -c | sort -k1,1nr | head -5
5432 172.18.0.50
4244 172.18.0.104
43 172.18.0.59
40 172.18.0.54
32 172.18.0.55
到目前為止, 鎖定了172.18.0.50和172.18.0.104兩個(gè)IP. 這兩個(gè)都是docker內(nèi)部網(wǎng)絡(luò)的地址.
tips:
awk '{print $2}: 輸出第二列, 即IP. addr=172.18.0.104:56836.
awk -F "[=:]" '{print $2}': 通過(guò)等號(hào)和冒號(hào)拆分addr=172.18.0.104:56836, 并輸出中間的IP.
sort: 排序.
uniq -c: 統(tǒng)計(jì)數(shù)量并在每列旁邊顯示該行重復(fù)出現(xiàn)的次數(shù).
第四步 定位服務(wù)并把鍋扔過(guò)去
拿到了IP就離目標(biāo)不遠(yuǎn)了, 通過(guò)docker inspect能輸出docker實(shí)例的信息, 其中就包括IP.
$ docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq) | grep 172.18.0.50
/docker_xxxxx-service - 172.18.0.50
$ docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq) | grep 172.18.0.104
/docker_yyyyy-service - 172.18.0.104
tips:
docker inspect: 獲取容器/鏡像的元數(shù)據(jù). --format: 用模板格式化輸出.
至此, 定位到了xxxxx和yyyyy,嗯... 隔壁Py (thon)組的服務(wù). 來(lái), 鍋給你.
如果這篇文章對(duì)您有幫助,請(qǐng)幫忙點(diǎn)贊一下吧 ( ̄▽ ̄)"
當(dāng)前名稱:Redis崩了,我成功把鍋甩給了隔壁組
新聞來(lái)源:http://m.kartarina.com/article26/jeddjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站策劃、外貿(mào)建站、網(wǎng)站改版、標(biāo)簽優(yōu)化、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)