1. 網路中,如果客戶端突然掉線或者重啟,伺服器端怎麼樣才能立刻知道
1、connect方法會阻塞,請問有什麼方法可以避免其長時間阻塞? 答:最通常的方法最有效的是加定時器;也可以採用非阻塞模式。 2、網路中,如果客戶端突然掉線或者重啟,伺服器端怎麼樣才能立刻知道? 答:若客戶端掉線或者重新啟動,伺服器端會收到復位信號,每一種tcp/ip得實現不一樣,控制機制也不一樣。 3.在子網 />答: 簡: 30表示的是網路號(network number)是30位,剩下2位中11是廣播(broadcast)地址,00是multicast地址,只有01和10可以作為host address。 詳: />代表的子網的網路號是30位,即網路號是 & =,此子網的地址空間是2位,即可以有4個地址:, , , 。第一個地址的主機號(host number/id)是0,而主機號0代表的是multicast地址。最後一個地址的最後兩位是11,主機號每一位都為1代表的是廣播 (broadcast)地址。所以只有中間兩個地址可以給host使用。其實那個問題本身不準確,廣播或multicast地止也是可以使用的地址,所以 回答4也應該正確,當然問的人也可能是想要你回答2。我個人覺得最好的回答是一個廣播地址,一個multicast地址,2個unicast地址。 是什麼?有什麼用處,通常那些工具會用到它?(ping? traceroute? ifconfig? netstat?) 答: 簡:TTL是Time To Live,一般是hup count,每經過一個路由就會被減去一,如果它變成0,包會被丟掉。它的主要目的是防止包在有迴路的網路上死轉,浪費網路資源。ping和traceroute用到它。 詳: TTL是Time To Live,目前是hup count,當包每經過一個路由器它就會被減去一,如果它變成0,路由器就會把包丟掉。IP網路往往帶有環(loop),比如子網A和子網B有兩個路由器 相連,它就是一個loop。TTL的主要目的是防止包在有迴路的網路上死轉,因為包的TTL最終後變成0而使得此包從網上消失(此時往往路由器會送一個 ICMP包回來,traceroute就是根據這個做的)。ping會送包出去,所以裡面有它,但是ping不一定非要不可它。traceroute則是 完全因為有它才能成的。ifconfig是用來配置網卡的,netstat -rn 是用來列路由表的,所以都用不著它 5.路由表示做什麼用的?在linux環境中怎麼來配置一條默認路由? 答: 簡:路由表是用來決定如何將包從一個子網傳送到另一個子網的,換局話說就是用來決定從一個網卡接收到的包應該送的哪一張網卡上的。在Linux上可以用「route add default gw 」來配置一條默認路由。 詳: 路由表是用來決定如何將包從一個子網傳送到另一個子網的,換局話說就是用來決定從一個網卡接收到的包應該送的哪一張網卡上的。路由表的每一行至少有目標網 絡號、netmask、到這個子網應該使用的網卡。當路由器從一個網卡接收到一個包時,它掃描路由表的每一行,用裡面的netmask和包里的目標IP地 址做並邏輯運算(&)找出目標網路號,如果此網路號和這一行里的網路號相同就將這條路由保留下來做為備用路由,如果已經有備用路由了就在這兩條路 由里將網路號最長的留下來,另一條丟掉,如此接著掃描下一行直到結束。如果掃描結束任沒有找到任何路由,就用默認路由。確定路由後,直接將包送到對應的網 卡上去。在具體的實現中,路由表可能包含更多的信息為選路由演算法的細節所用。題外話:路由演算法其實效率很差,而且不scalable,解決辦法是使用IP 交換機,比如MPLS。 在Linux上可以用「route add default gw 」來配置一條默認路由。 6.在網路中有兩台主機A和B,並通過路由器和其他交換設備連接起來,已經確認物理連接正確無誤,怎麼來測試這兩台機器是否連通?如果不通,怎麼來判斷故障點?怎麼排除故障? 答:測試這兩台機器是否連通:從一台機器ping另一台機器 如果ping不通,用traceroute可以確定是哪個路由器不能連通,然後再找問題是在交換設備/hup/cable等。 7.網路編程中設計並發伺服器,使用多進程 與 多線程 ,請問有什麼區別? 答案一: 1,進程:子進程是父進程的復製品。子進程獲得父進程數據空間、堆和棧的復製品。 2,線程:相對與進程而言,線程是一個更加接近與執行體的概念,它可以與同進程的其他線程共享數據,但擁有自己的棧空間,擁有獨立的執行序列。 兩者都可以提高程序的並發度,提高程序運行效率和響應時間。 線程和進程在使用上各有優缺點:線程執行開銷小,但不利於資源管理和保護;而進程正相反。同時,線程適合於在SMP機器上運行,而進程則可以跨機器遷移。 答案二: 根本區別就一點:用多進程每個進程有自己的地址空間(address space),線程則共享地址空間。所有其它區別都是由此而來的: 1。速度:線程產生的速度快,線程間的通訊快、切換快等,因為他們在同一個地址空間內。 2。資源利用率:線程的資源利用率比較好也是因為他們在同一個地址空間內。 3。同步問題:線程使用公共變數/內存時需要使用同步機制還是因為他們在同一個地址空間內。
2. centos伺服器意外關機,如何查看關機原因
我的 電腦-右鍵-管理--事件查看器--系統 錯誤信息--描述 查看關機原因
3. 「伺服器掛起」是什麼意思
伺服器掛起:資料庫因為缺少某種資源而阻止伺服器響應服務請求。這種服務請求被稱為伺服器掛起。
伺服器掛起不會表現為伺服器崩潰,但伺服器掛起之後可能會崩潰。例如,由於故障(死鎖)或者大量請求的緣故,可能沒有任何可用的執行線程來完成工作,所有執行線程都被佔用或忙於處理以前的請求。
在出現以下情況時伺服器會掛起:
1.伺服器不響應新的請求。
2.請求超時。
3.請求處理的時間越來越長。
4. 如何防止網站被掛黑鏈接怎麼確定是網站或者伺服器被掛
1,經常查看網站源代碼,這樣有助於及時發現掛在源代碼裡面的黑鏈。
2,使用站長工具經常查看鏈接情況。站長工具能全面,能查看網站所有頁面的鏈接情況。
3,留心網站上傳文件是否被篡改(篡改日期)
4,更換FTP密碼,設置強口令,有些黑鏈接通過不法手段獲取FTP密碼,所以需要更換口令,設置強口令。
——確定網站還是伺服器被掛黑鏈
5,查看同一伺服器下,其他網站是否有黑鏈,當查到其他的某個網站也有被掛黑鏈的時候,這時有可能是伺服器的安全出了問題,排除自身網站漏洞的情況下,要做的就是馬上聯系服務商,讓他詳細做一下伺服器安全策略。
5. 常見伺服器故障類型及排查方法總結
四,伺服器故障排查方法總結
問題描述:
每當出現網站訪問不了的時候,估計應該就是伺服器出現故障了,這個時候大部分情況都是屬於資料庫出現問題。
查找步驟:
1、查找top檢查伺服器負載是否有問題
一般網站訪問不了,top顯示的負載都是很大的,這個時候可以看到mysql的進程佔用資源很高,往往就是mysql發生故障了
2、在伺服器中查看網站的訪問記錄
這些訪問記錄存儲在:/home/對應的網站名/access-logs/對應的網站名
可以先通過tail查看,查看出異常的ip的時候可以通過grep進行過濾查看,在這個文件一般都可以找到惡意爬蟲、惡意訪問的記錄,這些往往有可能是導致mysql資料庫掛掉的原因。
3、這個時候先對資料庫進行重啟,對apache進行重啟
service mysql restart
service httpd restart
重啟之後一般都可以暫時恢復正常的訪問的了。如果是出於惡意訪問的話,找出惡意訪問的ip把它禁止掉即可,如果是網站資料庫出現故障,那麼還要進行資料庫排查。
4、查找資料庫錯誤日誌
首先需要知道資料庫mysql的安裝目錄,可以通過whereis mysql找到,但是這往往沒用
還有一種方法,就是通過ps -ef | grep mysql來查看
或者也可以通過進入mysql,使用select @@basedir as basePath from al來查看mysql安裝目錄
我們在第二種查找方法ps -ef | grep mysql中對應mysql的幾種日誌找到其所在目錄,然後查看對應文件進行分析
mysql有以下幾種日誌
錯誤日誌:-log-err
查詢日誌:-log
慢查詢日誌:-log-slow-queries
更新日誌:-log-update
二進制日誌:-log-bin
以上便是對應的資料庫錯誤日誌和慢查詢日誌的查看方法了
在伺服器的維修中,線索都會顯得撲朔迷離,有的甚至按起葫蘆翹起瓢。一般來說不可能一次就可以准確地判斷出問題的所在。這樣就要求工程師要有信心和耐心。出現錯誤一般的方法都是根據經驗優先使用最簡單排錯方法測試,如果沒有解決問題再找其它因素進行測試。總之,伺服器出錯後必須一步一步解決,沒有捷徑可言。