<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)

    個人收藏

    最新隨筆

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: a级毛片在线免费| 成人免费无遮挡无码黄漫视频| 久久精品国产亚洲AV嫖农村妇女| 国产成人无码免费看视频软件| 国产精品亚洲va在线观看| 亚洲婷婷五月综合狠狠爱| 2021免费日韩视频网| 一区二区三区精品高清视频免费在线播放 | 国产在线a不卡免费视频| jyzzjyzz国产免费观看| 亚洲成人黄色网址| 亚洲成人一区二区| 成人免费的性色视频| 一区在线免费观看| 中文无码亚洲精品字幕| 亚洲AV无码一区二区乱子伦| 亚洲人成电影网站免费| 免费无码作爱视频| 国产亚洲精品美女2020久久| 亚洲美女中文字幕| 亚洲人成中文字幕在线观看| 全免费一级毛片在线播放| 日韩在线永久免费播放| 羞羞视频免费网站日本| 国产成人精品日本亚洲直接| 亚洲产国偷V产偷V自拍色戒 | 亚洲国产av美女网站| 国产亚洲日韩在线三区| 日韩免费视频在线观看| 欧洲一级毛片免费| 拍拍拍无挡免费视频网站| 免费人妻精品一区二区三区| 中文字幕无码亚洲欧洲日韩| 亚洲日本精品一区二区| 亚洲欧洲美洲无码精品VA| 国产美女被遭强高潮免费网站| 色播精品免费小视频| 亚洲视频免费在线观看| a级毛片毛片免费观看久潮喷| 免费VA在线观看无码| 亚洲av无码成人精品区一本二本 |