1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 軟件系統開發常見的十大瓶頸

        時間:2024-10-26 04:59:29 J2EE培訓 我要投稿
        • 相關推薦

        軟件系統開發常見的十大瓶頸

          J2EE核心是一組技術規范與指南,其中所包含的各類組件、服務架構及技術層次,均有共同的標準及規格。下面是小編整理的關于軟件系統開發常見的十大瓶頸,歡迎大家參考!

          數據庫

          工作任務內存超過可用的RAM內存

          長/短查詢

          寫入沖突

          大連接(join)占用內存

          虛擬化

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

          在云端網絡I/O波動

          編程

          線程:死鎖、調試、非線性擴展等

          事件驅動編程:callback()過于復雜、如何在函數調用中存儲有狀態等

          缺乏調優、跟蹤、日志等

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

          有狀態應用程序

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

          算法過于復雜

          相關服務,例如DNS查找以及其他可能屏蔽的服務

          堆棧空間

          磁盤

          訪問本地磁盤

          隨機訪問磁盤I/O

          磁盤碎片

          當SSD寫入的數據大于SSD容量時,性能會下降

          OS

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

          TCP緩沖區太小

          文件描述符限制

          功率分配(Power budget)

          緩存

          沒使用memcached(數據庫崩潰)

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

          沒有充分利用瀏覽器緩存

          字節碼緩存(如PHP)

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

          CPU

          CPU過載

          內容切換—>單核上開啟的線程過多、Linux調度器、系統調用太多等

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

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

          底板吞吐量(Backplane throughput)

          網絡

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

          DNS查詢

          數據包丟失

          網絡中存在預期外的路由

          訪問網絡磁盤

          共享SAN

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

          進程

          測試時間

          開發時間

          團隊規模

          預算

          代碼債務

          內存

          內存不足—>殺死進程,切換到swap,掛起

          內存不足導致磁盤交換(與swap相關)

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

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

        【軟件系統開發常見的十大瓶頸】相關文章:

        十大常見化妝誤區07-13

        遠離十大常見化妝誤區07-14

        網絡營銷常見的十大誤區01-21

        十大最常見高爾夫規則誤區07-28

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

        中考英語作文十大常見錯誤分析01-14

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

        注釋嵌入式軟件的十大技巧10-18

        2017職稱英語報名常見十大問題08-30

        馬來西亞留學十大常見問題08-03

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>