• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 軟件開發(fā)中常見的十大系統(tǒng)瓶頸

        時間:2024-08-30 12:02:55 J2EE培訓 我要投稿
        • 相關(guān)推薦

        軟件開發(fā)中常見的十大系統(tǒng)瓶頸

          件開發(fā)常見的20個傳統(tǒng)的系統(tǒng)瓶頸,這聽起來像是說有20個故事情節(jié),并且依賴于你如何策劃這些故事,或許都是真的,但唯有實踐才知道它們帶給我們的酸甜苦辣。下面是小編整理的關(guān)于軟件開發(fā)中常見的十大系統(tǒng)瓶頸,希望可以幫助大家!

          Russell說:“我真希望在年輕時看到這樣的一份列表”。伴隨著經(jīng)驗的增長、項目的增多、解決各種不同類型的問題和不斷總結(jié)各種經(jīng)驗教訓,你會在這份列表上添加更多的東西。所以,當你在閱讀該份列表時就像是在回顧一個個故事片段。

          數(shù)據(jù)庫

          工作任務內(nèi)存超過可用的RAM內(nèi)存

          長/短查詢

          寫入沖突

          大連接(join)占用內(nèi)存

          虛擬化

          共享一個HDD、磁盤尋死(disk seek death)

          在云端網(wǎng)絡I/O波動

          編程

          線程:死鎖、調(diào)試、非線性擴展等

          事件驅(qū)動編程:callback()過于復雜、如何在函數(shù)調(diào)用中存儲有狀態(tài)等

          缺乏調(diào)優(yōu)、跟蹤、日志等

          單模塊不可擴展、單點故障(SPOF:Single Point Of Failure)、非橫向擴展等

          有狀態(tài)應用程序

          設計問題:開發(fā)的應用程序只在自己的機器行運行正常,或者只是在幾個人測試的時候正常(沒有經(jīng)歷壓力測試)。

          算法過于復雜

          相關(guān)服務,例如DNS查找以及其他可能屏蔽的服務

          堆棧空間

          磁盤

          訪問本地磁盤

          隨機訪問磁盤I/O

          磁盤碎片

          當SSD寫入的數(shù)據(jù)大于SSD容量時,性能會下降

          OS

          Fsync飽和,Linux緩沖區(qū)填塞(Fsync flushing, linux buffer cache filling up)

          TCP緩沖區(qū)太小

          文件描述符限制

          功率分配(Power budget)

          緩存

          沒使用memcached(數(shù)據(jù)庫崩潰)

          HTTP中:headers、etags、沒有使用gzip壓縮等。

          沒有充分利用瀏覽器緩存

          字節(jié)碼緩存(如PHP)

          L1/L2緩存:這是個令人頭疼的大瓶頸。把關(guān)鍵并且經(jīng)常訪問的數(shù)據(jù)存儲在L1/L2中。這涉及到很多:snappy網(wǎng)絡I/O,列數(shù)據(jù)庫直接在壓縮數(shù)據(jù)上運行算法等。利用一些技術(shù)不銷毀你的TLB。最重要的思想是緊緊的抓住計算機的體系結(jié)構(gòu),涉及多核CPU,L1/L2,共享的L3,NUMA RAM,從DRAM到芯片數(shù)據(jù)傳輸帶寬/延遲,DRAM緩存的DiskPages,DirtyPages,流經(jīng)CPU<->DRAM<->NIC的TCP包。

          CPU

          CPU過載

          內(nèi)容切換—>單核上開啟的線程過多、Linux調(diào)度器、系統(tǒng)調(diào)用太多等

          IO等待—>所有的CPU在同速等待

          CPU緩存:緩存數(shù)據(jù)是一個細粒度進程,為了在多個實例與不同的值數(shù)據(jù)之間找到正確的平衡,來保持緩存數(shù)據(jù)的一致性和繁重同步。

          底板吞吐量(Backplane throughput)

          網(wǎng)絡

          NIC刷爆、IRQ飽和、軟中斷占用掉了100%CPU

          DNS查詢

          數(shù)據(jù)包丟失

          網(wǎng)絡中存在預期外的路由

          訪問網(wǎng)絡磁盤

          共享SAN

          服務器故障—>無法從服務處得到響應

          進程

          測試時間

          開發(fā)時間

          團隊規(guī)模

          預算

          代碼債務

          內(nèi)存

          內(nèi)存不足—>殺死進程,切換到swap,掛起

          內(nèi)存不足導致磁盤交換(與swap相關(guān))

          記憶庫開銷過大(Memory library overhead)

          內(nèi)存分片(在Java中需要會因為內(nèi)存回收而停頓;在C中,malloc總是開始分配內(nèi)存)

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【軟件開發(fā)中常見的十大系統(tǒng)瓶頸】相關(guān)文章:

        英文寫作中的最常見十大句式09-26

        常見系統(tǒng)進程大全07-26

        2017中考英語寫作十大常見錯誤分析08-30

        十大常見化妝誤區(qū)07-13

        速錄練習過程中怎么突破瓶頸01-23

        遠離十大常見化妝誤區(qū)07-14

        網(wǎng)絡營銷常見的十大誤區(qū)01-21

        十大最常見高爾夫規(guī)則誤區(qū)07-28

        中考英語十大常見寫作話題06-14

        聲樂學習中的常見誤區(qū)10-17

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 在线亚洲欧美日韩精品专区 | 日韩视频中文字幕在线一区 | 六月婷婷最新中文字幕网站 | 日本中文字幕aⅴ精品看片 亚洲国产精品不卡Av在线 | 亚洲国产综合在线一区 | 中文亚洲国产片在线观看 |

            軟件開發(fā)中常見的十大系統(tǒng)瓶頸

              件開發(fā)常見的20個傳統(tǒng)的系統(tǒng)瓶頸,這聽起來像是說有20個故事情節(jié),并且依賴于你如何策劃這些故事,或許都是真的,但唯有實踐才知道它們帶給我們的酸甜苦辣。下面是小編整理的關(guān)于軟件開發(fā)中常見的十大系統(tǒng)瓶頸,希望可以幫助大家!

              Russell說:“我真希望在年輕時看到這樣的一份列表”。伴隨著經(jīng)驗的增長、項目的增多、解決各種不同類型的問題和不斷總結(jié)各種經(jīng)驗教訓,你會在這份列表上添加更多的東西。所以,當你在閱讀該份列表時就像是在回顧一個個故事片段。

              數(shù)據(jù)庫

              工作任務內(nèi)存超過可用的RAM內(nèi)存

              長/短查詢

              寫入沖突

              大連接(join)占用內(nèi)存

              虛擬化

              共享一個HDD、磁盤尋死(disk seek death)

              在云端網(wǎng)絡I/O波動

              編程

              線程:死鎖、調(diào)試、非線性擴展等

              事件驅(qū)動編程:callback()過于復雜、如何在函數(shù)調(diào)用中存儲有狀態(tài)等

              缺乏調(diào)優(yōu)、跟蹤、日志等

              單模塊不可擴展、單點故障(SPOF:Single Point Of Failure)、非橫向擴展等

              有狀態(tài)應用程序

              設計問題:開發(fā)的應用程序只在自己的機器行運行正常,或者只是在幾個人測試的時候正常(沒有經(jīng)歷壓力測試)。

              算法過于復雜

              相關(guān)服務,例如DNS查找以及其他可能屏蔽的服務

              堆棧空間

              磁盤

              訪問本地磁盤

              隨機訪問磁盤I/O

              磁盤碎片

              當SSD寫入的數(shù)據(jù)大于SSD容量時,性能會下降

              OS

              Fsync飽和,Linux緩沖區(qū)填塞(Fsync flushing, linux buffer cache filling up)

              TCP緩沖區(qū)太小

              文件描述符限制

              功率分配(Power budget)

              緩存

              沒使用memcached(數(shù)據(jù)庫崩潰)

              HTTP中:headers、etags、沒有使用gzip壓縮等。

              沒有充分利用瀏覽器緩存

              字節(jié)碼緩存(如PHP)

              L1/L2緩存:這是個令人頭疼的大瓶頸。把關(guān)鍵并且經(jīng)常訪問的數(shù)據(jù)存儲在L1/L2中。這涉及到很多:snappy網(wǎng)絡I/O,列數(shù)據(jù)庫直接在壓縮數(shù)據(jù)上運行算法等。利用一些技術(shù)不銷毀你的TLB。最重要的思想是緊緊的抓住計算機的體系結(jié)構(gòu),涉及多核CPU,L1/L2,共享的L3,NUMA RAM,從DRAM到芯片數(shù)據(jù)傳輸帶寬/延遲,DRAM緩存的DiskPages,DirtyPages,流經(jīng)CPU<->DRAM<->NIC的TCP包。

              CPU

              CPU過載

              內(nèi)容切換—>單核上開啟的線程過多、Linux調(diào)度器、系統(tǒng)調(diào)用太多等

              IO等待—>所有的CPU在同速等待

              CPU緩存:緩存數(shù)據(jù)是一個細粒度進程,為了在多個實例與不同的值數(shù)據(jù)之間找到正確的平衡,來保持緩存數(shù)據(jù)的一致性和繁重同步。

              底板吞吐量(Backplane throughput)

              網(wǎng)絡

              NIC刷爆、IRQ飽和、軟中斷占用掉了100%CPU

              DNS查詢

              數(shù)據(jù)包丟失

              網(wǎng)絡中存在預期外的路由

              訪問網(wǎng)絡磁盤

              共享SAN

              服務器故障—>無法從服務處得到響應

              進程

              測試時間

              開發(fā)時間

              團隊規(guī)模

              預算

              代碼債務

              內(nèi)存

              內(nèi)存不足—>殺死進程,切換到swap,掛起

              內(nèi)存不足導致磁盤交換(與swap相關(guān))

              記憶庫開銷過大(Memory library overhead)

              內(nèi)存分片(在Java中需要會因為內(nèi)存回收而停頓;在C中,malloc總是開始分配內(nèi)存)