{"id":270,"date":"2025-10-10T09:40:06","date_gmt":"2025-10-10T09:40:06","guid":{"rendered":"https:\/\/raidzfscalculator.com\/?page_id=270"},"modified":"2026-03-07T15:07:54","modified_gmt":"2026-03-07T15:07:54","slug":"bottleneck-analyzer","status":"publish","type":"page","link":"https:\/\/raidzfscalculator.com\/en\/bottleneck-analyzer\/","title":{"rendered":"Bottleneck analyzer"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.16&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; parallax__hover=&#8221;off&#8221; parallax_method__hover=&#8221;on&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_divider color=&#8221;#1ca5ff&#8221; divider_weight=&#8221;16px&#8221; _builder_version=&#8221;4.16&#8243; max_width=&#8221;48px&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_divider][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.5&#8243; text_font=&#8221;||||||||&#8221; text_line_height=&#8221;2em&#8221; header_font=&#8221;Poppins|600|||||||&#8221; header_font_size=&#8221;50px&#8221; header_line_height=&#8221;1.3em&#8221; header_font_size_tablet=&#8221;30px&#8221; header_font_size_phone=&#8221;24px&#8221; header_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>Bottleneck analyser<\/h1>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2 data-path-to-node=\"2\"><strong>Determine the Real Speed of Your Server<\/strong><\/h2>\n<p data-path-to-node=\"3\">Every storage system is only as fast as its slowest component. Our <b data-path-to-node=\"3\" data-index-in-node=\"69\">Bottleneck Analyzer<\/b> tool allows you to precisely identify the speed limits of your storage chain, from your RAID arrays to your network interface card (NIC).<\/p>\n<p data-path-to-node=\"4\">Don&#8217;t rely solely on the theoretical throughput of your RAID! The actual data transfer rate (in <b data-path-to-node=\"4\" data-index-in-node=\"96\">MB\/s<\/b> or <b data-path-to-node=\"4\" data-index-in-node=\"104\">Gbps<\/b>) is often throttled by critical elements such as the <b data-path-to-node=\"4\" data-index-in-node=\"162\">PCIe Bus<\/b> or your controller\u2019s bandwidth.<\/p>\n<h3 data-path-to-node=\"5\"><strong>Why Use This Tool?<\/strong><\/h3>\n<ul data-path-to-node=\"6\">\n<li>\n<p data-path-to-node=\"6,0,0\"><b data-path-to-node=\"6,0,0\" data-index-in-node=\"0\">Identify Limitations:<\/b> Determine if performance is being held back by the disks, the RAID controller, the <b data-path-to-node=\"6,0,0\" data-index-in-node=\"105\">PCIe bus<\/b> (generation and lanes), or the <b data-path-to-node=\"6,0,0\" data-index-in-node=\"145\">network<\/b> connection (e.g., 10GbE).<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,1,0\"><b data-path-to-node=\"6,1,0\" data-index-in-node=\"0\">Hardware Optimization:<\/b> Plan your upgrades effectively. If your RAID controller can deliver 8,000 MB\/s, but your <b data-path-to-node=\"6,1,0\" data-index-in-node=\"112\">PCIe 3.0 x8<\/b> link only supports 4,000 MB\/s, you are wasting potential performance and money.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,2,0\"><b data-path-to-node=\"6,2,0\" data-index-in-node=\"0\">Real-World Performance:<\/b> Get a realistic estimate of the maximum throughput your configuration can achieve in a production environment.<\/p>\n<\/li>\n<\/ul>\n<h3 data-path-to-node=\"7\"><strong>How Does the Analysis Work?<\/strong><\/h3>\n<p data-path-to-node=\"8\">Enter the maximum throughput for each of your main components (RAID, Controller, Bus, and Network). Our <b data-path-to-node=\"8\" data-index-in-node=\"106\">bottleneck analyzer<\/b> evaluates the maximum sequential throughput of every link in the chain and reveals which one represents your bottleneck. This ensures you invest in the right components for your infrastructure.<\/p>\n<p data-path-to-node=\"9\">Use this tool before your next upgrade to ensure all components of your infrastructure are correctly sized for the expected performance.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]        <style>\n        \/* Styles CSS pour la coh\u00e9rence *\/\n        .raid-calc{max-width:1200px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}\n        .calc-container{background:#fff;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.1);padding:30px;margin:20px 0}\n        .calc-title{font-size:2.5rem;font-weight:700;color:#1a202c;margin-bottom:20px;text-align:center}\n        .warning{background:linear-gradient(135deg,#fff7ed 0%,#fed7aa 100%);border-left:5px solid #f97316;border-radius:8px;padding:20px;margin-bottom:30px;display:flex;align-items:flex-start;gap:15px}\n        .warning-text{font-size:14px;line-height:1.6;color:#9a3412}\n        .section{margin-bottom:40px}\n        .section h3{font-size:1.5rem;font-weight:600;color:#1e293b;margin-bottom:20px;border-bottom:2px solid #e2e8f0;padding-bottom:10px}\n        .config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:25px;margin-bottom:30px}\n        .input-group{display:flex;flex-direction:column;gap:8px}\n        .input-group label{font-weight:600;color:#374151;font-size:14px}\n        .input-group input,.input-group select{padding:12px 16px;border:2px solid #d1d5db;border-radius:8px;font-size:15px;transition:all .3s ease}\n        .input-group input:focus,.input-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}\n        .action-btn{background:linear-gradient(135deg,#10b981 0%,#059669 100%);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;font-size:15px;margin-top:8px}\n        .action-btn:hover{background:linear-gradient(135deg,#059669 0%,#047857 100%);transform:translateY(-2px);box-shadow:0 4px 12px rgba(16,185,129,.4)}\n        \n        .results{background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);border-radius:12px;padding:30px;border:2px solid #e2e8f0;min-height:200px}\n        .results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:20px}\n        .result-item{text-align:center;background:#fff;padding:20px;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.1)}\n        .result-value{font-size:1.8rem;font-weight:700;margin-bottom:8px}\n        .result-label{font-size:13px;color:#64748b;font-weight:500}\n        .bottleneck-highlight{color:#ef4444; border: 3px solid #f87171; background: #fef2f2;}\n        .highlight-ok{color:#10b981;}\n\n        \/* Styles sp\u00e9cifiques pour le tableau de goulots d'\u00e9tranglement *\/\n        .bottleneck-summary{margin-top:30px; padding:20px; border-radius:10px; background:#f0f9ff; border: 2px solid #0284c7;}\n        .bottleneck-summary h4{font-size:1.2rem; margin-bottom:15px; color:#0284c7;}\n        .bottleneck-summary p{font-size:1.1rem; font-weight:600; color:#1a202c;}\n        .bottleneck-list{display:grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 15px;}\n        .limit-item{padding: 10px; border-radius: 6px; font-size: 14px; font-weight: 500; background: #fff;}\n        .limit-item.limiting{background: #fee2e2; color: #b91c1c; border: 1px solid #fca5a5;}\n\n        @media (max-width:768px){.config-grid{grid-template-columns:1fr}.results-grid{grid-template-columns:1fr}}\n        <\/style>\n\n        <div class=\"raid-calc\">\n            <div class=\"calc-container\">\n                <h1 class=\"calc-title\">Bottleneck Analysis<\/h1>\n                \n                <div class=\"warning\">\n                    <div style=\"font-size:24px;flex-shrink:0\">\ud83d\udea7<\/div>\n                    <div class=\"warning-text\">\n                        Determine the theoretical maximum throughput of your storage system and identify the limiting component.\n                    <\/div>\n                <\/div>\n\n                <div class=\"section\">\n                    <h3>RAID \/ Disks performance<\/h3>\n                    <div class=\"config-grid\">\n                        <div class=\"input-group\">\n                            <label>RAID Sequential Throughput (Mo\/s)<\/label>\n                            <input type=\"number\" id=\"raidThroughput\" placeholder=\"Ex: 5000\" value=\"5000\" min=\"1\">\n                            <small>Debit obtained from your RAID Calculator.<\/small>\n                        <\/div>\n                        <div class=\"input-group\">\n                            <label>IOPS RAID (operations\/s)<\/label>\n                            <input type=\"number\" id=\"raidIOPS\" placeholder=\"Ex: 30000\" value=\"30000\" min=\"1\">\n                            <small>IOPS obtained from your RAID Calculator.<\/small>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                \n                <div class=\"section\">\n                    <h3>Server\/Bus Components<\/h3>\n                    <div class=\"config-grid\">\n                        <div class=\"input-group\">\n                            <label>RAID\/HBA Controller (Mo\/s)<\/label>\n                            <input type=\"number\" id=\"controllerLimit\" placeholder=\"Ex: 6000\" value=\"6000\" min=\"1\">\n                            <small>Maximum rate limit of the controller.<\/small>\n                        <\/div>\n                        <div class=\"input-group\">\n                            <label>PCIe Version<\/label>\n                            <select id=\"pcieVersion\" onchange=\"Calculator.calculateRequired()\">\n                                <option value=\"3\">PCIe 3.0<\/option>\n                                <option value=\"4\" selected>PCIe 4.0<\/option>\n                                <option value=\"5\">PCIe 5.0<\/option>\n                            <\/select>\n                        <\/div>\n                        <div class=\"input-group\">\n                            <label>PCIe Lines (x)<\/label>\n                            <select id=\"pcieLanes\" onchange=\"Calculator.calculateRequired()\">\n                                <option value=\"4\">x4<\/option>\n                                <option value=\"8\" selected>x8<\/option>\n                                <option value=\"16\">x16<\/option>\n                            <\/select>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"section\">\n                    <h3>Network link<\/h3>\n                    <div class=\"config-grid\">\n                        <div class=\"input-group\">\n                            <label>Network (GbE)<\/label>\n                            <select id=\"networkSpeed\" onchange=\"Calculator.calculateRequired()\">\n                                <option value=\"1\">1 GbE<\/option>\n                                <option value=\"10\">10 GbE<\/option>\n                                <option value=\"25\" selected>25 GbE<\/option>\n                                <option value=\"40\">40 GbE<\/option>\n                                <option value=\"100\">100 GbE<\/option>\n                            <\/select>\n                        <\/div>\n                        <div class=\"input-group\">\n                            <label>Conversion Mbits\/s -> Mo\/s<\/label>\n                            <div id=\"networkMoS\" class=\"total-display\">0 Mo\/s<\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                \n                <div class=\"section\">\n                    <button class=\"action-btn\" onclick=\"Calculator.calculateRequired()\">\ud83d\udd0e Analyze the Bottleneck<\/button>\n                <\/div>\n                \n                <div class=\"results\" id=\"bottleneckResults\">\n                    <div id=\"initialMessage\" style=\"text-align:center; padding: 20px; color:#64748b\">\n                        Enter your component specifications and start the analysis.\n                    <\/div>\n                    \n                    <div id=\"calculatedResults\" style=\"display:none\">\n                        <h3>Analysis Results<\/h3>\n                        <div class=\"results-grid\">\n                            <div class=\"result-item\" id=\"bottleneckResult\">\n                                <div class=\"result-value highlight-ok\" id=\"finalThroughput\">0 Mo\/s<\/div>\n                                <div class=\"result-label\">Final Theoretical rate (Mo\/s)<\/div>\n                            <\/div>\n                            <div class=\"result-item\">\n                                <div class=\"result-value\" id=\"finalIOPS\">0<\/div>\n                                <div class=\"result-label\">IOPS Theoretical final<\/div>\n                            <\/div>\n                        <\/div>\n                        \n                        <div class=\"bottleneck-summary\">\n                            <h4>Bottleneck identified<\/h4>\n                            <p id=\"bottleneckComponent\">Analysis not performed.<\/p>\n\n                            <h4 style=\"margin-top:20px;\">Rate Limits of Components (Mo\/s)<\/h4>\n                            <div class=\"bottleneck-list\">\n                                <div id=\"limitRAID\" class=\"limit-item\">RAID: 0 Mo\/s<\/div>\n                                <div id=\"limitController\" class=\"limit-item\">Controler: 0 Mo\/s<\/div>\n                                <div id=\"limitPCIe\" class=\"limit-item\">PCIe: 0 Mo\/s<\/div>\n                                <div id=\"limitNetwork\" class=\"limit-item\">Network: 0 Mo\/s<\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n        <\/div>\n\n        <script>\n        \/\/ ===============================================\n        \/\/ 1. D\u00c9FINITION DE L'INTERFACE UTILISATEUR (UI)\n        \/\/ G\u00e8re les manipulations du DOM et la mise en forme\n        \/\/ ===============================================\n\n        const UI = {\n            \/\/ D\u00e9bits th\u00e9oriques PCIe (Mo\/s par ligne)\n            PCIE_SPEEDS: {\n                '3': 985,  \/\/ PCIe 3.0: 985 MB\/s per lane\n                '4': 1969, \/\/ PCIe 4.0: 1969 MB\/s per lane\n                '5': 3938  \/\/ PCIe 5.0: 3938 MB\/s per lane\n            },\n            \n            \/\/ Constantes\n            BITS_PER_BYTE: 8,\n\n            \/\/ Initialisation de l'UI\n            init: function() {\n                this.bindEvents();\n                this.updateNetworkDisplay();\n                Calculator.calculateRequired();\n            },\n\n            \/\/ Mise \u00e0 jour de l'affichage du r\u00e9seau (Mbit\/s -> Mo\/s)\n            updateNetworkDisplay: function() {\n                const networkSpeedGbE = parseFloat(document.getElementById('networkSpeed').value);\n                const networkSpeedMbps = networkSpeedGbE * 1000;\n                \/\/ D\u00e9bit th\u00e9orique en Mo\/s (Mbps \/ 8 bits par byte)\n                const networkMoS = (networkSpeedMbps \/ this.BITS_PER_BYTE).toFixed(0); \n                document.getElementById('networkMoS').textContent = networkMoS + ' Mo\/s';\n                return parseInt(networkMoS);\n            },\n            \n            \/\/ Liaison des \u00e9v\u00e9nements de l'UI aux fonctions de calcul\n            bindEvents: function() {\n                \/\/ D\u00e9clencher le calcul \u00e0 chaque changement sur les entr\u00e9es principales\n                ['raidThroughput', 'raidIOPS', 'controllerLimit', 'pcieVersion', 'pcieLanes', 'networkSpeed'].forEach(id => {\n                    document.getElementById(id).addEventListener('input', () => {\n                        this.updateNetworkDisplay();\n                        Calculator.calculateRequired();\n                    });\n                });\n            }\n        };\n\n\n        \/\/ ===============================================\n        \/\/ 2. LOGIQUE DE CALCUL (Calculator)\n        \/\/ G\u00e8re les algorithmes et la manipulation des donn\u00e9es\n        \/\/ ===============================================\n\n        const Calculator = {\n            \n            \/\/ D\u00e9termine le d\u00e9bit maximal PCIe\n            getPCIeThroughput: function() {\n                const pcieVersion = document.getElementById('pcieVersion').value;\n                const pcieLanes = parseInt(document.getElementById('pcieLanes').value);\n                \n                const speedPerLane = UI.PCIE_SPEEDS[pcieVersion];\n                \/\/ D\u00e9bit total th\u00e9orique (Mo\/s)\n                return speedPerLane * pcieLanes;\n            },\n\n            \/\/ D\u00e9termine le goulot d'\u00e9tranglement\n            getBottleneck: function(limitsMoS) {\n                \/\/ Trouver la limite minimale\n                const minLimit = Math.min(...Object.values(limitsMoS));\n\n                \/\/ Identifier le composant limitant\n                let bottleneck = { component: '', limit: minLimit, name: '' };\n                const components = {\n                    raid: 'RAID performance \/ Disks',\n                    controller: 'Controler RAID\/HBA',\n                    pcie: 'Bus PCIe',\n                    network: 'Network link'\n                };\n\n                for (const [key, value] of Object.entries(limitsMoS)) {\n                    if (value === minLimit) {\n                        bottleneck.component = key;\n                        bottleneck.name = components[key];\n                        \/\/ Arr\u00eater \u00e0 la premi\u00e8re correspondance trouv\u00e9e\n                        break; \n                    }\n                }\n                \n                return bottleneck;\n            },\n\n            \/\/ Calcul principal\n            calculateRequired: function() {\n                const raidThroughput = parseFloat(document.getElementById('raidThroughput').value || 0);\n                const controllerLimit = parseFloat(document.getElementById('controllerLimit').value || 0);\n                const raidIOPS = parseFloat(document.getElementById('raidIOPS').value || 0);\n                \n                if (raidThroughput <= 0 || controllerLimit <= 0 || raidIOPS <= 0) {\n                    document.getElementById('initialMessage').style.display = 'block';\n                    document.getElementById('calculatedResults').style.display = 'none';\n                    return;\n                }\n\n                \/\/ 1. D\u00e9bits Limites (Mo\/s)\n                const pcieThroughput = Calculator.getPCIeThroughput();\n                const networkThroughput = UI.updateNetworkDisplay(); \/\/ D\u00e9j\u00e0 calcul\u00e9 en Mo\/s\n\n                const limitsMoS = {\n                    raid: raidThroughput,\n                    controller: controllerLimit,\n                    pcie: pcieThroughput,\n                    network: networkThroughput\n                };\n                \n                \/\/ 2. Identification du Goulot d'\u00c9tranglement\n                const bottleneck = Calculator.getBottleneck(limitsMoS);\n                \n                \/\/ Le D\u00e9bit Th\u00e9orique Final est la limite la plus basse\n                const finalThroughput = bottleneck.limit;\n\n                \/\/ 3. Affichage des r\u00e9sultats\n                \n                document.getElementById('finalThroughput').textContent = finalThroughput.toFixed(0) + ' Mo\/s';\n                document.getElementById('finalIOPS').textContent = raidIOPS.toFixed(0); \/\/ L'IOPS n'est pas limit\u00e9 par le d\u00e9bit s\u00e9quentiel\n\n                \/\/ Affichage du composant limitant\n                document.getElementById('bottleneckComponent').innerHTML = `La limite du syst\u00e8me est fix\u00e9e par : <strong>${bottleneck.name}<\/strong>`;\n                \n                \/\/ Mettre en surbrillance le r\u00e9sultat final si c'est la limite\n                const finalResultElement = document.getElementById('bottleneckResult');\n                finalResultElement.classList.remove('bottleneck-highlight');\n                \n                \/\/ Mettre \u00e0 jour la liste des limites\n                Object.entries(limitsMoS).forEach(([key, value]) => {\n                    const elementId = `limit${key.charAt(0).toUpperCase() + key.slice(1)}`;\n                    const element = document.getElementById(elementId);\n                    \n                    element.textContent = `${key.charAt(0).toUpperCase() + key.slice(1)}: ${value.toFixed(0)} Mo\/s`;\n                    element.classList.remove('limiting');\n\n                    \/\/ Mettre en \u00e9vidence le composant limitant\n                    if (key === bottleneck.component) {\n                        element.classList.add('limiting');\n                        finalResultElement.classList.add('bottleneck-highlight');\n                    }\n                });\n\n                document.getElementById('initialMessage').style.display = 'none';\n                document.getElementById('calculatedResults').style.display = 'block';\n            }\n        };\n        \n        \/\/ D\u00e9marrer l'application une fois le DOM charg\u00e9\n        document.addEventListener('DOMContentLoaded', UI.init);\n        <\/script>\n        [\/et_pb_code][et_pb_text _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h3 data-path-to-node=\"3\"><strong>Technical Specifications &amp; Performance Limits<\/strong><\/h3>\n<p data-path-to-node=\"4\">To get the most out of the <b data-path-to-node=\"4\" data-index-in-node=\"27\">Bottleneck Analyzer<\/b>, it\u2019s important to understand the theoretical limits of modern hardware. Our tool accounts for the following standards:<\/p>\n<ul data-path-to-node=\"5\">\n<li>\n<p data-path-to-node=\"5,0,0\"><b data-path-to-node=\"5,0,0\" data-index-in-node=\"0\">Network Interfaces:<\/b> From 1GbE (125 MB\/s) to 100GbE (12.5 GB\/s), network overhead often remains the most common bottleneck in NAS environments.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"5,1,0\"><b data-path-to-node=\"5,1,0\" data-index-in-node=\"0\">PCIe Generations:<\/b> * <b data-path-to-node=\"5,1,0\" data-index-in-node=\"20\">PCIe 3.0:<\/b> ~985 MB\/s per lane.<\/p>\n<ul data-path-to-node=\"5,1,1\">\n<li>\n<p data-path-to-node=\"5,1,1,0,0\"><b data-path-to-node=\"5,1,1,0,0\" data-index-in-node=\"0\">PCIe 4.0:<\/b> ~1,970 MB\/s per lane.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"5,1,1,1,0\"><b data-path-to-node=\"5,1,1,1,0\" data-index-in-node=\"0\">PCIe 5.0:<\/b> ~3,940 MB\/s per lane.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p data-path-to-node=\"5,2,0\"><b data-path-to-node=\"5,2,0\" data-index-in-node=\"0\">Storage Controllers:<\/b> SAS-3 (12 Gbps per link) and NVMe (Gen4 x4 reaching up to 7,500 MB\/s) require high-performance buses to avoid data queuing.<\/p>\n<\/li>\n<\/ul>\n<h3 data-path-to-node=\"6\"><strong>Common Storage Bottleneck Scenarios<\/strong><\/h3>\n<p data-path-to-node=\"7\">Are you experiencing slow transfer speeds? Here are the most frequent causes identified by our users:<\/p>\n<ol start=\"1\" data-path-to-node=\"8\">\n<li>\n<p data-path-to-node=\"8,0,0\"><b data-path-to-node=\"8,0,0\" data-index-in-node=\"0\">The &#8220;Lanes&#8221; Trap:<\/b> A high-end RAID controller or NVMe drive installed in a PCIe slot wired for only x4 or x2 lanes.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"8,1,0\"><b data-path-to-node=\"8,1,0\" data-index-in-node=\"0\">The Network Ceiling:<\/b> Having a 5,000 MB\/s SSD array but accessing it through a 1GbE or 2.5GbE network.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"8,2,0\"><b data-path-to-node=\"8,2,0\" data-index-in-node=\"0\">Controller Saturation:<\/b> Exceeding the maximum aggregate throughput of an entry-level HBA or RAID card with too many high-speed SSDs.<\/p>\n<\/li>\n<\/ol>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h2 data-path-to-node=\"7\" id=\"OptimizeYourServerPerformancewithOurFreeTools\">Optimize Your Server Performance with Our Free Tools<\/h2>\n<p data-path-to-node=\"8\"><i data-path-to-node=\"8\" data-index-in-node=\"0\">Paragraph:<\/i><span>\u00a0<\/span>Beyond raw capacity, disk performance for HDDs and SSDs is critical for a stable build. We have developed a suite of specialized tools for sysadmins and hardware enthusiasts:<\/p>\n<ul data-path-to-node=\"9\">\n<li>\n<p data-path-to-node=\"9,0,0\"><b data-path-to-node=\"9,0,0\" data-index-in-node=\"0\"><a href=\"https:\/\/raidzfscalculator.com\/en\/fio-results-viewer\/\" target=\"_blank\" rel=\"noopener\" title=\"FIO Results Visualizer\">FIO Results Visualizer<\/a>:<\/b><span>\u00a0<\/span>Convert complex JSON logs into readable charts to compare IOPS, throughput, and latency.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"9,1,0\"><b data-path-to-node=\"9,1,0\" data-index-in-node=\"0\"><a href=\"https:\/\/raidzfscalculator.com\/en\/rebuild-time-calculator\/\" target=\"_blank\" rel=\"noopener\" title=\"RAID Rebuild Time Estimator\">RAID Rebuild Time Estimator<\/a>:<\/b><span>\u00a0<\/span>Calculate how long it will take to resilver your ZFS pool after a drive failure to assess your data loss risk.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"9,2,0\"><b data-path-to-node=\"9,2,0\" data-index-in-node=\"0\"><a href=\"https:\/\/raidzfscalculator.com\/en\/erasure-coding-calculator\/\" target=\"_blank\" rel=\"noopener\" title=\"Erasure coding calculator\">Erasure coding calculator<\/a>:<\/b><span> Estimate your storage speed, spare drives and lost capacity with our tool<\/span><\/p>\n<\/li>\n<\/ul>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bottleneck analyserDetermine the Real Speed of Your Server Every storage system is only as fast as its slowest component. Our Bottleneck Analyzer tool allows you to precisely identify the speed limits of your storage chain, from your RAID arrays to your network interface card (NIC). Don&#8217;t rely solely on the theoretical throughput of your RAID! [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1085576,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-270","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/pages\/270","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/comments?post=270"}],"version-history":[{"count":9,"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/pages\/270\/revisions"}],"predecessor-version":[{"id":1085821,"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/pages\/270\/revisions\/1085821"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/media\/1085576"}],"wp:attachment":[{"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/media?parent=270"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}