Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

калькулятор_надежности_ssd [2022/10/17 09:37]
dyakoff создано
калькулятор_надежности_ssd [2022/10/17 09:43] (текущий)
dyakoff [Дополнительная информация]
Строка 7: Строка 7:
 | Категории:​ [[:​Главная|]] | | Категории:​ [[:​Главная|]] |
 || ||
 +<​html>​
 +<div>
 +          ​
 +            <div property="​schema:​text"​ class="​uk-margin"><​script>​
 +<​!--//​--><​![CDATA[//​ ><!--
  
 +function copyresult(el) {
 +  el.select();​
 +  document.execCommand("​copy"​);​
 +}
 +function ssdconvert(el){
 +    var s = document.getElementById('​ssd_size'​).value;​
 +    if (isInt(s)) {
 +        s = parseInt(s, 10);
 +        if (s < 1 || s > 9999999) return ssdresult(el,​ "​Укажите ёмкость в гигабайтах. Целое число от 1 до 9999999."​);​
 +    } else {
 +        return ssdresult(el,​ "​Укажите ёмкость в гигабайтах."​);​
 +    }
 +    var t = document.getElementById('​ssd_warranty'​).value;​
 +    if (isInt(t)) {
 +        t = parseInt(t, 10);
 +        if (t < 1 || t > 99) return ssdresult(el,​ "​Укажите гарантию в годах. Целое число от 1 до 99.");
 +    } else {
 +        return ssdresult(el,​ "​Укажите гарантию в годах."​);​
 +    }
 +    var e = document.getElementById('​ssd_endurance'​).value;​
 +    if (isFloat(e)) {
 +        e = parseFloat(e);​
 +        if (e <= 0 || e > 9999999) return ssdresult(el,​ "​Укажите надёжность SSD. Число с плавающей точкой больше 0 и не больше 9999999."​);​
 +    } else {
 +        return ssdresult(el,​ "​Укажите надёжность SSD."​);​
 +    }
 +    var et = document.getElementById('​ssd_endurance_type'​).value;​
 +    switch (et) {
 +    case "​pbw":​
 +        return ssdresult(el,​ calc_pbw(e, s, t));
 +        break;
 +    case "​tbw":​
 +        return ssdresult(el,​ calc_tbw(e, s, t));     
 +        break;
 +    case "​dwpd":​
 +        return ssdresult(el,​ calc_dwpd(e,​ s, t));
 +        break;
 +    case "​gbday":​
 +        return ssdresult(el,​ calc_gbday(e,​ s, t));
 +        break;
 +    default:
 +        return ssdresult(el,​ "​Укажите надёжность SSD. Выберите тип."​);​
 +    }
 +    return ssdresult(el,​ "​Непредвиденная ошибка"​);​
 +}
 +function ssdresult(el,​ tx){
 +    el.value = tx;
 +}
 +function isInt(value) {
 +    var er = /​^-?​[0-9]+$/;​
 +    return er.test(value);​
 +}
 +function isFloat(value) {
 +    var er = /​^-?​[0-9.]+$/;​
 +    return er.test(value);​
 +}
 +function calc_pbw(pbw,​ s, t) {
 +    var r = "";​
 +    var tbw = pbw*1000;
 +    var dwpd = (tbw*1000)/​(s*t*365);​
 +    dwpd = Math.floor(dwpd*1000)/​1000;​
 +    var gbday = (tbw*1000)/​(t*365);​
 +    gbday = Math.floor(gbday*1000)/​1000;​
 +    r = r + "PBW (TBW PB) = " + pbw.toString();​
 +    r = r + "\nTBW (TBW TB) = " + tbw.toString();​
 +    r = r + "​\nDWPD = " + dwpd.toString();​
 +    r = r + "​\nGB/​day = " + gbday.toString();​
 +    return r;
 +}
 +function calc_tbw(tbw,​ s, t) {
 +    var r = "";​
 +    var pbw = tbw/1000;
 +    var dwpd = (tbw*1000)/​(s*t*365);​
 +    dwpd = Math.floor(dwpd*1000)/​1000;​
 +    var gbday = (tbw*1000)/​(t*365);​
 +    gbday = Math.floor(gbday*1000)/​1000;​
 +    r = r + "PBW (TBW PB) = " + pbw.toString();​
 +    r = r + "\nTBW (TBW TB) = " + tbw.toString();​
 +    r = r + "​\nDWPD = " + dwpd.toString();​
 +    r = r + "​\nGB/​day = " + gbday.toString();​
 +    return r;
 +}
 +function calc_dwpd(dwpd,​ s, t) {
 +    var r = "";​
 +    var tbw = (dwpd*s*t*365)/​1000;​
 +    tbw  = Math.floor(tbw);​
 +    var pbw = tbw/1000;
 +    var gbday = (tbw*1000)/​(t*365);​
 +    gbday = Math.floor(gbday*1000)/​1000;​
 +    r = r + "PBW (TBW PB) = " + pbw.toString();​
 +    r = r + "\nTBW (TBW TB) = " + tbw.toString();​
 +    r = r + "​\nDWPD = " + dwpd.toString();​
 +    r = r + "​\nGB/​day = " + gbday.toString();​
 +    return r;
 +}
 +function calc_gbday(gbday,​ s, t) {
 +    var r = "";​
 +    var tbw = (gbday*t*365)/​1000;​
 +    tbw  = Math.floor(tbw);​
 +    var pbw = tbw/1000;
 +    var dwpd = gbday/s;
 +    dwpd = Math.floor(dwpd*1000)/​1000;​
 +    r = r + "PBW (TBW PB) = " + pbw.toString();​
 +    r = r + "\nTBW (TBW TB) = " + tbw.toString();​
 +    r = r + "​\nDWPD = " + dwpd.toString();​
 +    r = r + "​\nGB/​day = " + gbday.toString();​
 +    return r;
 +}
 +
 +//​--><​!]]>​
 +</​script><​p>​Конвертер показателя надёжности SSD.</​p>​
 +
 +<​center>​
 +<table style="​width:​100%;"><​tbody><​tr><​td style="​font-size:​10px;​ width:​200px;">​Ёмкость SSD (Гб):</​td>​
 + <td style="​font-size:​10px;​ width:​200px;">​Гарантия SSD (гг):</​td>​
 + <td align="​right"​ colspan="​2"​ style="​font-size:​10px;​ width:​100%;">​Надёжность SSD:</​td>​
 + </​tr><​tr><​td style="​width:​200px;"><​input class="​uk-input"​ id="​ssd_size"​ maxlength="​7"​ style="​width:​200px;"​ type="​text"​ value="​960"></​td>​
 + <td style="​width:​200px;"><​input class="​uk-input"​ id="​ssd_warranty"​ maxlength="​2"​ style="​width:​200px;"​ type="​text"​ value="​5"></​td>​
 + <td style="​width:​200px;"><​input class="​uk-input"​ id="​ssd_endurance"​ maxlength="​7"​ style="​width:​200px;"​ type="​text"​ value="​1.86"></​td>​
 + <td style="​width:​100%;"><​select class="​uk-select"​ id="​ssd_endurance_type"><​option selected="​selected"​ value="​pbw">​PBW (TBW PB)</​option><​option value="​tbw">​TBW (TBW TB)</​option><​option value="​dwpd">​DWPD</​option><​option value="​gbday">​GB/​day</​option></​select></​td>​
 + </​tr><​tr><​td colspan="​4"><​input class="​uk-button"​ onclick="​ssdconvert(document.getElementById('​ssd_result'​))"​ style="​width:​200px;"​ type="​button"​ value="​Конвертировать"></​td>​
 + </​tr><​tr><​td colspan="​4"​ style="​font-size:​10px;​ width:​100%;">​Надёжность SSD:</​td>​
 + </​tr><​tr><​td colspan="​4"​ style="​width:​100%;"><​textarea class="​uk-input"​ id="​ssd_result"​ name="​ssd_result"​ style="​width:​ 100%; height: 154px;"></​textarea></​td>​
 + </​tr><​tr><​td colspan="​4"​ style="​width:​100%;"><​input class="​uk-button"​ onclick="​copyresult(document.getElementById('​ssd_result'​))"​ style="​width:​200px;"​ type="​button"​ value="​Копировать"></​td>​
 + </​tr></​tbody></​table></​center>​
 +
 +<​p>​Показатели надёжности SSD:</​p>​
 +
 +<​ul><​li><​strong>​DWPD</​strong>​ (Disk Write per Day). Количество перезаписей всего объёма накопителя в день за определенный период времени (3 года или 5 лет, в зависимости от срока гарантии).</​li>​
 + <​li><​strong>​TBW</​strong>​ (Total Bytes Written) или TBW (TB). Суммарный объем данных,​ который гарантированно можно записать на накопитель. Указывается в терабайтах.</​li>​
 + <​li><​strong>​PBW</​strong>​ (Petabytes Written) или TBW (PB). Суммарный объем данных,​ который гарантированно можно записать на накопитель. Указывается в петабайтах.</​li>​
 + <​li><​strong>​GB/​day</​strong>&​nbsp;​(Gigabytes written per day). Сколько гигабайт в день может записывать SSD.</​li>​
 +</​ul><​h3>​Формулы</​h3>​
 +
 +<​p>​При переводе объёмов нужно учесть,​ что во вселенной производителей SSD есть свои метрики:</​p>​
 +
 +<​ul><​li>​1 PB = 1000 TB</​li>​
 + <​li>​1 TB = 1000 GB</​li>​
 + <​li>​1 год = 365 дней</​li>​
 +</​ul><​p>​Нам понадобятся дополнительные данные:</​p>​
 +
 +<​ul><​li>​S — ёмкость диска в гигабайтах</​li>​
 + <​li>​T — гарантия в годах</​li>​
 +</​ul><​p>​DWPD = GB/day ÷ S</p>
 +
 +<​p>​DWPD = (TBW (TB) × 1000) ÷ (S × T × 365)</​p>​
 +
 +<​p>​GB/​day = DWPD × S</p>
 +
 +<​p>​GB/​day = (TBW (TB) × 1000) ÷ (T × 365)</​p>​
 +
 +<​p>​TBW (TB) = (DWPD × S × T × 365) ÷ 1000</​p>​
 +
 +<​p>​TBW (TB) = (GB/day × T × 365) ÷ 1000</​p>​
 +
 +<​p>​PBW = TBW (PB) = TBW (TB) ÷ 1000</​p>​
 +</​div>​
 +      ​
 +      </​div>​
 +      </​html>​