diff --git a/1 b/1 new file mode 100644 index 0000000..bd9c1ba --- /dev/null +++ b/1 @@ -0,0 +1,86 @@ + +//range slider +var $element = $('input[type="range"]'); + +$element + .rangeslider({ + polyfill: false, + onInit: function() { + var $handle = $('.rangeslider__handle', this.$range); + updateHandle($handle[0], this.value); + } + }) + .on('input', function(e) { + var $handle = $('.rangeslider__handle', e.target.nextSibling); + updateHandle($handle[0], this.value); + }); + +function updateHandle(el, val) { + el.textContent = val; +} + +//calculator + +$(document).ready(function() { + //calculate values automatically + sum(); + $("#ram-total, #ram-reserved, #ram-buffer, #process-size").on("keydown keyup change", function() { + sum(); + }); + generateConfigCopy(); + + $("buttonCopy").click(function(){ + copyClipboard + }); + +}); + +function sum() { + //inputs + var ramtotal = document.getElementById('ram-total').value; + var ramreserved = document.getElementById('ram-reserved').value; + var rambuffer = document.getElementById('ram-buffer').value; + var processsize = document.getElementById('process-size').value; + + + + var buffer = 1 - (rambuffer / 100) ; + + //[Total Available RAM] – [Reserved RAM] – [10% buffer] = [Available RAM for PHP] + var availableram = Math.round(((ramtotal - ramreserved) * buffer) * 10) / 10; + var availablerammb = Math.round(availableram * 1024); + + // [Average Process Size] / [Available RAM for PHP]= [max_children] + var maxchildren = Math.floor(availablerammb / processsize); + var startservers = Math.floor(maxchildren * 0.25); + var minspare = Math.floor(maxchildren * 0.25); + var maxspare = Math.floor(maxchildren * 0.75); + + + if (!isNaN(availableram)) { + //Outputs + //document.getElementById('ram-buffer-percent').value = buffer; + document.getElementById('ram-available').value = availableram; + document.getElementById('ram-available-mb').value = Math.round(availableram * 1024); + document.getElementById('max-children').value = maxchildren; + document.getElementById('start-servers').value = startservers; + document.getElementById('min-spare').value = minspare; + document.getElementById('max-spare').value = maxspare; + } + } + +function generateConfigCopy (){ +document.getElementById('copyPasteArea').value = 'pm.max_children = ' + document.getElementById('max-children').value +'\n' + + 'pm.start_servers = ' + document.getElementById('start-servers').value +'\n' + + 'pm.min_spare_servers = ' + document.getElementById('min-spare').value +'\n' + + 'pm.max_spare_servers = ' + document.getElementById('max-spare').value; + +} + +function copyClipboard (){ + var text = document.getElementById('copyPasteArea'); + text.select(); + document.execCommand('copy'); + alert('copied to clipboard successfully.'); +} + diff --git a/index.html b/index.html index 01bc432..74f1366 100644 --- a/index.html +++ b/index.html @@ -5,6 +5,7 @@ PHP-FPM Process Caluculator + @@ -85,6 +86,13 @@ +
+
+ + + +
+
@@ -96,4 +104,4 @@ - \ No newline at end of file + diff --git a/script.js b/script.js index d8eb212..bd9c1ba 100644 --- a/script.js +++ b/script.js @@ -27,6 +27,12 @@ $(document).ready(function() { $("#ram-total, #ram-reserved, #ram-buffer, #process-size").on("keydown keyup change", function() { sum(); }); + generateConfigCopy(); + + $("buttonCopy").click(function(){ + copyClipboard + }); + }); function sum() { @@ -61,4 +67,20 @@ function sum() { document.getElementById('min-spare').value = minspare; document.getElementById('max-spare').value = maxspare; } - } \ No newline at end of file + } + +function generateConfigCopy (){ +document.getElementById('copyPasteArea').value = 'pm.max_children = ' + document.getElementById('max-children').value +'\n' + + 'pm.start_servers = ' + document.getElementById('start-servers').value +'\n' + + 'pm.min_spare_servers = ' + document.getElementById('min-spare').value +'\n' + + 'pm.max_spare_servers = ' + document.getElementById('max-spare').value; + +} + +function copyClipboard (){ + var text = document.getElementById('copyPasteArea'); + text.select(); + document.execCommand('copy'); + alert('copied to clipboard successfully.'); +} +