Commit 295f2a9716eb72eb8b0124cf8625c6e8afb45308
1 parent
6e74d0cf
Exists in
master
Várias melhorias e correções! By Questor
Showing
10 changed files
with
227 additions
and
129 deletions
Show diff stats
.directory
| 1 | 1 | [Dolphin] |
| 2 | -Timestamp=2017,3,7,14,56,41 | |
| 3 | -Version=3 | |
| 2 | +Timestamp=2017,6,16,15,30,52 | |
| 3 | +Version=4 | |
| 4 | 4 | ViewMode=1 |
| 5 | -VisibleRoles=Details_text,Details_size,Details_date,Details_type,CustomizedDetails | |
| 5 | +VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_type,CustomizedDetails | ... | ... |
LBGenerator.tar.gz
No preview for this file type
ez_i.bash
| ... | ... | @@ -1257,7 +1257,7 @@ f_srv_memory() { |
| 1257 | 1257 | : 'Informar sobre a memória do servidor. |
| 1258 | 1258 | |
| 1259 | 1259 | Returns: |
| 1260 | - F_SRV_MEMORY_R (int): Quantidade de memória RAM do servidor em KBs. | |
| 1260 | + F_SRV_MEMORY_R (int): Quantidade de memória RAM do servidor em KB. | |
| 1261 | 1261 | ' |
| 1262 | 1262 | |
| 1263 | 1263 | f_get_stderr_stdout "cat /proc/meminfo" |
| ... | ... | @@ -1268,6 +1268,148 @@ f_srv_memory() { |
| 1268 | 1268 | F_SRV_MEMORY_R=$F_STR_TRIM_R |
| 1269 | 1269 | } |
| 1270 | 1270 | |
| 1271 | +F_GET_PERCENT_FROM_R=0 | |
| 1272 | +f_get_percent_from() { | |
| 1273 | + : 'Obter percentagem de um valor informado. | |
| 1274 | + | |
| 1275 | + Args: | |
| 1276 | + VAL_GET_PERCENT_P (int): Valor a partir do qual será obtida a | |
| 1277 | + percentagem. | |
| 1278 | + PERCENT_VAL_P (int): Valor de percentagem a ser obtido. | |
| 1279 | + REM_FLOAT_POINT_P (Optional[int]): 0 - Não remove ponto flutuante; 1 - | |
| 1280 | + remove ponto flutuante (se o valor obtido for maior ou igual a 1). | |
| 1281 | + Padrão 1. | |
| 1282 | + | |
| 1283 | + Returns: | |
| 1284 | + F_GET_PERCENT_FROM_R (int): Porcentagem obtida. | |
| 1285 | + ' | |
| 1286 | + | |
| 1287 | + VAL_GET_PERCENT_P=$1 | |
| 1288 | + PERCENT_VAL_P=$2 | |
| 1289 | + REM_FLOAT_POINT_P=$3 | |
| 1290 | + if [ -z "$REM_FLOAT_POINT_P" ] ; then | |
| 1291 | + REM_FLOAT_POINT_P=1 | |
| 1292 | + fi | |
| 1293 | + | |
| 1294 | + # NOTA: A estratégia abaixo foi utilizada pq o bash por padrão não | |
| 1295 | + # permite cálculo de ponto flutuante! By Questor | |
| 1296 | + F_GET_PERCENT_FROM_R=$(awk '{printf("%.5f\n",($1*($2/100)))}' <<<" $VAL_GET_PERCENT_P $PERCENT_VAL_P ") | |
| 1297 | + | |
| 1298 | + F_GET_PERCENT_FROM_R=${F_GET_PERCENT_FROM_R} | |
| 1299 | + if [ ${REM_FLOAT_POINT_P} -eq 1 ] ; then | |
| 1300 | + | |
| 1301 | + # NOTA: Técnica para comparar valores com ponto flutuante! By Questor | |
| 1302 | + if [ $(awk '{printf($1 >= $2) ? 1 : 0}' <<<" $VAL_GET_PERCENT_P 1 ") -eq 1 ] ; then | |
| 1303 | + | |
| 1304 | + # NOTA: A estratégia abaixo foi utilizada para arredondar o valor | |
| 1305 | + # (remover o ponto flutuante)! By Questor | |
| 1306 | + F_GET_PERCENT_FROM_R=${F_GET_PERCENT_FROM_R%\.*} | |
| 1307 | + fi | |
| 1308 | + fi | |
| 1309 | +} | |
| 1310 | + | |
| 1311 | +F_BYTES_N_UNITS_R=0 | |
| 1312 | +f_bytes_n_units() { | |
| 1313 | + : 'Converter bytes entre suas diversas unidades. | |
| 1314 | + | |
| 1315 | + Args: | |
| 1316 | + F_VAL_TO_CONV (int): Valor em bytes a se convertido. | |
| 1317 | + F_FROM_UNIT (str): Unidade em que o valor está (B, KB, MB, GB, TB e PB). | |
| 1318 | + F_TO_UNIT (str): Unidade para a qual se quer converter o valor (B, KB, | |
| 1319 | + MB, GB, TB e PB). | |
| 1320 | + | |
| 1321 | + Returns: | |
| 1322 | + F_BYTES_N_UNITS_R (int/float): Valor convertido para a unidade desejada. | |
| 1323 | + ' | |
| 1324 | + | |
| 1325 | + # NOTE: | |
| 1326 | + # Unit Equivalent | |
| 1327 | + # 1 kilobyte (KB) 1,024 bytes | |
| 1328 | + # 1 megabyte (MB) 1,048,576 bytes | |
| 1329 | + # 1 gigabyte (GB) 1,073,741,824 bytes | |
| 1330 | + # 1 terabyte (TB) 1,099,511,627,776 bytes | |
| 1331 | + # 1 petabyte (PB) 1,125,899,906,842,624 bytes | |
| 1332 | + # By Questor | |
| 1333 | + | |
| 1334 | + F_VAL_TO_CONV=$1 | |
| 1335 | + F_FROM_UNIT=$2 | |
| 1336 | + F_TO_UNIT=$3 | |
| 1337 | + | |
| 1338 | + CONV_LOOPS=0 | |
| 1339 | + UNIT_FACTOR_0=0 | |
| 1340 | + while [ ${CONV_LOOPS} -le 1 ] ; do | |
| 1341 | + UNIT_FACTOR=0 | |
| 1342 | + if [ ${CONV_LOOPS} -eq 0 ] ; then | |
| 1343 | + UNIT_NOW=$F_FROM_UNIT | |
| 1344 | + else | |
| 1345 | + UNIT_NOW=$F_TO_UNIT | |
| 1346 | + fi | |
| 1347 | + case "$UNIT_NOW" in | |
| 1348 | + B) | |
| 1349 | + UNIT_FACTOR=0 | |
| 1350 | + ;; | |
| 1351 | + KB) | |
| 1352 | + UNIT_FACTOR=1 | |
| 1353 | + ;; | |
| 1354 | + MB) | |
| 1355 | + UNIT_FACTOR=2 | |
| 1356 | + ;; | |
| 1357 | + GB) | |
| 1358 | + UNIT_FACTOR=3 | |
| 1359 | + ;; | |
| 1360 | + TB) | |
| 1361 | + UNIT_FACTOR=4 | |
| 1362 | + ;; | |
| 1363 | + PB) | |
| 1364 | + UNIT_FACTOR=5 | |
| 1365 | + ;; | |
| 1366 | + esac | |
| 1367 | + if [ ${CONV_LOOPS} -eq 0 ] ; then | |
| 1368 | + UNIT_FACTOR_0=$UNIT_FACTOR | |
| 1369 | + else | |
| 1370 | + UNIT_FACTOR=$(awk '{printf($1-$2)}' <<<" $UNIT_FACTOR_0 $UNIT_FACTOR ") | |
| 1371 | + F_VAL_TO_CONV=$(awk '{printf("%.5f\n",($1*(1024^$2)))}' <<<" $F_VAL_TO_CONV $UNIT_FACTOR ") | |
| 1372 | + fi | |
| 1373 | + ((CONV_LOOPS++)) | |
| 1374 | + done | |
| 1375 | + | |
| 1376 | + # NOTE: Remover zeros denecessários (Ex.: 0.05000 -> 0.05)! | |
| 1377 | + F_VAL_TO_CONV=$(echo $F_VAL_TO_CONV | sed 's/0\{1,\}$//') | |
| 1378 | + | |
| 1379 | + # NOTE: Remover ponto flutuante quando não necessário (Ex.: 5.00000 -> 5)! | |
| 1380 | + if [ $(echo $F_VAL_TO_CONV | awk '$0-int($0){print 0;next}{print 1}') -eq 1 ] ; then | |
| 1381 | + F_VAL_TO_CONV=${F_VAL_TO_CONV%\.*} | |
| 1382 | + fi | |
| 1383 | + | |
| 1384 | + F_BYTES_N_UNITS_R=$F_VAL_TO_CONV | |
| 1385 | +} | |
| 1386 | + | |
| 1387 | +F_PROCS_QTT_R=0 | |
| 1388 | +f_procs_qtt() { | |
| 1389 | + : 'Determine the amount of processes on a server. | |
| 1390 | + | |
| 1391 | + Args: | |
| 1392 | + F_MULT_FACTOR (Optional[int]): Multiplying factor over the number of | |
| 1393 | + processes on the server. Default 1. | |
| 1394 | + | |
| 1395 | + Returns: | |
| 1396 | + F_PROCS_QTT_R (int): Number of server processes multiplied by a factor | |
| 1397 | + if informed. | |
| 1398 | + ' | |
| 1399 | + | |
| 1400 | + F_MULT_FACTOR=$1 | |
| 1401 | + if [ -z "$F_MULT_FACTOR" ] ; then | |
| 1402 | + F_MULT_FACTOR=1 | |
| 1403 | + fi | |
| 1404 | + f_get_stderr_stdout "nproc" | |
| 1405 | + if [[ $F_GET_STDERR_R == "" ]]; then | |
| 1406 | + F_PROCS_QTT_R=$(( F_GET_STDOUT_R * F_MULT_FACTOR )) | |
| 1407 | + else | |
| 1408 | + f_enter_to_cont "An error occurred when trying to determine an appropriate amount of processes to use on this server! ERROR: \"$F_GET_STDERR_R$F_GET_STDOUT_R\"." | |
| 1409 | + f_error_exit | |
| 1410 | + fi | |
| 1411 | +} | |
| 1412 | + | |
| 1271 | 1413 | # < -------------------------------------------------------------------------- |
| 1272 | 1414 | |
| 1273 | 1415 | # > -------------------------------------------------------------------------- | ... | ... |
install.bash
| ... | ... | @@ -25,7 +25,7 @@ LBG - LBGenerator Installer |
| 25 | 25 | EOF |
| 26 | 26 | |
| 27 | 27 | read -d '' VERSION_F <<"EOF" |
| 28 | -0.7.0.0 | |
| 28 | +0.8.0.0 | |
| 29 | 29 | EOF |
| 30 | 30 | |
| 31 | 31 | # NOTE: Para versionamento usar "MAJOR.MINOR.REVISION.BUILDNUMBER"! |
| ... | ... | @@ -1056,41 +1056,6 @@ f_create_ve32() { |
| 1056 | 1056 | # < ----------------------------------------- |
| 1057 | 1057 | |
| 1058 | 1058 | # > ----------------------------------------- |
| 1059 | -# Determine an appropriate amount of processes! | |
| 1060 | - | |
| 1061 | -PROCESSES_QTT=0 | |
| 1062 | -f_num_for_procs() { | |
| 1063 | - : 'Determine an appropriate amount of processes.' | |
| 1064 | - | |
| 1065 | - if (( PROCESSES_QTT == 0 )) ; then | |
| 1066 | - f_get_stderr_stdout "nproc" | |
| 1067 | - if [[ $F_GET_STDERR_R == "" ]]; then | |
| 1068 | - | |
| 1069 | - # NOTE: Esse é o cálculo recomendado segundo algumas fontes. Eu | |
| 1070 | - # preferi fazer pelo dobro da quantidade de "cores" obtidas! | |
| 1071 | - # By Questor | |
| 1072 | - # (2 Workers * CPU Cores) + 1 | |
| 1073 | - # --------------------------- | |
| 1074 | - # Para 1 core -> (2*1)+1 = 3 | |
| 1075 | - # Para 2 cores -> (2*2)+1 = 5 | |
| 1076 | - # Para 4 cores -> (2*4)+1 = 9 | |
| 1077 | - PROCESSES_QTT=$(( F_GET_STDOUT_R * 2 )) | |
| 1078 | - f_div_section | |
| 1079 | - f_get_usr_input "The recommended amount of processes to use on this server is \"$PROCESSES_QTT\". | |
| 1080 | -Use empty for \"$PROCESSES_QTT\" (recommended)!" 1 | |
| 1081 | - if [ -n "$GET_USR_INPUT_R" ] ; then | |
| 1082 | - PROCESSES_QTT=$GET_USR_INPUT_R | |
| 1083 | - fi | |
| 1084 | - else | |
| 1085 | - f_enter_to_cont "An error occurred when trying to determine an appropriate amount of processes to use on this server! ERROR: \"$F_GET_STDERR_R$F_GET_STDOUT_R\"." | |
| 1086 | - f_error_exit | |
| 1087 | - fi | |
| 1088 | - fi | |
| 1089 | -} | |
| 1090 | - | |
| 1091 | -# < ----------------------------------------- | |
| 1092 | - | |
| 1093 | -# > ----------------------------------------- | |
| 1094 | 1059 | # Instalar o NGINX (nginx)! |
| 1095 | 1060 | |
| 1096 | 1061 | NGINX_INST=0 |
| ... | ... | @@ -1193,8 +1158,9 @@ f_inst_nginx() { |
| 1193 | 1158 | \cp "$SCRIPTDIR_V/other-srcs-n-apps/nginx.conf-dist" "/etc/nginx/nginx.conf" |
| 1194 | 1159 | |
| 1195 | 1160 | # NOTE: Determinar um número adequado de processos! By Questor |
| 1196 | - f_num_for_procs | |
| 1197 | - f_ez_sed "<PROCESSES_QTT>" "$PROCESSES_QTT" "/etc/nginx/nginx.conf" | |
| 1161 | + f_procs_qtt 2 | |
| 1162 | + | |
| 1163 | + f_ez_sed "<PROCESSES_QTT>" "$F_PROCS_QTT_R" "/etc/nginx/nginx.conf" | |
| 1198 | 1164 | f_ez_sed "<NGINX_PORT>" "$NGINX_PORT" "/etc/nginx/nginx.conf" |
| 1199 | 1165 | if [[ "$DISTRO_TYPE" == "DEB" ]] ; then |
| 1200 | 1166 | f_ez_sed "<SITES_ENABLED>" "\n include /etc/nginx/sites-enabled/*;" "/etc/nginx/nginx.conf" |
| ... | ... | @@ -1565,13 +1531,13 @@ f_inst_lib() { |
| 1565 | 1531 | f_yes_no "Install the LIB - liblightbase?" |
| 1566 | 1532 | if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then |
| 1567 | 1533 | EZ_I_SKIP_ON_V=$FAST_INST |
| 1568 | - f_inst_lib_py_packs 1 | |
| 1569 | 1534 | f_chk_by_path_hlp "$BASE_INST_DIR_V/ve32/src/liblightbase" "d" "\"liblightbase\" already installed in \"$BASE_INST_DIR_V/ve32/src\"!" |
| 1570 | 1535 | F_BAK_MD_R=1 |
| 1571 | 1536 | if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then |
| 1572 | 1537 | f_ez_mv_bak "$BASE_INST_DIR_V/ve32/src/liblightbase" "Backup old version and update? (\"y\" recommended)" |
| 1573 | 1538 | fi |
| 1574 | 1539 | if [ ${F_BAK_MD_R} -eq 1 ] ; then |
| 1540 | + f_inst_lib_py_packs 1 | |
| 1575 | 1541 | cd "$SCRIPTDIR_V" |
| 1576 | 1542 | tar -zxvf liblightbase.tar.gz |
| 1577 | 1543 | mv "$SCRIPTDIR_V/liblightbase" "$BASE_INST_DIR_V/ve32/src/" |
| ... | ... | @@ -1834,10 +1800,8 @@ f_inst_supervisor(){ |
| 1834 | 1800 | f_yes_no "Install supervisor?" |
| 1835 | 1801 | if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then |
| 1836 | 1802 | EZ_I_SKIP_ON_V=$FAST_INST |
| 1837 | - | |
| 1838 | 1803 | f_inst_ve_py2X 1 |
| 1839 | 1804 | f_create_ve2X 1 |
| 1840 | - | |
| 1841 | 1805 | f_chk_by_path_hlp "$BASE_INST_DIR_V/$VE_2_X/src/supervisor" "d" "\"supervisor\" already installed in \"$BASE_INST_DIR_V/$VE_2_X/src/supervisor\"!" |
| 1842 | 1806 | UP_SUPERVISOR=1 |
| 1843 | 1807 | if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then |
| ... | ... | @@ -1855,12 +1819,12 @@ f_inst_supervisor(){ |
| 1855 | 1819 | f_ez_mv_bak "$BASE_INST_DIR_V/$VE_2_X/src/supervisor/apps/lbg.conf" "" 1 0 1 |
| 1856 | 1820 | \cp "$SCRIPTDIR_V/other-srcs-n-apps/supervisord.conf-dist" "$BASE_INST_DIR_V/$VE_2_X/src/supervisor/supervisord.conf" |
| 1857 | 1821 | \cp "$SCRIPTDIR_V/other-srcs-n-apps/lbg.conf-supervisord-dist" "$BASE_INST_DIR_V/$VE_2_X/src/supervisor/apps/lbg.conf" |
| 1858 | - | |
| 1859 | 1822 | f_ez_sed "<VE_32_PATH>" "$BASE_INST_DIR_V/ve32" "$BASE_INST_DIR_V/$VE_2_X/src/supervisor/apps/lbg.conf" 1 |
| 1860 | 1823 | |
| 1861 | 1824 | # NOTE: Determinar um número adequado de processos! By Questor |
| 1862 | - f_num_for_procs | |
| 1863 | - f_ez_sed "<NUM_OF_PROCS>" "$PROCESSES_QTT" "$BASE_INST_DIR_V/$VE_2_X/src/supervisor/apps/lbg.conf" | |
| 1825 | + f_procs_qtt 2 | |
| 1826 | + | |
| 1827 | + f_ez_sed "<NUM_OF_PROCS>" "$F_PROCS_QTT_R" "$BASE_INST_DIR_V/$VE_2_X/src/supervisor/apps/lbg.conf" | |
| 1864 | 1828 | QUESTION_F="Enter the port number for Supervisor service. |
| 1865 | 1829 | Use empty for \"$SVISOR_PORT\" (recommended)!" |
| 1866 | 1830 | f_div_section |
| ... | ... | @@ -1893,7 +1857,7 @@ Use empty for \"$SVISOR_PWD\"!" |
| 1893 | 1857 | # NOTE: Calcula o máximo de memória que o LBG - LBGenerator pode usar do |
| 1894 | 1858 | # servidor! By Questor |
| 1895 | 1859 | f_div_section |
| 1896 | - f_get_usr_input "Enter the LBG - LBGenerator MAXIMUM PERCENT server RAM memory usage (numbers only, integers only, 0~100). | |
| 1860 | + f_get_usr_input "Enter the LBG - LBGenerator MAXIMUM PERCENT server RAM memory usage (numbers only, integers only). | |
| 1897 | 1861 | Use empty for \"$PROC_MAX_MEM_PERC\" (good for most cases)! |
| 1898 | 1862 | * Higher values will cause server instability, crash and other unexpected results; |
| 1899 | 1863 | * Lower values will cause LBG - LBGenerator service instability, crash and other unexpected results." 1 |
| ... | ... | @@ -1901,15 +1865,8 @@ Use empty for \"$PROC_MAX_MEM_PERC\" (good for most cases)! |
| 1901 | 1865 | PROC_MAX_MEM_PERC=$GET_USR_INPUT_R |
| 1902 | 1866 | fi |
| 1903 | 1867 | f_srv_memory |
| 1904 | - | |
| 1905 | - # NOTA: A estratégia abaixo foi utilizada pq o bash por padrão não | |
| 1906 | - # permite cálculo de ponto flutuante! By Questor | |
| 1907 | - PROC_MAX_MEM=$(awk '{printf("%.8f\n",(($1/100)*$2))}' <<<" $F_SRV_MEMORY_R $PROC_MAX_MEM_PERC ") | |
| 1908 | - | |
| 1909 | - # NOTA: A estratégia abaixo foi utilizada para arredondar o valor | |
| 1910 | - # (remover o ponto flutuante)! By Questor | |
| 1911 | - PROC_MAX_MEM=${PROC_MAX_MEM%\.*} | |
| 1912 | - | |
| 1868 | + f_get_percent_from "$F_SRV_MEMORY_R" "$PROC_MAX_MEM_PERC" | |
| 1869 | + PROC_MAX_MEM=$F_GET_PERCENT_FROM_R | |
| 1913 | 1870 | f_ez_sed "<PROC_MAX_MEM>" "$PROC_MAX_MEM" "$BASE_INST_DIR_V/$VE_2_X/src/supervisor/supervisord.conf" |
| 1914 | 1871 | rm -f "/etc/init.d/supervisord" |
| 1915 | 1872 | if [[ "$DISTRO_TYPE" == "RH" ]] ; then |
| ... | ... | @@ -2112,90 +2069,84 @@ Use empty for \"$APP_ROOT_F\" (will result in http://<machine_ip_or_name>/$APP_R |
| 2112 | 2069 | if [ -n "$GET_USR_INPUT_R" ] ; then |
| 2113 | 2070 | APP_ROOT_F=$GET_USR_INPUT_R |
| 2114 | 2071 | fi |
| 2115 | - | |
| 2116 | 2072 | SQLA_POOL_SIZE=0 |
| 2117 | - | |
| 2118 | - # NOTA: A estratégia abaixo foi utilizada pq o bash por padrão não | |
| 2119 | - # permite cálculo de ponto flutuante! By Questor | |
| 2120 | - SQLA_POOL_SIZE=$(awk '{printf("%.8f\n",($1*0.8))}' <<<" $PG_CONNECTIONS ") | |
| 2121 | - | |
| 2122 | - # NOTA: A estratégia abaixo foi utilizada para arredondar o valor | |
| 2123 | - # (remover o ponto flutuante)! By Questor | |
| 2124 | - SQLA_POOL_SIZE=${SQLA_POOL_SIZE%\.*} | |
| 2073 | + SQLA_POOL_SIZE_MAX_OVERFLOW=0 | |
| 2074 | + f_get_percent_from "$PG_CONNECTIONS" "48" | |
| 2075 | + SQLA_POOL_SIZE=$F_GET_PERCENT_FROM_R | |
| 2076 | + SQLA_POOL_SIZE_MAX_OVERFLOW=$SQLA_POOL_SIZE | |
| 2125 | 2077 | |
| 2126 | 2078 | # NOTE: Seta uma quantidade de threads adequada para o pool do |
| 2127 | 2079 | # sqlalchemy! By Questor |
| 2128 | 2080 | f_div_section |
| 2129 | 2081 | f_get_usr_input "Enter the LBG - LBGenerator SQLALCHEMY POOL SIZE (numbers only, integers only). |
| 2130 | 2082 | Use empty for \"$SQLA_POOL_SIZE\" (good for most cases)! |
| 2131 | -* Use at most 80% of the number of PostgreSQL connections; | |
| 2083 | +* Use at most 48% of the number of PostgreSQL connections; | |
| 2132 | 2084 | * Decrease the value if you have other applications using PostgreSQL; |
| 2133 | 2085 | * Higher values will cause LBG - LBGenerator and PostgreSQL services instability, crash and other unexpected results." 1 |
| 2134 | 2086 | if [ -n "$GET_USR_INPUT_R" ] ; then |
| 2135 | 2087 | SQLA_POOL_SIZE=$GET_USR_INPUT_R |
| 2088 | + SQLA_POOL_SIZE_MAX_OVERFLOW=$SQLA_POOL_SIZE | |
| 2089 | + fi | |
| 2090 | + LBI_LBINDEX_URL="http://127.0.0.1:6543/" | |
| 2091 | + QUESTION_F="Enter the LBI - LBIndex http service URL. | |
| 2092 | +Use empty for \"$LBI_LBINDEX_URL\"!" | |
| 2093 | + f_div_section | |
| 2094 | + f_get_usr_input "$QUESTION_F" 1 | |
| 2095 | + QUESTION_F="" | |
| 2096 | + if [ -n "$GET_USR_INPUT_R" ] ; then | |
| 2097 | + LBI_LBINDEX_URL=$GET_USR_INPUT_R | |
| 2136 | 2098 | fi |
| 2137 | - | |
| 2138 | 2099 | if [[ "$HTTP_SRV_WSGI" == "u" ]] ; then |
| 2139 | 2100 | eval "cp -f \"$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini.uwsgi-dist\" \"$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini\"" |
| 2140 | 2101 | f_ez_sed "<SQLA_POOL_SIZE>" "$SQLA_POOL_SIZE" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 |
| 2141 | - f_ez_sed "<SQLALCHEMY_URL>" "$PG_CFG_F" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 | |
| 2102 | + f_ez_sed "<SQLA_POOL_SIZE_MAX_OVERFLOW>" "$SQLA_POOL_SIZE" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 | |
| 2103 | + f_ez_sed "<LBI_LBINDEX_URL>" "$LBI_LBINDEX_URL" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" | |
| 2104 | + f_ez_sed "<SQLA_URL>" "$PG_CFG_F" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 | |
| 2142 | 2105 | f_ez_sed "<VE32_PATH>" "$BASE_INST_DIR_V/ve32" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 |
| 2143 | 2106 | f_ez_sed "<APP_ROOT_F>" "$APP_ROOT_F" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" |
| 2144 | - f_num_for_procs | |
| 2145 | - f_ez_sed "<PROCESSES_QTT>" "$PROCESSES_QTT" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" | |
| 2146 | - | |
| 2147 | - THREADS_QTT=0 | |
| 2148 | - | |
| 2149 | - # NOTA: A estratégia abaixo foi utilizada pq o bash por padrão não | |
| 2150 | - # permite cálculo de ponto flutuante! By Questor | |
| 2151 | - THREADS_QTT=$(awk '{printf("%.8f\n",(($1*0.8)/$2))}' <<<" $PG_CONNECTIONS $PROCESSES_QTT ") | |
| 2152 | - | |
| 2153 | - # NOTA: A estratégia abaixo foi utilizada para arredondar o valor | |
| 2154 | - # (remover o ponto flutuante)! By Questor | |
| 2155 | - THREADS_QTT=${THREADS_QTT%\.*} | |
| 2156 | - | |
| 2157 | - # NOTE: Seta uma quantidade de threads adequada para o uWSGI! By Questor | |
| 2158 | - f_div_section | |
| 2159 | - f_get_usr_input "Enter the LBG - LBGenerator THREADS QUANTITY (numbers only, integers only). | |
| 2160 | -Use empty for \"$THREADS_QTT\" (good for most cases)! | |
| 2161 | -* Use at most 80% of the number of PostgreSQL connections divided by the number of uWSGI processes; | |
| 2162 | -* Decrease the value if you have other applications using PostgreSQL; | |
| 2163 | -* Higher values will cause LBG - LBGenerator and PostgreSQL services instability, crash and other unexpected results." 1 | |
| 2164 | - if [ -n "$GET_USR_INPUT_R" ] ; then | |
| 2165 | - THREADS_QTT=$GET_USR_INPUT_R | |
| 2166 | - fi | |
| 2167 | - | |
| 2168 | - f_ez_sed "<THREADS_QTT>" "$THREADS_QTT" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" | |
| 2169 | - | |
| 2107 | + f_procs_qtt 4 | |
| 2108 | + f_ez_sed "<UWSGI_PROCESSES>" "$F_PROCS_QTT_R" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" | |
| 2109 | + REQ_TIMEOUT=0 | |
| 2170 | 2110 | f_srv_memory |
| 2171 | - | |
| 2172 | - # NOTA: A estratégia abaixo foi utilizada pq o bash por padrão não | |
| 2173 | - # permite cálculo de ponto flutuante! By Questor | |
| 2174 | - REQ_TIMEOUT=$(awk '{printf("%.8f\n",(($1/25550)*$2))}' <<<" $F_SRV_MEMORY_R $PROCESSES_QTT ") | |
| 2175 | - | |
| 2176 | - # NOTA: A estratégia abaixo foi utilizada para arredondar o valor | |
| 2177 | - # (remover o ponto flutuante)! By Questor | |
| 2178 | - REQ_TIMEOUT=${REQ_TIMEOUT%\.*} | |
| 2179 | - | |
| 2180 | - TOO_LOW_REQ_TIMEOUT="" | |
| 2181 | - if (( ${REQ_TIMEOUT} < 150 )) ; then | |
| 2182 | - TOO_LOW_REQ_TIMEOUT=" | |
| 2183 | -* WARNING: THE INSTALLER HAS CALCULATED A TOO LOW TIMEOUT VALUE FOR THIS SERVER. TIMEOUTS BELOW 150 SECONDS ARE CONSIDERED TOO LOW. CONSIDER USING A SERVER WITH MORE PROCESSORS AND/OR MEMORY." | |
| 2111 | + f_bytes_n_units "$F_SRV_MEMORY_R" "KB" "MB" | |
| 2112 | + F_SRV_MEMORY_R_IN_MB=$F_BYTES_N_UNITS_R | |
| 2113 | + f_get_percent_from "$F_SRV_MEMORY_R_IN_MB" "44" | |
| 2114 | + REQ_TIMEOUT=$F_GET_PERCENT_FROM_R | |
| 2115 | + TOO_LOW_REQ_TIMEOUT=" (good for most cases)!" | |
| 2116 | + if (( ${REQ_TIMEOUT} < 400 )) ; then | |
| 2117 | + TOO_LOW_REQ_TIMEOUT=". | |
| 2118 | + | |
| 2119 | +* WARNING: THE INSTALLER HAS CALCULATED A TOO LOW TIMEOUT VALUE FOR THIS SERVER. TIMEOUTS BELOW 400 SECONDS ARE CONSIDERED TOO LOW. CONSIDER USING A SERVER WITH MORE RAM! | |
| 2120 | +" | |
| 2184 | 2121 | fi |
| 2185 | 2122 | |
| 2186 | - # NOTE: Seta um valor adequado para "request timeout" conforme a | |
| 2187 | - # quantidade de núcleos e de memória da máquina! By Questor | |
| 2123 | + # NOTE: Calcula um valor de timeout conforme a quantidade de | |
| 2124 | + # memória RAM! By Questor | |
| 2188 | 2125 | f_div_section |
| 2189 | - f_get_usr_input "Enter the LBG - LBGenerator REQUEST TIMEOUT (numbers only, integers only). | |
| 2190 | -Use empty for \"$REQ_TIMEOUT\" (good for most cases and highly recommended)! | |
| 2191 | -* Decrease the value if you have application performance and server instability problems; | |
| 2192 | -* Higher values will cause server instability, crash and other unexpected results.$TOO_LOW_REQ_TIMEOUT" 1 | |
| 2126 | + f_get_usr_input "Enter the HTTP REQUEST TIMEOUT (numbers only, integers only). | |
| 2127 | +Use empty for \"$REQ_TIMEOUT\"$TOO_LOW_REQ_TIMEOUT | |
| 2128 | +* Use a numeric value equivalent at most 44% of your server RAM in MB; | |
| 2129 | +* Decrease the value if you have other applications using your server; | |
| 2130 | +* Higher values will cause LBG - LBGenerator and PostgreSQL services instability, crash and other unexpected results." 1 | |
| 2193 | 2131 | if [ -n "$GET_USR_INPUT_R" ] ; then |
| 2194 | 2132 | REQ_TIMEOUT=$GET_USR_INPUT_R |
| 2195 | 2133 | fi |
| 2196 | - | |
| 2197 | - f_ez_sed "<REQ_TIMEOUT>" "$REQ_TIMEOUT" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" | |
| 2198 | - | |
| 2134 | + f_ez_sed "<REQ_TIMEOUT>" "$REQ_TIMEOUT" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 | |
| 2135 | + f_get_percent_from "$F_SRV_MEMORY_R_IN_MB" "150" | |
| 2136 | + UWSGI_POST_BUFFERING=$F_GET_PERCENT_FROM_R | |
| 2137 | + f_ez_sed "<UWSGI_POST_BUFFERING>" "$UWSGI_POST_BUFFERING" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" | |
| 2138 | + f_get_percent_from "$F_SRV_MEMORY_R_IN_MB" "70" | |
| 2139 | + UWSGI_RELOAD_ON_AS=$F_GET_PERCENT_FROM_R | |
| 2140 | + f_ez_sed "<UWSGI_RELOAD_ON_AS>" "$UWSGI_RELOAD_ON_AS" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" | |
| 2141 | + f_get_percent_from "$F_SRV_MEMORY_R_IN_MB" "65" | |
| 2142 | + UWSGI_RELOAD_ON_RSS=$F_GET_PERCENT_FROM_R | |
| 2143 | + f_ez_sed "<UWSGI_RELOAD_ON_RSS>" "$UWSGI_RELOAD_ON_RSS" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" | |
| 2144 | + f_get_percent_from "$F_SRV_MEMORY_R_IN_MB" "85" | |
| 2145 | + UWSGI_EVIL_RELOAD_ON_AS=$F_GET_PERCENT_FROM_R | |
| 2146 | + f_ez_sed "<UWSGI_EVIL_RELOAD_ON_AS>" "$UWSGI_EVIL_RELOAD_ON_AS" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" | |
| 2147 | + f_get_percent_from "$F_SRV_MEMORY_R_IN_MB" "75" | |
| 2148 | + UWSGI_EVIL_RELOAD_ON_RSS=$F_GET_PERCENT_FROM_R | |
| 2149 | + f_ez_sed "<UWSGI_EVIL_RELOAD_ON_RSS>" "$UWSGI_EVIL_RELOAD_ON_RSS" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" | |
| 2199 | 2150 | f_chk_by_path_hlp "$NGINX_CONF_PATH/lbg.conf" "f" "\"lbg.conf\" already created in \"$NGINX_CONF_PATH/lbg.conf\"!" |
| 2200 | 2151 | F_BAK_MD_R=1 |
| 2201 | 2152 | if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then |
| ... | ... | @@ -2227,7 +2178,9 @@ Use empty for \"$REQ_TIMEOUT\" (good for most cases and highly recommended)! |
| 2227 | 2178 | elif [[ "$HTTP_SRV_WSGI" == "p" ]] ; then |
| 2228 | 2179 | eval "cp -f \"$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini.pserver-dist\" \"$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini\"" |
| 2229 | 2180 | f_ez_sed "<SQLA_POOL_SIZE>" "$SQLA_POOL_SIZE" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 |
| 2230 | - f_ez_sed "<SQLALCHEMY_URL>" "$PG_CFG_F" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 | |
| 2181 | + f_ez_sed "<SQLA_POOL_SIZE_MAX_OVERFLOW>" "$SQLA_POOL_SIZE" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 | |
| 2182 | + f_ez_sed "<LBI_LBINDEX_URL>" "$LBI_LBINDEX_URL" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" | |
| 2183 | + f_ez_sed "<SQLA_URL>" "$PG_CFG_F" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 | |
| 2231 | 2184 | f_ez_sed "<APP_ROOT_F>" "$APP_ROOT_F" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 |
| 2232 | 2185 | f_chk_by_path_hlp "$NGINX_CONF_PATH/lbg.conf" "f" "\"lbg.conf\" already created in \"$NGINX_CONF_PATH/lbg.conf\"!" |
| 2233 | 2186 | F_BAK_MD_R=1 |
| ... | ... | @@ -2238,9 +2191,10 @@ Use empty for \"$REQ_TIMEOUT\" (good for most cases and highly recommended)! |
| 2238 | 2191 | \cp "$SCRIPTDIR_V/other-srcs-n-apps/lbg.conf-ngix-pserve-dist" "$NGINX_CONF_PATH/lbg.conf" |
| 2239 | 2192 | |
| 2240 | 2193 | # NOTE: Determinar um número adequado de processos! By Questor |
| 2241 | - f_num_for_procs | |
| 2194 | + f_procs_qtt 2 | |
| 2195 | + | |
| 2242 | 2196 | UPSTREAM_LBG="" |
| 2243 | - for (( i=0; i < PROCESSES_QTT; i++ )) ; do | |
| 2197 | + for (( i=0; i < F_PROCS_QTT_R; i++ )) ; do | |
| 2244 | 2198 | UPSTREAM_LBG=$UPSTREAM_LBG" server 127.0.0.1:500$i;\n" |
| 2245 | 2199 | done |
| 2246 | 2200 | f_ez_sed "<UPSTREAM_LBG>" "$UPSTREAM_LBG" "$NGINX_CONF_PATH/lbg.conf" |
| ... | ... | @@ -2257,7 +2211,9 @@ Use empty for \"$REQ_TIMEOUT\" (good for most cases and highly recommended)! |
| 2257 | 2211 | f_ez_sed "<VE32_PATH>" "$BASE_INST_DIR_V/ve32" "$BASE_INST_DIR_V/ve32/src/LBGenerator/lbgenerator.wsgi" |
| 2258 | 2212 | eval "cp -f \"$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini.apache-dist\" \"$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini\"" |
| 2259 | 2213 | f_ez_sed "<SQLA_POOL_SIZE>" "$SQLA_POOL_SIZE" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 |
| 2260 | - f_ez_sed "<SQLALCHEMY_URL>" "$PG_CFG_F" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 | |
| 2214 | + f_ez_sed "<SQLA_POOL_SIZE_MAX_OVERFLOW>" "$SQLA_POOL_SIZE" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 | |
| 2215 | + f_ez_sed "<LBI_LBINDEX_URL>" "$LBI_LBINDEX_URL" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" | |
| 2216 | + f_ez_sed "<SQLA_URL>" "$PG_CFG_F" "$BASE_INST_DIR_V/ve32/src/LBGenerator/production.ini" 1 | |
| 2261 | 2217 | f_chk_by_path_hlp "$HTTPD_CONF_PATH/lbg.conf" "f" "\"lbg.conf\" already created in \"$HTTPD_CONF_PATH/lbg.conf\"!" |
| 2262 | 2218 | F_BAK_MD_R=1 |
| 2263 | 2219 | if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then | ... | ... |
liblightbase.tar.gz
No preview for this file type
other-srcs-n-apps/lbg.conf-ngix-uwsgi-dist
| ... | ... | @@ -27,10 +27,10 @@ server { |
| 27 | 27 | proxy_set_header X-Real-IP $remote_addr; |
| 28 | 28 | proxy_temp_file_write_size 64k; |
| 29 | 29 | send_timeout 600; # Timeout 10 minutes. |
| 30 | - uwsgi_connect_timeout 1800; # Timeout 30 minutes. | |
| 30 | + uwsgi_connect_timeout 3600; # Timeout 60 minutes. | |
| 31 | 31 | uwsgi_param SCRIPT_NAME ""; |
| 32 | 32 | uwsgi_pass unix:///tmp/lbg.sock; |
| 33 | - uwsgi_read_timeout 1800; # Timeout 30 minutes. | |
| 34 | - uwsgi_send_timeout 1800; # Timeout 30 minutes. | |
| 33 | + uwsgi_read_timeout 3600; # Timeout 60 minutes. | |
| 34 | + uwsgi_send_timeout 3600; # Timeout 60 minutes. | |
| 35 | 35 | } |
| 36 | 36 | } | ... | ... |
py-packs-LBGenerator.bash
| ... | ... | @@ -18,7 +18,7 @@ if [ -z "$BASE_INST_DIR_V" ] ; then |
| 18 | 18 | BASE_INST_DIR_V="/usr/local/lb" |
| 19 | 19 | |
| 20 | 20 | QUESTION_F="Enter the installation directory. |
| 21 | - Use empty for \"$BASE_INST_DIR_V\"!" | |
| 21 | +Use empty for \"$BASE_INST_DIR_V\"!" | |
| 22 | 22 | |
| 23 | 23 | f_get_usr_input "$QUESTION_F" 1 |
| 24 | 24 | QUESTION_F="" | ... | ... |
py-packs-liblightbase.bash
| ... | ... | @@ -18,7 +18,7 @@ if [ -z "$BASE_INST_DIR_V" ] ; then |
| 18 | 18 | BASE_INST_DIR_V="/usr/local/lb" |
| 19 | 19 | |
| 20 | 20 | QUESTION_F="Enter the installation directory. |
| 21 | - Use empty for \"$BASE_INST_DIR_V\"!" | |
| 21 | +Use empty for \"$BASE_INST_DIR_V\"!" | |
| 22 | 22 | |
| 23 | 23 | f_get_usr_input "$QUESTION_F" 1 |
| 24 | 24 | QUESTION_F="" | ... | ... |
py-packs-supervisor.bash
| ... | ... | @@ -18,7 +18,7 @@ if [ -z "$BASE_INST_DIR_V" ] ; then |
| 18 | 18 | BASE_INST_DIR_V="/usr/local/lb" |
| 19 | 19 | |
| 20 | 20 | QUESTION_F="Enter the installation directory. |
| 21 | - Use empty for \"$BASE_INST_DIR_V\"!" | |
| 21 | +Use empty for \"$BASE_INST_DIR_V\"!" | |
| 22 | 22 | |
| 23 | 23 | f_get_usr_input "$QUESTION_F" 1 |
| 24 | 24 | QUESTION_F="" | ... | ... |
py-packs-uwsgi.bash
| ... | ... | @@ -18,7 +18,7 @@ if [ -z "$BASE_INST_DIR_V" ] ; then |
| 18 | 18 | BASE_INST_DIR_V="/usr/local/lb" |
| 19 | 19 | |
| 20 | 20 | QUESTION_F="Enter the installation directory. |
| 21 | - Use empty for \"$BASE_INST_DIR_V\"!" | |
| 21 | +Use empty for \"$BASE_INST_DIR_V\"!" | |
| 22 | 22 | |
| 23 | 23 | f_get_usr_input "$QUESTION_F" 1 |
| 24 | 24 | QUESTION_F="" | ... | ... |