<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### 進程越多越好? 前面提到多進程的并行可以提高并發度,那么進程是越多越好?一般遇到這種問題都回答不是,事實上,很多大型項目都不會同時開太多進程。 下面以支持100K并發量的Nginx服務器為例。 ### 舉個例子: Nginx Nginx是一個高性能、高并發的Web服務器,也就是說它可以同時處理超過10萬個HTTP請求,而它建議的啟動的進程數不要超過CPU個數,為什么呢? 我們首先要知道Nginx是Master-worker模型,Master進程只負責管理Worker進程,而Worker進程是負責處理真實的請求。每個Worker進程能夠處理的請求數跟內存有關,因為在Linux上Nginx使用了epoll這種多路復用的IO接口,所以不需要多線程做并行也能實現并發。 而多進程有一個壞處就是帶來了CPU上下文切換時間,所以一味提高進程個數反而使系統系能下降。當然如果當前進程小于CPU個數,就沒有充分利用多核的資源,所以Nginx建議Worker數應該等于CPU個數。 ### 特殊情況 我們想想進程數應該等于CPU數,但是如果進程有阻塞呢?這是是應該提高進程數增加并行數的。 在Nginx的例子中,如果Nginx主要負責靜態內容的下載,而服務器內存比較小,大部分文件訪問都需要讀磁盤,這時候進程很容易阻塞,所以建議提高下Worker數目。 ### 綁定CPU 一般情況下除了確保進程數等于CPU數,我們還可以綁定進程與CPU,這就保證了最少的CPU上下文切換。 在Nginx中可以這樣配置。 ~~~ worker_processes 4; worker_cpu_affinity 1000 0100 0010 0001; ~~~ 這是通過系統調用sched_setaffinity()實現了,感興趣大家可以自行學習這方面的知識。 通過這個例子大家對進程的并發與并行應該有更深入的理解,接下來了解下進程狀態的概念。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看