日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

服务器问题记录

發布時間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 服务器问题记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

  • ?頁面請求,不定時無響應

現象:前端頁面,有時會打不開;有時個別請求無返回信息;f12 查看請求,提示“no-referrer-when-downgrade”

分析過程:

1、查看請求對應的服務端是否正常(查看服務器日志),發現服務端對于請求可以正常響應;從前端來看,同一個請求,有時有返回信息,有時無返回信息

2、查看nginx access 日志,發現部分請求返回http 499;同一個uri,有返回http 200 和http 499

3、查看nginx upstream 配置,發現配置中存在一個無效的服務端地址

結論:

nginx 不會檢測upstream 中配置的服務器是否有效,當配置了無效的服務端地址時,請求通過nginx 轉發到該無效的服務器時,就會造成請求不可用,nginx 會將該請求的響應封裝為 http 499

  • dubbo 提示線程池已滿

現象:dubbo 提示線程池已滿;前端顯示服務不穩定

分析過程:

1、查看dubbo 服務日志,日志僅顯示線程池已滿

2、查看服務對應的 error 日志,發現zookeeper 分布式鎖有時會釋放失敗,然后去查看zookeeper 日志,未發現異常

3、阿里云監控報警,數據庫CPU 占比超過90%

結論:

查詢某列表未使用緩存,導致大量請求(每分鐘5W次左右)在短時間內訪問數據庫(本身查詢速度沒問題,但是請求量太大),造成數據庫瓶頸,并對正常的寫業務造成影響,大量對于數據庫的訪問,都在排隊,造成響應時間過長,dubbo服務線程池壓滿

解決方案:

1、按需對查詢增加 redis 緩存,JVM 緩存,nginx 緩存

2、對數據庫進行讀寫分離處理,防止下一次大量請求導致的數據庫瓶頸問題

  • HttpClient 多線程異常

現象:

java.lang.IllegalStateException: Invalid use of BasicClientConnManager: connection still allocated.
Make sure to release the connection before allocating another one.

原因:多線程狀態下,公用一個HttpClient對象,一個請求未結束,再次發起新的請求,就會報這個錯

解決方法:

1、低版本的HttpClient,可以使用 ThreadSafeClientConnManager 來代替?BasicClientConnManager

ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager();
cm.setMaxTotal(20);
HttpClient client = new DefaultHttpClient(cm, httpParams);

2、高版本的HttpClient,可以使用?PoolingHttpClientConnectionManager

PoolingHttpClientConnectionManager pcm = new PoolingHttpClientConnectionManager();
pcm.setMaxTotal(20);
CloseableHttpClient client = HttpClients.custom().setConnectionManager(pcm).build();

  • MySql 存儲空間清理

數據文件的清理:使用 truncate table_name 來清理數據量多的表

使用delete 的話,不會釋放磁盤空間,需要使用:optimize table tab_name 來釋放。

注意:optimize 會鎖表,應在空閑時期進行處理

select sum(data_length + index_length + data_free) / 1024 / 1024 from information_schema.tables;

查詢數據文件所占空間

  • 挖礦病毒?minerd

解決方案:

挖礦病毒偽裝為 ntp 進程,但正常的ntp進程名為ntpd

rm -rf /var/spool/cron/crontabs
rm -rf ~/.ssh/KHK75NEOiq
rm -rf /opt/KHK75NEOiq33
rm -rf /opt/*
rm -rf /etc/init.d/ntp
rm -rf /usr/sbin/ntp
rm -rf /usr/local/etc
pkill minerd
kill -9 (/usr/sbin/ntp的進程號)

  • java 進程CPU和內存分析

1、top 命令查看cpu和內存占用較大的進程pid

2、根據進程pid,查看內部線程占用cpu情況

ps -mp 1316 -o THREAD,tid,time | sort -rn | less

(sort -rn 以數值的方式進行逆序排列)

3、找出占用cpu比較高的TID,需要將TID轉換為十六進制,例如:printf "%x\n" 1731,結果 6c3

4、使用 jstack 1316 查看具體對應的線程

5、使用?jstat -gcutil 1316 1000 100 查看jvm內存和gc情況

  • zookeeper 數據清理

./bin/zkCleanup.sh -n 50? 使用 zookeeper 自帶的清理腳本,可清理 log 和 snapshot,-n 50 是指保留50個文件(注意:是log和snapshot各保留50個的意思)

zookeeper 版本在3.4 以上的,也可以在配置中配置自動清理(zoo.cfg):

autopurge.snapRetainCount=50? ? # 保留50個

autopurge.purgeInterval=72? ? # 自動清理間隔,單位:小時

?

?

轉載于:https://my.oschina.net/u/2347047/blog/1619603

總結

以上是生活随笔為你收集整理的服务器问题记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。