久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

linux高并發的概念是什么

185次閱讀
沒有評論

共計 2532 個字符,預計需要花費 7 分鐘才能閱讀完成。

本文丸趣 TV 小編為大家詳細介紹“linux 高并發的概念是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“linux 高并發的概念是什么”文章能幫助大家解決疑惑,下面跟著丸趣 TV 小編的思路慢慢深入,一起來學習新知識吧。

在 linux 中,高并發是系統運行過程中遇到的一種“短時間內遇到大量操作請求”的情況,主要發生在 web 系統集中大量訪問收到大量請求;該情況的發生會導致系統在這段時間內執行大量操作,例如對資源的請求,數據庫的操作等。

一 高并發概念 1.1 高并發概念

高并發(High Concurrency)是互聯網分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時并行處理很多請求。

高并發(High Concurrency)是一種系統運行過程中遇到的一種“短時間內遇到大量操作請求”的情況,主要發生在 web 系統集中大量訪問收到大量請求(例如:12306 的搶票情況;天貓雙十一活動)。該情況的發生會導致系統在這段時間內執行大量操作,例如對資源的請求,數據庫的操作等。

1.2 高并發相關指標

響應時間 (Response Time)

系統對請求做出響應的時間。例如系統處理一個 HTTP 請求需要 200ms,這個 200ms 就是系統的響應時間

吞吐量 (Throughput)

單位時間內處理的請求數量

每秒查詢率 QPS(Query Per Second)

每秒響應請求數。在互聯網領域,這個指標和吞吐量區分的沒有這么明顯

并發用戶數 (User Concurrence)

同時承載正常使用系統功能的用戶數量。例如一個即時通訊系統,同時在線量一定程度上代表了系統的并發用戶數

1.3 高并發優化方面

單進程最大打開文件數限制

內核 TCP 參數方面

IO 事件分配機制

二 提升系統的并發能力 2.1 垂直擴展

提升單機處理能力

增強單機硬件性能,例如:增加 CPU 核數如 32 核,升級更好的網卡如萬兆,升級更好的硬盤如 SSD,擴充硬盤容量如 2T,擴充系統內存如 128G

提升單機架構性能,例如:使用 Cache 來減少 IO 次數,使用異步來增加單服務吞吐量,使用無鎖數據結構來減少響應時間

2.2 水平擴展

增加服務器數量,就能線性擴充系統性能

2.3 常見互聯網分層架構

(1)客戶端層:典型調用方是瀏覽器 browser 或者手機應用 APP

(2)反向代理層:系統入口,反向代理

(3)站點應用層:實現核心應用邏輯,返回 html 或者 json

(4)服務層:如果實現了服務化,就有這一層

(5)數據 - 緩存層:緩存加速訪問存儲

(6)數據 - 數據庫層:數據庫固化數據存儲

2.4 水平擴展架構

反向代理層的水平擴展

當 nginx 成為瓶頸的時候,只要增加服務器數量,新增 nginx 服務的部署,增加一個外網 ip,就能擴展反向代理層的性能,做到理論上的無限高并發

通過“DNS 輪詢”實現的:dns-server 對于一個域名配置了多個解析 ip,每次 DNS 解析請求來訪問 dns-server,會輪詢返回這些 ip

站點層的水平擴展

通過“nginx”實現的。通過修改 nginx.conf,可以設置多個 web 后端

當 web 后端成為瓶頸的時候,只要增加服務器數量,新增 web 服務的部署,在 nginx 配置中配置上新的 web 后端,就能擴展站點層的性能,做到理論上的無限高并發

服務層的水平擴展

通過“服務連接池”實現的

站點層通過 RPC-client 調用下游的服務層 RPC-server 時,RPC-client 中的連接池會建立與下游服務多個連接,當服務成為瓶頸的時候,只要增加服務器數量,新增服務部署,在 RPC-client 處建立新的下游服務連接,就能擴展服務層性能,做到理論上的無限高并發

數據層的水平擴展

user0 庫,存儲偶數 uid 數據

user1 庫,存儲奇數 uid 數據

user0 庫,存儲 uid 范圍 1 -1kw

user1 庫,存儲 uid 范圍 1kw-2kw

數據層(緩存,數據庫)涉及數據的水平擴展,將原本存儲在一臺服務器上的數據(緩存,數據庫)水平拆分到不同服務器上去,以達到擴充系統性能的目的。

存儲一定范圍的數據

按照哈希水平拆分

三 單臺 Linux 服務器提升并發 3.1 iptables 相關

關閉 iptables 防火墻,阻止 kernel 加載 iptables 模塊

單進程最大打開文件數限制(默認單個進程最大打開 1024 個文件)

ulimit –n 65535

修改 Linux 系統對用戶的打開文件數的軟限制和硬限制

vim /etc/security/limits.conf
* soft nofile 65535   # * 表示修改所有用戶的限制
* hard nofile 65535

# 用戶完成系統登錄后讀取 /etc/security/limits.conf 文件 
vim /etc/pam.d/login
sessionrequired /lib/security/pam_limits.so

3.2 內核 TCP 參數

TIME_WAIT 狀態

TCP 連接斷開后,會以 TIME_WAIT 狀態保留一定的時間,然后才會釋放端口。當并發請求過多的時候,就會產生大量的 TIME_WAIT 狀態的連接,無法及時斷開的話,會占用大量的端口資源和服務器資源

# 查看 TIME_WAIT 狀態連接
netstat -n | grep tcp | grep TIME_WAIT |wc -l
# vim /etc/sysctl.conf
net.ipv4.tcp_syncookies= 1 # 表示開啟 SYNCookies。當出現 SYN 等待隊列溢出時,啟用 cookies 來處理,可防范少量 SYN 攻擊,默認為 0,表示關閉;net.ipv4.tcp_tw_reuse= 1 # 表示開啟重用。允許將 TIME-WAITsockets 重新用于新的 TCP 連接,默認為 0,表示關閉;net.ipv4.tcp_tw_recycle= 1 # 表示開啟 TCP 連接中 TIME-WAITsockets 的快速回收,默認為 0,表示關閉;net.ipv4.tcp_fin_timeout= 30 # 修改系統默認的 TIMEOUT  時間。

讀到這里,這篇“linux 高并發的概念是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-13發表,共計2532字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 房山区| 响水县| 岚皋县| 泰来县| 黄平县| 阳原县| 白银市| 安国市| 道孚县| 宜良县| 宜川县| 福建省| 平武县| 兴安盟| 临城县| 广元市| 博罗县| 霞浦县| 黔江区| 涡阳县| 阳东县| 郸城县| 扎囊县| 宁远县| 德江县| 武邑县| 凤冈县| 子洲县| 舒城县| 芦山县| 鄂托克前旗| 绍兴市| 仁布县| 夹江县| 昆山市| 蒙自县| 根河市| 汉沽区| 宁远县| 梁河县| 丹巴县|