pmcalculator/index.html
2019-03-06 16:00:00 -05:00

199 lines
No EOL
7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>PHP-FPM Process Caluculator</title>
<meta name="description" content="">
<meta name="author" content="Chris Moore">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<!--Font Awesome (added because you use icons in your prepend/append)-->
<link rel="stylesheet" href="https://formden.com/static/cdn/font-awesome/4.4.0/css/font-awesome.min.css" />
<!-- Inline CSS based on choices in "Settings" tab -->
<style>.bootstrap-iso .formden_header h2, .bootstrap-iso .formden_header p, .bootstrap-iso form{font-family: Arial, Helvetica, sans-serif; color: black}.bootstrap-iso form button, .bootstrap-iso form button:hover{color: white !important;} .asteriskField{color: red;}</style>
<!-- HTML Form (wrapped in a .bootstrap-iso div) -->
</head>
<body>
<div class="bootstrap-iso">
<div class="container-fluid">
<div class="row">
<div class="col-md-6 col-sm-6 col-xs-12">
<form method="post">
<div class="form-group ">
<label class="control-label requiredField" for="ram-total">
Total Ram (Gb)
<span class="asteriskField">
*
</span>
</label>
<input class="form-control" id="ram-total" name="ram-total" type="range" min="1" max="64" step="1" />
</div>
<div class="form-group ">
<label class="control-label requiredField" for="name">
Reserved Ram (Gb)
<span class="asteriskField">
*
</span>
</label>
<input class="form-control" id="name" name="name" type="text"/>
</div>
<div class="form-group ">
<label class="control-label requiredField" for="text">
RAM Buffer (%)
<span class="asteriskField">
*
</span>
</label>
<div class="input-group">
<div class="input-group-addon">
<i class="fa ">
</i>
</div>
<input class="form-control" id="text" name="text" type="text"/>
<div class="input-group-addon">
%
</div>
</div>
</div>
<div class="form-group ">
<label class="control-label requiredField" for="text1">
Process size (Mb)
<span class="asteriskField">
*
</span>
</label>
<input class="form-control" id="text1" name="text1" type="text"/>
</div>
<div class="form-group ">
<label class="control-label " for="name1">
Available RAM (Gb)
</label>
<input class="form-control" id="name1" name="name1" type="text"/>
</div>
<div class="form-group ">
<label class="control-label " for="name2">
Available RAM (Mb)
</label>
<input class="form-control" id="name2" name="name2" type="text"/>
</div>
<div class="form-group ">
<label class="control-label " for="text2">
pm.max_children
</label>
<input class="form-control" id="text2" name="text2" type="text"/>
</div>
<div class="form-group ">
<label class="control-label " for="text3">
pm.start_servers
</label>
<input class="form-control" id="text3" name="text3" type="text"/>
</div>
<div class="form-group ">
<label class="control-label " for="text4">
pm.min_spare_servers
</label>
<input class="form-control" id="text4" name="text4" type="text"/>
</div>
<div class="form-group ">
<label class="control-label " for="text5">
pm.max_spare_servers
</label>
<input class="form-control" id="text5" name="text5" type="text"/>
</div>
<div class="form-group">
<div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<!--OG-->
<form name="form1" method="post" action="" >
<table>
<tr><td><strong>Total Ram:</strong></td><td><input type="text" name="ram-total" id="ram-total" />GB</td></tr>
<tr><td><strong>Reserved:</strong></td><td><input type="text" name="ram-reserved" id="ram-reserved" />GB</td></tr>
<tr><td><strong>Buffer:</strong></td><td><input type="text" name="ram-buffer" id="ram-buffer" />%</td></tr>
<tr><td><strong>Process size:</strong></td><td><input type="text" name="process-size" id="process-size" /> MB</td></tr>
<!--<tr><td>Buffer Percent:</td><td><input type="text" name="ram-buffer-percent" id="ram-buffer-percent" readonly /></td></tr>-->
<tr><td>Available:</td><td><input type="text" name="ram-available" id="ram-available" readonly /> Gb</td></tr>
<tr><td>Available:</td><td><input type="text" name="ram-available-mb" id="ram-available-mb" readonly /> Mb</td></tr>
<tr><td>Max children:</td><td><input type="text" name="max-children" id="max-children" readonly /></td></tr>
<tr><td>Start servers:</td><td><input type="text" name="start-servers" id="start-servers" readonly /></td></tr>
<tr><td>Min spare:</td><td><input type="text" name="min-spare" id="min-spare" readonly /></td></tr>
<tr><td>Max spare:</td><td><input type="text" name="max-spare" id="max-spare" readonly /></td></tr>
</table>
</form>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>
$(document).ready(function() {
//this calculates values automatically
sum();
$("#ram-total, #ram-reserved, #ram-buffer, #process-size").on("keydown keyup", function() {
sum();
});
});
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;
}
}
</script>
</body>
</html>