<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    聶永的博客

    記錄工作/學習的點點滴滴。

    100萬并發連接服務器筆記之測試端就緒

    重新編寫測試端程序

    測試端程序需要增加綁定本機IP和本地端口的功能,以盡可能的向外發出更多的tcp請求。需要對client1.c重構,增加參數傳遞。 下面是client2.c的代碼

    若不指定端口,系統會隨機挑選沒有使用到的端口,可以節省些心力。

    編譯:

    gcc -o client2 client2.c -levent
    

    參數解釋

    • -h 要連接的服務器IP地址
    • -p 要連接的服務器端口
    • -m 本機IP地址需要綁定的隨機端口數量
    • -o 本機所有可用的IP地址列表,注意所有IP地址都應該可用

    運行:

    ./client2 -h 192.168.190.230 -p 8000 -m 64000 -o 192.168.190.134,192.168.190.143,192.168.190.144,192.168.190.145,192.168.190.146,192.168.190.147,192.168.190.148,192.168.190.149,192.168.190.150,192.168.190.151
    

    太長了,每次執行都要粘貼過去,直接放在一個client2.sh文件中,執行就很簡單方便多了。

    #!/bin/sh
    ./client2 -h 192.168.190.230 -p 8000 -m 64000 -o 192.168.190.134,192.168.190.143,192.168.190.144,192.168.190.145,192.168.190.146,192.168.190.147,192.168.190.148,192.168.190.149,192.168.190.150,192.168.190.151
    

    保存,賦值可運行:

    chmod +x client2.sh
    

    啟動測試:

    sh client2.sh
    

    第三個遇到的問題:fs.file-max的問題

    測試端程序client2.c在發出的數量大于某個值(大概為40萬時)是,通過dmesg命令查看會得到大量警告信息:

    [warn] socket: Too many open files in system
    

    此時,就需要檢查/proc/sys/fs/file-max參數了。

    查看一下系統對fs.file-max的說明

     /proc/sys/fs/file-max
    This file defines a system-wide limit on the number of open files for all processes. (See also setrlimit(2), which can be used by a process to set the per-process limit,
    RLIMIT_NOFILE, on the number of files it may open.) If you get lots of error messages about running out of file handles, try increasing this value:
    echo 100000 > /proc/sys/fs/file-max
    The kernel constant NR_OPEN imposes an upper limit on the value that may be placed in file-max.
    If you increase /proc/sys/fs/file-max, be sure to increase /proc/sys/fs/inode-max to 3-4 times the new value of /proc/sys/fs/file-max, or you will run out of inodes.
    

    file-max表示系統所有進程最多允許同時打開所有的文件句柄數,系統級硬限制。Linux系統在啟動時根據系統硬件資源狀況計算出來的最佳的最大同時打開文件數限制,如果沒有特殊需要,不用修改,除非打開的文件句柄數超過此值。

    在為測試機分配4G內存時,對應的fs.file-max值為386562,很顯然打開的文件句柄很受限,38萬個左右。 很顯然,無論是測試端還是服務端,都應該將此值調大些,一定要大于等于/etc/security/limits.conf送所設置的soft nofile和soft nofile值。
    注意ulimit -n,僅僅設置當前shell以及由它啟動的進程的資源限制。

    備注:以上參數,具有包含和被包含的關系。

    當前會話修改,可以這么做:

    echo 1048576 > /proc/sys/fs/file-max
    

    但系統重啟后消失。

    永久修改,要添加到 /etc/sysctl.conf 文件中:

    fs.file-max = 1048576
    

    保存并使之生效:

    sysctl -p
    

    再測,就不會出現此問題了。

    一臺6G內存機器測試機,分配7個網卡,可以做到不占用虛擬內存,對外發出64000 * 7 = 448000個對外持久請求。要完成100萬的持久連接,還得再想辦法。

    最終測試端組成如下:

    • 兩臺物理機器各自一個網卡,每個發出64000個請求
    • 兩個6G左右的centos測試端機器(綁定7個橋接或NAT連接)各自發出64000*7 = 448000請求
    • 共使用了16個網卡(物理網卡+虛擬網卡)
    • 1M ≈ 1024K ≈ 1024000 = (64000) + (64000) + (64000*7) + (64000*7)
    • 共耗費16G內存,16個網卡(物理+虛擬),四臺測試機

    備注:
    下面就要完成1M持久連接的目標,但在服務端還會遇到最后一個問題。

    posted on 2013-04-10 11:07 nieyong 閱讀(7256) 評論(2)  編輯  收藏 所屬分類: C1M

    評論

    # re: 100萬并發連接服務器筆記之測試端就緒 2014-02-14 17:45 wgf

    ?兩臺物理機器各自一個網卡,每個發出64000個請求
    ?兩個6G左右的centos測試端機器(綁定7個橋接或NAT連接)各自發出64000*7 = 448000請求
    ?共使用了16個網卡(物理網卡+虛擬網卡)
    ?1M ≈ 1024K ≈ 1024000 = (64000) + (64000) + (64000*7) + (64000*7)
    ?共耗費16G內存,16個網卡(物理+虛擬),四臺測試機

    請問你這里的意思是兩臺物理機,各自啟動7個虛擬機,每個虛擬機綁定一個ip嗎  回復  更多評論   

    # re: 100萬并發連接服務器筆記之測試端就緒 2014-02-20 09:55 西嶺風清

    @wgf
    博主說的虛擬網卡是通過ifconfig命令加出來的,多個虛擬網卡和物理網卡是同一個硬件,mac地址是一樣的。  回復  更多評論   

    公告

    所有文章皆為原創,若轉載請標明出處,謝謝~

    新浪微博,歡迎關注:

    導航

    <2013年4月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    統計

    常用鏈接

    留言簿(58)

    隨筆分類(130)

    隨筆檔案(151)

    個人收藏

    最新隨筆

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩成人免费视频| 最近2019中文字幕免费直播| 嫩草视频在线免费观看| 亚洲熟妇av一区二区三区下载| 精精国产www视频在线观看免费| 亚洲国产a级视频| 一级做α爱过程免费视频| 亚洲高清偷拍一区二区三区| 一级毛片在线播放免费| 最新精品亚洲成a人在线观看| 久久www免费人成精品香蕉| 亚洲精品乱码久久久久久中文字幕| 久青草视频97国内免费影视| 久久精品国产亚洲沈樵| 久久精品一本到99热免费| 亚洲国产成人超福利久久精品| 男女超爽刺激视频免费播放| 久久亚洲精品11p| 亚洲精品岛国片在线观看| 两个人看的www高清免费观看| 久久精品国产亚洲香蕉| 亚洲视频在线免费看| 亚洲精品9999久久久久无码 | 日韩成人精品日本亚洲| 国产公开免费人成视频| WWW国产成人免费观看视频| 久久精品国产亚洲精品2020| 色婷婷7777免费视频在线观看| 精品国产亚洲第一区二区三区| 国产成人亚洲精品影院| 99视频在线精品免费| 亚洲乱色伦图片区小说| 国产亚洲一区区二区在线| 全部免费毛片在线播放| 亚洲国产一区二区三区在线观看| 激情综合色五月丁香六月亚洲| 1000部拍拍拍18免费网站| 四虎一区二区成人免费影院网址| 亚洲人成网站影音先锋播放| 国产一区二区免费在线| 2021在线永久免费视频|