已合并
智能运维模块3个模块330版本的代码优化与bugfix #127
Louisyzh创建于 2023年3月15日
智能运维模块3个模块330版本的代码优化与bugfix #127
已合并
共 9 个文件变更+518-33
| @@ -9,24 +9,17 @@ import java.util.concurrent.CountDownLatch; | |||
| 9 | import java.util.concurrent.ThreadPoolExecutor; | 9 | import java.util.concurrent.ThreadPoolExecutor; |
| 10 | import java.util.concurrent.TimeUnit; | 10 | import java.util.concurrent.TimeUnit; |
| 11 | 11 | ||
| 12 | -import org.apache.commons.lang3.StringUtils; | ||
| 13 | import org.springframework.web.bind.annotation.GetMapping; | 12 | import org.springframework.web.bind.annotation.GetMapping; |
| 14 | import org.springframework.web.bind.annotation.PostMapping; | 13 | import org.springframework.web.bind.annotation.PostMapping; |
| 15 | import org.springframework.web.bind.annotation.RequestBody; | 14 | import org.springframework.web.bind.annotation.RequestBody; |
| 16 | import org.springframework.web.bind.annotation.RequestMapping; | 15 | import org.springframework.web.bind.annotation.RequestMapping; |
| 17 | -import org.springframework.web.bind.annotation.RequestParam; | ||
| 18 | import org.springframework.web.bind.annotation.RestController; | 16 | import org.springframework.web.bind.annotation.RestController; |
| 19 | 17 | ||
| 20 | import com.nctigba.common.web.exception.CustomException; | 18 | import com.nctigba.common.web.exception.CustomException; |
| 21 | import com.nctigba.common.web.result.AppResult; | 19 | import com.nctigba.common.web.result.AppResult; |
| 22 | import com.nctigba.observability.instance.model.monitoring.MonitoringParam; | 20 | import com.nctigba.observability.instance.model.monitoring.MonitoringParam; |
| 23 | -import com.nctigba.observability.instance.pool.SSHPoolManager; | ||
| 24 | import com.nctigba.observability.instance.service.MonitoringService; | 21 | import com.nctigba.observability.instance.service.MonitoringService; |
| 25 | -import com.nctigba.observability.instance.service.TopSQLService; | ||
| 26 | -import com.nctigba.observability.instance.service.ClusterManager.OpsClusterNodeVOSub; | ||
| 27 | -import com.nctigba.observability.instance.util.SSHOperator; | ||
| 28 | 22 | ||
| 29 | -import cn.hutool.json.JSONObject; | ||
| 30 | import lombok.RequiredArgsConstructor; | 23 | import lombok.RequiredArgsConstructor; |
| 31 | 24 | ||
| 32 | /** | 25 | /** |
| @@ -40,7 +33,6 @@ import lombok.RequiredArgsConstructor; | |||
| 40 | 33 | ||
| 41 | public class MonitoringController { | 34 | public class MonitoringController { |
| 42 | private final MonitoringService monitoringService; | 35 | private final MonitoringService monitoringService; |
| 43 | - private final TopSQLService topSQLService; | ||
| 44 | private final ThreadPoolExecutor pool = new ThreadPoolExecutor(10, 50, 60, TimeUnit.SECONDS, | 36 | private final ThreadPoolExecutor pool = new ThreadPoolExecutor(10, 50, 60, TimeUnit.SECONDS, |
| 45 | new ArrayBlockingQueue<Runnable>(100)); | 37 | new ArrayBlockingQueue<Runnable>(100)); |
| 46 | 38 | ||
| @@ -210,17 +202,4 @@ public class MonitoringController { | |||
| 210 | } | 202 | } |
| 211 | return AppResult.ok("").addData(map); | 203 | return AppResult.ok("").addData(map); |
| 212 | } | 204 | } |
| 213 | - | 205 | +} |
| 214 | - | ||
| 215 | - | ||
| 216 | - public AppResult process( String id) { | ||
| 217 | - OpsClusterNodeVOSub node = topSQLService.clusterNode(id); | ||
| 218 | - SSHOperator ssh = SSHPoolManager.getSSHOperator(node.getPrivateIp(), node.getHostPort(), "root", | ||
| 219 | - node.getRootPassword()); | ||
| 220 | - JSONObject o = new JSONObject(); | ||
| 221 | - o.putOnce("domain", node.getPublicIp() + ":" + node.getDbPort()); | ||
| 222 | - o.putOnce("process", ssh.executeCommandReturnStr("ps -ef|wc -l")); | ||
| 223 | - o.putOnce("minimal", StringUtils.equals(node.getVersion(), "MINIMAL_LIST")); | ||
| 224 | - return AppResult.ok("").addData(o); | ||
| 225 | - } | ||
| 226 | -} | ||
| @@ -10,6 +10,7 @@ import com.nctigba.common.web.exception.InstanceException; | |||
| 10 | import com.nctigba.observability.instance.dto.param.ParamInfoDTO; | 10 | import com.nctigba.observability.instance.dto.param.ParamInfoDTO; |
| 11 | import com.nctigba.observability.instance.model.param.ParamQuery; | 11 | import com.nctigba.observability.instance.model.param.ParamQuery; |
| 12 | import com.nctigba.observability.instance.service.ParamInfoService; | 12 | import com.nctigba.observability.instance.service.ParamInfoService; |
| 13 | +import com.nctigba.observability.instance.util.MessageSourceUtil; | ||
| 13 | 14 | ||
| 14 | import lombok.RequiredArgsConstructor; | 15 | import lombok.RequiredArgsConstructor; |
| 15 | 16 | ||
| @@ -28,6 +29,7 @@ public class ParamInfoController { | |||
| 28 | 29 | ||
| 29 | 30 | ||
| 30 | public List<ParamInfoDTO> paramInfo(ParamQuery paramQuery) { | 31 | public List<ParamInfoDTO> paramInfo(ParamQuery paramQuery) { |
| 32 | + MessageSourceUtil.reset(); | ||
| 31 | if ("".equals(paramQuery.getNodeId()) || paramQuery.getNodeId() == null) { | 33 | if ("".equals(paramQuery.getNodeId()) || paramQuery.getNodeId() == null) { |
| 32 | throw new InstanceException("nodeId is empty!"); | 34 | throw new InstanceException("nodeId is empty!"); |
| 33 | } | 35 | } |
| @@ -1,6 +1,7 @@ | |||
| 1 | package com.nctigba.observability.instance.dto.param; | 1 | package com.nctigba.observability.instance.dto.param; |
| 2 | 2 | ||
| 3 | import com.nctigba.observability.instance.entity.ParamInfo; | 3 | import com.nctigba.observability.instance.entity.ParamInfo; |
| 4 | +import com.nctigba.observability.instance.util.MessageSourceUtil; | ||
| 4 | 5 | ||
| 5 | import cn.hutool.core.bean.BeanUtil; | 6 | import cn.hutool.core.bean.BeanUtil; |
| 6 | import lombok.Data; | 7 | import lombok.Data; |
| @@ -12,15 +13,24 @@ public class ParamInfoDTO { | |||
| 12 | private Integer id; | 13 | private Integer id; |
| 13 | private String paramType; | 14 | private String paramType; |
| 14 | private String paramName; | 15 | private String paramName; |
| 15 | - private String paramDetail; | ||
| 16 | private String actualValue; | 16 | private String actualValue; |
| 17 | private String suggestValue; | 17 | private String suggestValue; |
| 18 | private String defaultValue; | 18 | private String defaultValue; |
| 19 | - private String unit; | ||
| 20 | - private String suggestExplain; | ||
| 21 | 19 | ||
| 22 | public ParamInfoDTO(ParamInfo info, String actualValue) { | 20 | public ParamInfoDTO(ParamInfo info, String actualValue) { |
| 23 | BeanUtil.copyProperties(info, this); | 21 | BeanUtil.copyProperties(info, this); |
| 24 | this.actualValue = actualValue; | 22 | this.actualValue = actualValue; |
| 25 | } | 23 | } |
| 24 | + | ||
| 25 | + public String getParamDetail() { | ||
| 26 | + return MessageSourceUtil.get(paramType + "." + paramName + ".paramDetail"); | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + public String getUnit() { | ||
| 30 | + return MessageSourceUtil.get(paramType + "." + paramName + ".unit"); | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + public String getSuggestExplain() { | ||
| 34 | + return MessageSourceUtil.get(paramType + "." + paramName + ".suggestExplain"); | ||
| 35 | + } | ||
| 26 | } | 36 | } |
| @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.annotation.IdType; | |||
| 9 | import com.baomidou.mybatisplus.annotation.TableField; | 9 | import com.baomidou.mybatisplus.annotation.TableField; |
| 10 | import com.baomidou.mybatisplus.annotation.TableId; | 10 | import com.baomidou.mybatisplus.annotation.TableId; |
| 11 | import com.baomidou.mybatisplus.annotation.TableName; | 11 | import com.baomidou.mybatisplus.annotation.TableName; |
| 12 | + | ||
| 12 | import lombok.Data; | 13 | import lombok.Data; |
| 13 | import lombok.NoArgsConstructor; | 14 | import lombok.NoArgsConstructor; |
| 14 | import lombok.experimental.Accessors; | 15 | import lombok.experimental.Accessors; |
| @@ -24,15 +25,12 @@ public class ParamInfo { | |||
| 24 | type paramType; | 25 | type paramType; |
| 25 | 26 | ||
| 26 | String paramName; | 27 | String paramName; |
| 27 | - | ||
| 28 | String paramDetail; | 28 | String paramDetail; |
| 29 | 29 | ||
| 30 | String suggestValue; | 30 | String suggestValue; |
| 31 | 31 | ||
| 32 | String defaultValue; | 32 | String defaultValue; |
| 33 | - | ||
| 34 | String unit; | 33 | String unit; |
| 35 | - | ||
| 36 | String suggestExplain; | 34 | String suggestExplain; |
| 37 | 35 | ||
| 38 | String diagnosisRule; | 36 | String diagnosisRule; |
| @@ -49,11 +47,8 @@ public class ParamInfo { | |||
| 49 | info.setId(rs.getInt("id")); | 47 | info.setId(rs.getInt("id")); |
| 50 | info.setParamName(rs.getString("paramName")); | 48 | info.setParamName(rs.getString("paramName")); |
| 51 | info.setParamType(type.valueOf(rs.getString("paramType"))); | 49 | info.setParamType(type.valueOf(rs.getString("paramType"))); |
| 52 | - info.setParamDetail(rs.getString("paramDetail")); | ||
| 53 | info.setSuggestValue(rs.getString("suggestValue")); | 50 | info.setSuggestValue(rs.getString("suggestValue")); |
| 54 | info.setDefaultValue(rs.getString("defaultValue")); | 51 | info.setDefaultValue(rs.getString("defaultValue")); |
| 55 | - info.setUnit(rs.getString("unit")); | ||
| 56 | - info.setSuggestExplain(rs.getString("suggestExplain")); | ||
| 57 | list.add(info); | 52 | list.add(info); |
| 58 | } | 53 | } |
| 59 | return list; | 54 | return list; |
| @@ -0,0 +1,48 @@ | |||
| 1 | +package com.nctigba.observability.instance.util; | ||
| 2 | + | ||
| 3 | +import java.util.Locale; | ||
| 4 | + | ||
| 5 | +import javax.servlet.http.HttpServletRequest; | ||
| 6 | + | ||
| 7 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 8 | +import org.springframework.context.MessageSource; | ||
| 9 | +import org.springframework.http.HttpHeaders; | ||
| 10 | +import org.springframework.stereotype.Component; | ||
| 11 | +import org.springframework.web.context.request.RequestContextHolder; | ||
| 12 | +import org.springframework.web.context.request.ServletRequestAttributes; | ||
| 13 | + | ||
| 14 | + | ||
| 15 | +public class MessageSourceUtil { | ||
| 16 | + private static MessageSource messageSource; | ||
| 17 | + private static final ThreadLocal<Locale> LOC = new ThreadLocal<>(); | ||
| 18 | + | ||
| 19 | + | ||
| 20 | + public void setMessageSource(MessageSource messageSource) { | ||
| 21 | + MessageSourceUtil.messageSource = messageSource; | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + public static String get(String key) { | ||
| 25 | + return messageSource.getMessage(key, null, key, getLocale()); | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + public static void reset() { | ||
| 29 | + LOC.remove(); | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + private static Locale getLocale() { | ||
| 33 | + if(LOC.get()!=null) | ||
| 34 | + return LOC.get(); | ||
| 35 | + final HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()) | ||
| 36 | + .getRequest(); | ||
| 37 | + var language = request.getHeader(HttpHeaders.CONTENT_LANGUAGE); | ||
| 38 | + Locale locale; | ||
| 39 | + if (language == null || language.isBlank()) | ||
| 40 | + locale = Locale.CHINA; | ||
| 41 | + else { | ||
| 42 | + var str = language.split("_"); | ||
| 43 | + locale = new Locale(str[0], str[1]); | ||
| 44 | + } | ||
| 45 | + LOC.set(locale); | ||
| 46 | + return locale; | ||
| 47 | + } | ||
| 48 | +} | ||
| @@ -0,0 +1,152 @@ | |||
| 1 | +OS.net.ipv4.tcp_max_tw_buckets.paramDetail=Said while keeping the TIME_WAIT state maximum number of TCP/IP connection. If more than the configured value, TIME_WAIT will be immediately released and print the warning message | ||
| 2 | +OS.net.ipv4.tcp_tw_reuse.paramDetail=Allow the TIME - WAIT state sockets for a new TCP connection | ||
| 3 | +OS.net.ipv4.tcp_tw_recycle.paramDetail=Said to open a TCP connection in TIME - WAIT state sockets rapid recovery | ||
| 4 | +DB.max_process_memory.paramDetail=Set up a database node largest physical memory available | ||
| 5 | +DB.work_mem.paramDetail=Job execution judgment may use memory in the footwall operator is influenced by inventory | ||
| 6 | +DB.pagewriter_sleep.paramDetail=On the set for incremental checkpoint, pagewrite thread every brush pagewriter_sleep time of a batch of dirty pages footwall. When the proportion of dirty pages occupy shared_buffers reaches dirty_page_percent_max, each batch of pages at a set number of max_io_capacity page to calculate the value of the brush, the rest is less in proportion each batch page number | ||
| 7 | +OS.net.ipv4.ip_local_port_range.paramDetail=Physical machine available temporary port range | ||
| 8 | +OS.net.ipv4.tcp_keepalive_time.paramDetail=Said when the keepalive enabled, the frequency of the TCP keepalive messages sent | ||
| 9 | +OS.net.ipv4.tcp_keepalive_probes.paramDetail=Before that connection failure, send TCP keepalive probe packets. This value multiplied by tcp_keepalive_intvl determines a connection after sending keepalive can have how much time did not respond | ||
| 10 | +OS.net.ipv4.tcp_keepalive_intvl.paramDetail=When detecting no confirmation, resend detection frequency | ||
| 11 | +OS.net.ipv4.tcp_retries1.paramDetail=In the process of building connection TCP maximum retries | ||
| 12 | +OS.net.ipv4.tcp_syn_retries.paramDetail=TCP SYN packet retries | ||
| 13 | +OS.net.ipv4.tcp_synack_retries.paramDetail=TCP SYN response packet maximum retries | ||
| 14 | +OS.net.ipv4.tcp_retries2.paramDetail=Control the kernel to have establish a connection to the remote host to send data to the number of times | ||
| 15 | +OS.vm.overcommit_memory.paramDetail=Control when doing the memory allocation, the kernel checks | ||
| 16 | +OS.net.ipv4.tcp_rmem.paramDetail=TCP protocol at the receiving end of the buffer size of available memory | ||
| 17 | +OS.net.core.wmem_max.paramDetail=The maximum number of sockets sender buffer size | ||
| 18 | +OS.net.core.rmem_max.paramDetail=The maximum number of sockets receiver buffer size | ||
| 19 | +OS.net.core.wmem_default.paramDetail=The default value of socket sender buffer size | ||
| 20 | +OS.net.core.rmem_default.paramDetail=The default value of the receiver of the socket buffer size | ||
| 21 | +OS.kernel.sem.paramDetail=The kernel semaphore parameters set size | ||
| 22 | +OS.vm.min_free_kbytes.paramDetail=Ensure that physical memory has enough free space to prevent sudden change page | ||
| 23 | +OS.net.core.somaxconn.paramDetail=Defines the system of each port's largest listening to the queue length | ||
| 24 | +OS.net.ipv4.tcp_syncookies.paramDetail=When there is a SYN waiting queue overflow, enable the cookies, can prevent a small amount of SYN attacks | ||
| 25 | +OS.net.core.netdev_max_backlog.paramDetail=In the rate of each network interface receives packets faster than the rate of kernel processing these packages, to allow the maximum number of packets sent to queue | ||
| 26 | +OS.net.ipv4.tcp_max_syn_backlog.paramDetail=Records of those who have not yet received the client confirmation of the maximum number of connection requests | ||
| 27 | +OS.net.ipv4.tcp_fin_timeout.paramDetail=The system default timeout | ||
| 28 | +OS.kernel.shmall.paramDetail=The kernel of the available amount of Shared memory | ||
| 29 | +OS.kernel.shmmax.paramDetail=A maximum of the kernel parameters define a single Shared memory segment | ||
| 30 | +OS.net.ipv4.tcp_sack.paramDetail=Enable selective response, by selectively response out-of-order packets to improve performance, get to the sender to send only the missing segments (for wide area network) this option should be enabled, but will increase the CPU | ||
| 31 | +OS.net.ipv4.tcp_timestamps.paramDetail=The TCP time stamp (12) will increase in the TCP header, send timeout proportion in a more precise way (see RFC 1323) to enable the RTT calculation, can achieve better performance | ||
| 32 | +OS.vm.extfrag_threshold.paramDetail=System memory fails, will the Linux memory fragments score for the current system, if more than the vm extfrag_threshold value, kswapd will trigger the memory compaction. So the value is close to 1000, the system in the processing of memory fragments tend to see the old pages out, for meeting the need of application, and set close to 0, the said system in the processing of memory fragments tend to do the memory compaction | ||
| 33 | +OS.vm.overcommit_ratio.paramDetail=System must not be used too much memory algorithm, the system shall not exceed the memory address space swap RAM the percentage value of this parameter, when the vm. The overcommit_memory = 2 when the parameters take effect | ||
| 34 | +OS.MTU.paramDetail=The maximum transmission unit node network card. OS the default value is 1500, adjusted to 8192 can improve the performance of SCTP protocol data transceiver | ||
| 35 | +DB.bgwriter_delay.paramDetail=Set the write the back-end process "dirty" the time interval between the Shared buffer | ||
| 36 | +DB.bgwriter_thread_num.paramDetail=Set the backend process | ||
| 37 | +DB.max_io_capacity.paramDetail=Set the back-end process batch brush pages per second IO ceiling, need according to specific business scenarios and disk I/o capability set machine | ||
| 38 | +DB.log_min_duration_statement.paramDetail=When the duration of a statement is greater than or equal to the specified number of milliseconds, log_min_duration_statement parameter is used to control the record the duration of each complete statement | ||
| 39 | +DB.log_duration.paramDetail=Control each completed record of SQL statement execution time. Extended query protocols are used for the client, will record the syntax analysis, binding, and perform the time spent on each step | ||
| 40 | +DB.track_stmt_stat_level.paramDetail=Control statement execution trace level, the parameters in the first part is not OFF, will record all the SQL, the first part is OFF, the second part is a OFF cases, only records the slow SQL | ||
| 41 | +DB.track_stmt_retention_time.paramDetail=Combination of parameters, control the quantity/slow SQL record retention time. Read the parameters for 60 seconds period, and perform the cleaning records of more than retention time, only the sysadmin user can access | ||
| 42 | +DB.enable_thread_pool.paramDetail=The control function of whether to use a thread pool | ||
| 43 | +DB.thread_pool_attr.paramDetail=Detailed attribute is used to control the function of the thread pool, this parameter can only take effect after enable_thread_pool open. | ||
| 44 | +DB.log_statement.paramDetail=Control record SQL statements. On extending the query protocols used by the client, record received news events and the value of the binding parameters | ||
| 45 | +DB.log_error_verbosity.paramDetail=Control server log write the detailed degree of each record | ||
| 46 | +DB.log_min_messages.paramDetail=The message level control to the server log file. Each level contains the information in the row behind it all levels. The lower level, the less the server running log message | ||
| 47 | +DB.log_min_error_statement.paramDetail=Control in the SQL server error log. | ||
| 48 | + | ||
| 49 | +OS.net.ipv4.tcp_max_tw_buckets.unit=The number of | ||
| 50 | +OS.net.ipv4.tcp_tw_reuse.unit=Boolean value | ||
| 51 | +OS.net.ipv4.tcp_tw_recycle.unit=Boolean value | ||
| 52 | +DB.max_process_memory.unit=Boolean value | ||
| 53 | +DB.work_mem.unit=Boolean value | ||
| 54 | +DB.pagewriter_sleep.unit=ms | ||
| 55 | +OS.net.ipv4.ip_local_port_range.unit=The number of | ||
| 56 | +OS.net.ipv4.tcp_keepalive_time.unit=seconds | ||
| 57 | +OS.net.ipv4.tcp_keepalive_probes.unit=seconds | ||
| 58 | +OS.net.ipv4.tcp_keepalive_intvl.unit=seconds | ||
| 59 | +OS.net.ipv4.tcp_retries1.unit=The number of | ||
| 60 | +OS.net.ipv4.tcp_syn_retries.unit=The number of | ||
| 61 | +OS.net.ipv4.tcp_synack_retries.unit=The number of | ||
| 62 | +OS.net.ipv4.tcp_retries2.unit=The number of | ||
| 63 | +OS.vm.overcommit_memory.unit=way | ||
| 64 | +OS.net.ipv4.tcp_rmem.unit=byte | ||
| 65 | +OS.net.core.wmem_max.unit=byte | ||
| 66 | +OS.net.core.rmem_max.unit=byte | ||
| 67 | +OS.net.core.wmem_default.unit=byte | ||
| 68 | +OS.net.core.rmem_default.unit=byte | ||
| 69 | +OS.kernel.sem.unit=byte | ||
| 70 | +OS.vm.min_free_kbytes.unit=byte | ||
| 71 | +OS.net.core.somaxconn.unit=The number of | ||
| 72 | +OS.net.ipv4.tcp_syncookies.unit=Boolean value | ||
| 73 | +OS.net.core.netdev_max_backlog.unit=The number of | ||
| 74 | +OS.net.ipv4.tcp_max_syn_backlog.unit=The number of | ||
| 75 | +OS.net.ipv4.tcp_fin_timeout.unit=seconds | ||
| 76 | +OS.kernel.shmall.unit=byte | ||
| 77 | +OS.kernel.shmmax.unit=byte | ||
| 78 | +OS.net.ipv4.tcp_sack.unit=Boolean value | ||
| 79 | +OS.net.ipv4.tcp_timestamps.unit=Boolean value | ||
| 80 | +OS.vm.extfrag_threshold.unit=score | ||
| 81 | +OS.vm.overcommit_ratio.unit= | ||
| 82 | +OS.MTU.unit=byte | ||
| 83 | +DB.bgwriter_delay.unit=ms | ||
| 84 | +DB.bgwriter_thread_num.unit=The number of | ||
| 85 | +DB.max_io_capacity.unit=KB | ||
| 86 | +DB.log_min_duration_statement.unit=ms | ||
| 87 | +DB.log_duration.unit=Boolean value | ||
| 88 | +DB.track_stmt_stat_level.unit=character | ||
| 89 | +DB.track_stmt_retention_time.unit=character | ||
| 90 | +DB.enable_thread_pool.unit=Boolean value | ||
| 91 | +DB.thread_pool_attr.unit=character | ||
| 92 | +DB.log_statement.unit=Enumeration type | ||
| 93 | +DB.log_error_verbosity.unit=Enumeration type | ||
| 94 | +DB.log_min_messages.unit=Enumeration type | ||
| 95 | +DB.log_min_error_statement.unit=Enumeration type | ||
| 96 | + | ||
| 97 | +OS.net.ipv4.tcp_max_tw_buckets.suggestExplain=System at the same time the largest processing timewait number of sockets. If more than this number, the time to wait the socket will be immediately axe and display warning information. To set the limit, in order to resist those simple pure DoS attacks, however, if the conditions need to be more than the default value of the network, you can improve it (perhaps even more memory). (in fact do NAT best can appropriately increase the value) | ||
| 98 | +OS.net.ipv4.tcp_tw_reuse.suggestExplain=Indicates whether or not allowed to apply in TIME - WAIT state of the socket for the new TCP connection (this to restart some service, quickly and start the prompt after the port is already in use case is helpful) | ||
| 99 | +OS.net.ipv4.tcp_tw_recycle.suggestExplain=Open the quick TIME - WAIT sockets. Unless technical expert advice or request, please do not modify this value. (do NAT, suggest to open it) | ||
| 100 | +DB.max_process_memory.suggestExplain=Database node on the numerical need according to the system of physical memory and single node deployment master database nodes is decided. Computation formula is as follows: (physical memory size - vm. Min_free_kbytes) \ * 0.7 / (1 master node number). The coefficient of the purpose is to guarantee the reliability of the system as much as possible, not caused by database memory expansion node OOM. The formula mentioned in the vm min_free_kbytes, its meaning is reserved operating system memory used by the kernel, is often used as a communication transceiver in the operating system kernel memory allocation, at least for 5 \ufffd. Namely, max_process_memory = physical memory * 0.665 / (1) master node number | ||
| 101 | +DB.work_mem.suggestExplain=Parameter is usually a balance, that is, to ensure the concurrent throughput, and to ensure the Performance of the single query operation, so the need according to the actual implementation (a combination of the Explain output Performance) tuning | ||
| 102 | +DB.pagewriter_sleep.suggestExplain= | ||
| 103 | +OS.net.ipv4.ip_local_port_range.suggestExplain=Said to outside connection port range, the default is small, this range will also indirectly used for NAT table size | ||
| 104 | +OS.net.ipv4.tcp_keepalive_time.suggestExplain=TCP keepalive probe messages sent time interval (in seconds), is used to confirm a TCP connection is valid. But don't send the data to establish the connection on both sides to prevent attacks | ||
| 105 | +OS.net.ipv4.tcp_keepalive_probes.suggestExplain=TCP keepalive probe messages sent time interval (in seconds), is used to confirm a TCP connection is valid | ||
| 106 | +OS.net.ipv4.tcp_keepalive_intvl.suggestExplain=Detecting messages did not get the response, resend the message time interval (in seconds). The default value is 75 seconds. (for general applications, there are some big, this value can change a little according to need. Especially the web server needs to change small the value, 15 is a more appropriate value) | ||
| 107 | +OS.net.ipv4.tcp_retries1.suggestExplain=Give up to respond to a TCP connection request, need to how much time before retrying. The RFC minimum value is 3 | ||
| 108 | +OS.net.ipv4.tcp_syn_retries.suggestExplain=How much for a new connection, the kernel to send a SYN connection request to decide to give up. Should not be greater than 255, the default value is 5, corresponding to the 180 seconds of time.. (for large load and good physical communication network, this value is high, can be changed to 2. This value is only in view of the external connection, the incoming connection, is determined by tcp_retries1) | ||
| 109 | +OS.net.ipv4.tcp_synack_retries.suggestExplain=For remote connection requests the SYN, the kernel sends the SYN + ACK datagram, to confirm a SYN connection request packets received. This is called the three-way handshake (threeway handshake) mechanism of the second step. Here decided to sent by the kernel before giving up connection SYN ACK number. Should not be greater than 255, the default value is 5, corresponding to the 180 seconds of time | ||
| 110 | +OS.net.ipv4.tcp_retries2.suggestExplain=Discarding the activation (communication) has been established in TCP connection, need to how much time before retrying. The default value is 15, according to the RTO value to decide, the equivalent of 13-30 minutes (RFC1122 regulation, must be greater than 100 seconds). (this value according to the current network Settings, can be appropriately changed little, I change to 5) within the network | ||
| 111 | +"OS.vm.overcommit_memory.suggestExplain=Vm. Overcommit_memory file specifies the kernel for memory allocation strategy, its value is 0, 1, 2 | ||
| 112 | +0: (default) said the kernel will check whether there is enough memory available supply process; If there is enough memory available, memory applications allow; Otherwise, the memory for failure, and the error is returned to the application process. 0 is heuristic overcommitting handle, will try to reduce the use of the swap, the root can be allocated slightly more memory than the average user | ||
| 113 | +1: the kernel allows allocation of all physical memory, however, the current state of the memory, allowing more than CommitLimit, until run out of memory. On the database server is set to 1, is not recommended to try to avoid using the swap. | ||
| 114 | +2: said not allowed more than CommitLimit values" | ||
| 115 | +OS.net.ipv4.tcp_rmem.suggestExplain=Receive tcp_wmem cache Settings | ||
| 116 | +OS.net.core.wmem_max.suggestExplain=Most TCP data buffer | ||
| 117 | +OS.net.core.rmem_max.suggestExplain=Most TCP data receiving buffer | ||
| 118 | +OS.net.core.wmem_default.suggestExplain=The default send window size | ||
| 119 | +OS.net.core.rmem_default.suggestExplain=The default receive window size | ||
| 120 | +OS.kernel.sem.suggestExplain= | ||
| 121 | +OS.vm.min_free_kbytes.suggestExplain= | ||
| 122 | +OS.net.core.somaxconn.suggestExplain=Used to limit the number of listening (LISTEN) biggest packet queue, more than the number of links will lead to a timeout or trigger retransmission mechanism. Listen in the web application function of backlog will give us the kernel by default parameters of the net. Core. Somaxconn limit to 128, and defined nginx NGX_LISTEN_BACKLOG defaults to 511, it is necessary to adjust this value. On a busy server, increasing the value is helpful to network performance | ||
| 123 | +OS.net.ipv4.tcp_syncookies.suggestExplain=Only when the kernel compilation occurs when chose CONFIG_SYNCOOKIES role. When there is overflow appeared syn waiting queue syncookies like the other sent. The goal is to prevent the syn flood attack | ||
| 124 | +OS.net.core.netdev_max_backlog.suggestExplain= | ||
| 125 | +OS.net.ipv4.tcp_max_syn_backlog.suggestExplain=For those who still have not yet received the client confirmation of connection requests, maximum number needs to be saved in the queue. For more than 128 MB of memory system, the default value is 1024, less than 128 MB of 128. If the server is often appear overload, can try to increase the number. Warning! If you see this value is set to greater than 1024, best to modify the include/net/TCP. H TCP_SYNQ_HSIZE inside, to keep TCP_SYNQ_HSIZE * 16 (SYN Flood attack using TCP protocol distribute defects of shaking hands, a false source IP address sends a large number of the TCP SYN - half to open the connection to the target system, eventually leading to the target system Socket queue resources exhausted and can not accept new connections. To cope with this attack, the more widely used in modern Unix systems connected to buffer queue processing way, not to solve this kind of attack, is to use a basic queue processing normal to Connect fully application (the Connect () and the Accept ()), is to use another queue separately store half open the connection. This double queue processing method and some other system kernel measures (such as Syn - Cookies/Caches) joint application, can more effectively relieve small-scale Syn Flood attack (proved) | ||
| 126 | +OS.net.ipv4.tcp_fin_timeout.suggestExplain=Disconnect the socket for this end, the TCP remain in a state of FIN - WAIT - 2 time. The other party may be disconnected or has not been end connections or unpredictable process of death | ||
| 127 | +OS.kernel.shmall.suggestExplain= | ||
| 128 | +OS.kernel.shmmax.suggestExplain= | ||
| 129 | +OS.net.ipv4.tcp_sack.suggestExplain=Using Selective ACK, it can be used to find specific lost datagram - so would help to recover quickly. The file said whether to enable Selective response (Selective Acknowledgment), this can be achieved by selectively response out-of-order receives the message to improve performance (this allows the sender to send only the lost packet). (this option should be enabled for wan communication, but it will add to the CPU | ||
| 130 | +OS.net.ipv4.tcp_timestamps.suggestExplain=Timestamps in other things, can prevent the forgery of sequence number. A 1 g broadband lines may be met with heavy out - of - line numerical old sequence number (if it is due to last time). Timestamp will make it knows this is a 'old packet. Said (the file is enabled in a more accurate than the timeout retransmission method (RFC 1323) to enable the RTT calculation; In order to achieve better performance should enable this option.) | ||
| 131 | +OS.vm.extfrag_threshold.suggestExplain= | ||
| 132 | +OS.vm.overcommit_ratio.suggestExplain=The parameter value is only in the vm. Overcommit_memory = 2 cases, this parameter will only take effect | ||
| 133 | +OS.MTU.suggestExplain= | ||
| 134 | +DB.bgwriter_delay.suggestExplain=In the larger data write pressure can try to reduce the value in the scene in order to reduce the pressure of the checkpoint | ||
| 135 | +DB.bgwriter_thread_num.suggestExplain= | ||
| 136 | +DB.max_io_capacity.suggestExplain= | ||
| 137 | +"DB.log_min_duration_statement.suggestExplain=Set to 250, all run time not shorter than 250 ms SQL statements can be recorded. | ||
| 138 | +The duration of the output is set to 0, all statements. | ||
| 139 | +Set to 1, close this function" | ||
| 140 | +"DB.log_duration.suggestExplain=With this option is set to off, log_min_duration_statement differs log_min_duration_statement record query text. | ||
| 141 | +Set to on and log_min_duration_statement greater than zero, record all duration, but only recorded more than threshold value statements. This can be used in high load cases to collect statistics" | ||
| 142 | +DB.track_stmt_stat_level.suggestExplain= | ||
| 143 | +DB.track_stmt_retention_time.suggestExplain= | ||
| 144 | +"DB.enable_thread_pool.suggestExplain=Open thread pool function on said. | ||
| 145 | +Off said not unlock the function of the thread pool" | ||
| 146 | +DB.thread_pool_attr.suggestExplain= | ||
| 147 | +"DB.log_statement.suggestExplain=None said not recorded statements.DDL said record all data definition statements, such as CREATE, ALTER, and DROP statement. | ||
| 148 | +Mod said record all DDL statements, including data modification statements INSERT, UPDATE, DELETE, TRUNCATE, and COPY the FROM. | ||
| 149 | +All said record all statements, PREPARE, EXECUTE, and EXPLAIN ANALYZE statement also be recorded" | ||
| 150 | +DB.log_error_verbosity.suggestExplain=Terse represents output does not include the DETAIL, HINT, records of the QUERY and the CONTEXT error message.Verbose output including SQLSTATE error code, source code file name, the function name and the number of rows in the wrong.Default on behalf of output including the DETAIL, HINT, records of the QUERY and the CONTEXT error messages, not including SQLSTATE error code, source code file name, the function name and the number of rows in the wrong | ||
| 151 | +DB.log_min_messages.suggestExplain=\u6709\u6548\u503c\u6709\u8c03\u8bd5\u3001debug5 debug4, debug3, debug2, debug1,\u4fe1\u606f,\u65e5\u5fd7,\u6ce8\u610f,\u8b66\u544a\u3001\u9519\u8bef,\u81f4\u547d\u7684,\u6050\u614c\u3002 | ||
| 152 | +DB.log_min_error_statement.suggestExplain=\u6709\u6548\u503c\u6709\u8c03\u8bd5\u3001debug5 debug4, debug3, debug2, debug1,\u4fe1\u606f,\u65e5\u5fd7,\u6ce8\u610f,\u8b66\u544a\u3001\u9519\u8bef,\u81f4\u547d\u7684,\u6050\u614c\u3002 | ||
| @@ -0,0 +1,152 @@ | |||
| 1 | +OS.net.ipv4.tcp_max_tw_buckets.paramDetail=Said while keeping the TIME_WAIT state maximum number of TCP/IP connection. If more than the configured value, TIME_WAIT will be immediately released and print the warning message | ||
| 2 | +OS.net.ipv4.tcp_tw_reuse.paramDetail=Allow the TIME - WAIT state sockets for a new TCP connection | ||
| 3 | +OS.net.ipv4.tcp_tw_recycle.paramDetail=Said to open a TCP connection in TIME - WAIT state sockets rapid recovery | ||
| 4 | +DB.max_process_memory.paramDetail=Set up a database node largest physical memory available | ||
| 5 | +DB.work_mem.paramDetail=Job execution judgment may use memory in the footwall operator is influenced by inventory | ||
| 6 | +DB.pagewriter_sleep.paramDetail=On the set for incremental checkpoint, pagewrite thread every brush pagewriter_sleep time of a batch of dirty pages footwall. When the proportion of dirty pages occupy shared_buffers reaches dirty_page_percent_max, each batch of pages at a set number of max_io_capacity page to calculate the value of the brush, the rest is less in proportion each batch page number | ||
| 7 | +OS.net.ipv4.ip_local_port_range.paramDetail=Physical machine available temporary port range | ||
| 8 | +OS.net.ipv4.tcp_keepalive_time.paramDetail=Said when the keepalive enabled, the frequency of the TCP keepalive messages sent | ||
| 9 | +OS.net.ipv4.tcp_keepalive_probes.paramDetail=Before that connection failure, send TCP keepalive probe packets. This value multiplied by tcp_keepalive_intvl determines a connection after sending keepalive can have how much time did not respond | ||
| 10 | +OS.net.ipv4.tcp_keepalive_intvl.paramDetail=When detecting no confirmation, resend detection frequency | ||
| 11 | +OS.net.ipv4.tcp_retries1.paramDetail=In the process of building connection TCP maximum retries | ||
| 12 | +OS.net.ipv4.tcp_syn_retries.paramDetail=TCP SYN packet retries | ||
| 13 | +OS.net.ipv4.tcp_synack_retries.paramDetail=TCP SYN response packet maximum retries | ||
| 14 | +OS.net.ipv4.tcp_retries2.paramDetail=Control the kernel to have establish a connection to the remote host to send data to the number of times | ||
| 15 | +OS.vm.overcommit_memory.paramDetail=Control when doing the memory allocation, the kernel checks | ||
| 16 | +OS.net.ipv4.tcp_rmem.paramDetail=TCP protocol at the receiving end of the buffer size of available memory | ||
| 17 | +OS.net.core.wmem_max.paramDetail=The maximum number of sockets sender buffer size | ||
| 18 | +OS.net.core.rmem_max.paramDetail=The maximum number of sockets receiver buffer size | ||
| 19 | +OS.net.core.wmem_default.paramDetail=The default value of socket sender buffer size | ||
| 20 | +OS.net.core.rmem_default.paramDetail=The default value of the receiver of the socket buffer size | ||
| 21 | +OS.kernel.sem.paramDetail=The kernel semaphore parameters set size | ||
| 22 | +OS.vm.min_free_kbytes.paramDetail=Ensure that physical memory has enough free space to prevent sudden change page | ||
| 23 | +OS.net.core.somaxconn.paramDetail=Defines the system of each port's largest listening to the queue length | ||
| 24 | +OS.net.ipv4.tcp_syncookies.paramDetail=When there is a SYN waiting queue overflow, enable the cookies, can prevent a small amount of SYN attacks | ||
| 25 | +OS.net.core.netdev_max_backlog.paramDetail=In the rate of each network interface receives packets faster than the rate of kernel processing these packages, to allow the maximum number of packets sent to queue | ||
| 26 | +OS.net.ipv4.tcp_max_syn_backlog.paramDetail=Records of those who have not yet received the client confirmation of the maximum number of connection requests | ||
| 27 | +OS.net.ipv4.tcp_fin_timeout.paramDetail=The system default timeout | ||
| 28 | +OS.kernel.shmall.paramDetail=The kernel of the available amount of Shared memory | ||
| 29 | +OS.kernel.shmmax.paramDetail=A maximum of the kernel parameters define a single Shared memory segment | ||
| 30 | +OS.net.ipv4.tcp_sack.paramDetail=Enable selective response, by selectively response out-of-order packets to improve performance, get to the sender to send only the missing segments (for wide area network) this option should be enabled, but will increase the CPU | ||
| 31 | +OS.net.ipv4.tcp_timestamps.paramDetail=The TCP time stamp (12) will increase in the TCP header, send timeout proportion in a more precise way (see RFC 1323) to enable the RTT calculation, can achieve better performance | ||
| 32 | +OS.vm.extfrag_threshold.paramDetail=System memory fails, will the Linux memory fragments score for the current system, if more than the vm extfrag_threshold value, kswapd will trigger the memory compaction. So the value is close to 1000, the system in the processing of memory fragments tend to see the old pages out, for meeting the need of application, and set close to 0, the said system in the processing of memory fragments tend to do the memory compaction | ||
| 33 | +OS.vm.overcommit_ratio.paramDetail=System must not be used too much memory algorithm, the system shall not exceed the memory address space swap RAM the percentage value of this parameter, when the vm. The overcommit_memory = 2 when the parameters take effect | ||
| 34 | +OS.MTU.paramDetail=The maximum transmission unit node network card. OS the default value is 1500, adjusted to 8192 can improve the performance of SCTP protocol data transceiver | ||
| 35 | +DB.bgwriter_delay.paramDetail=Set the write the back-end process "dirty" the time interval between the Shared buffer | ||
| 36 | +DB.bgwriter_thread_num.paramDetail=Set the backend process | ||
| 37 | +DB.max_io_capacity.paramDetail=Set the back-end process batch brush pages per second IO ceiling, need according to specific business scenarios and disk I/o capability set machine | ||
| 38 | +DB.log_min_duration_statement.paramDetail=When the duration of a statement is greater than or equal to the specified number of milliseconds, log_min_duration_statement parameter is used to control the record the duration of each complete statement | ||
| 39 | +DB.log_duration.paramDetail=Control each completed record of SQL statement execution time. Extended query protocols are used for the client, will record the syntax analysis, binding, and perform the time spent on each step | ||
| 40 | +DB.track_stmt_stat_level.paramDetail=Control statement execution trace level, the parameters in the first part is not OFF, will record all the SQL, the first part is OFF, the second part is a OFF cases, only records the slow SQL | ||
| 41 | +DB.track_stmt_retention_time.paramDetail=Combination of parameters, control the quantity/slow SQL record retention time. Read the parameters for 60 seconds period, and perform the cleaning records of more than retention time, only the sysadmin user can access | ||
| 42 | +DB.enable_thread_pool.paramDetail=The control function of whether to use a thread pool | ||
| 43 | +DB.thread_pool_attr.paramDetail=Detailed attribute is used to control the function of the thread pool, this parameter can only take effect after enable_thread_pool open. | ||
| 44 | +DB.log_statement.paramDetail=Control record SQL statements. On extending the query protocols used by the client, record received news events and the value of the binding parameters | ||
| 45 | +DB.log_error_verbosity.paramDetail=Control server log write the detailed degree of each record | ||
| 46 | +DB.log_min_messages.paramDetail=The message level control to the server log file. Each level contains the information in the row behind it all levels. The lower level, the less the server running log message | ||
| 47 | +DB.log_min_error_statement.paramDetail=Control in the SQL server error log. | ||
| 48 | + | ||
| 49 | +OS.net.ipv4.tcp_max_tw_buckets.unit=The number of | ||
| 50 | +OS.net.ipv4.tcp_tw_reuse.unit=Boolean value | ||
| 51 | +OS.net.ipv4.tcp_tw_recycle.unit=Boolean value | ||
| 52 | +DB.max_process_memory.unit=Boolean value | ||
| 53 | +DB.work_mem.unit=Boolean value | ||
| 54 | +DB.pagewriter_sleep.unit=ms | ||
| 55 | +OS.net.ipv4.ip_local_port_range.unit=The number of | ||
| 56 | +OS.net.ipv4.tcp_keepalive_time.unit=seconds | ||
| 57 | +OS.net.ipv4.tcp_keepalive_probes.unit=seconds | ||
| 58 | +OS.net.ipv4.tcp_keepalive_intvl.unit=seconds | ||
| 59 | +OS.net.ipv4.tcp_retries1.unit=The number of | ||
| 60 | +OS.net.ipv4.tcp_syn_retries.unit=The number of | ||
| 61 | +OS.net.ipv4.tcp_synack_retries.unit=The number of | ||
| 62 | +OS.net.ipv4.tcp_retries2.unit=The number of | ||
| 63 | +OS.vm.overcommit_memory.unit=way | ||
| 64 | +OS.net.ipv4.tcp_rmem.unit=byte | ||
| 65 | +OS.net.core.wmem_max.unit=byte | ||
| 66 | +OS.net.core.rmem_max.unit=byte | ||
| 67 | +OS.net.core.wmem_default.unit=byte | ||
| 68 | +OS.net.core.rmem_default.unit=byte | ||
| 69 | +OS.kernel.sem.unit=byte | ||
| 70 | +OS.vm.min_free_kbytes.unit=byte | ||
| 71 | +OS.net.core.somaxconn.unit=The number of | ||
| 72 | +OS.net.ipv4.tcp_syncookies.unit=Boolean value | ||
| 73 | +OS.net.core.netdev_max_backlog.unit=The number of | ||
| 74 | +OS.net.ipv4.tcp_max_syn_backlog.unit=The number of | ||
| 75 | +OS.net.ipv4.tcp_fin_timeout.unit=seconds | ||
| 76 | +OS.kernel.shmall.unit=byte | ||
| 77 | +OS.kernel.shmmax.unit=byte | ||
| 78 | +OS.net.ipv4.tcp_sack.unit=Boolean value | ||
| 79 | +OS.net.ipv4.tcp_timestamps.unit=Boolean value | ||
| 80 | +OS.vm.extfrag_threshold.unit=score | ||
| 81 | +OS.vm.overcommit_ratio.unit= | ||
| 82 | +OS.MTU.unit=byte | ||
| 83 | +DB.bgwriter_delay.unit=ms | ||
| 84 | +DB.bgwriter_thread_num.unit=The number of | ||
| 85 | +DB.max_io_capacity.unit=KB | ||
| 86 | +DB.log_min_duration_statement.unit=ms | ||
| 87 | +DB.log_duration.unit=Boolean value | ||
| 88 | +DB.track_stmt_stat_level.unit=character | ||
| 89 | +DB.track_stmt_retention_time.unit=character | ||
| 90 | +DB.enable_thread_pool.unit=Boolean value | ||
| 91 | +DB.thread_pool_attr.unit=character | ||
| 92 | +DB.log_statement.unit=Enumeration type | ||
| 93 | +DB.log_error_verbosity.unit=Enumeration type | ||
| 94 | +DB.log_min_messages.unit=Enumeration type | ||
| 95 | +DB.log_min_error_statement.unit=Enumeration type | ||
| 96 | + | ||
| 97 | +OS.net.ipv4.tcp_max_tw_buckets.suggestExplain=System at the same time the largest processing timewait number of sockets. If more than this number, the time to wait the socket will be immediately axe and display warning information. To set the limit, in order to resist those simple pure DoS attacks, however, if the conditions need to be more than the default value of the network, you can improve it (perhaps even more memory). (in fact do NAT best can appropriately increase the value) | ||
| 98 | +OS.net.ipv4.tcp_tw_reuse.suggestExplain=Indicates whether or not allowed to apply in TIME - WAIT state of the socket for the new TCP connection (this to restart some service, quickly and start the prompt after the port is already in use case is helpful) | ||
| 99 | +OS.net.ipv4.tcp_tw_recycle.suggestExplain=Open the quick TIME - WAIT sockets. Unless technical expert advice or request, please do not modify this value. (do NAT, suggest to open it) | ||
| 100 | +DB.max_process_memory.suggestExplain=Database node on the numerical need according to the system of physical memory and single node deployment master database nodes is decided. Computation formula is as follows: (physical memory size - vm. Min_free_kbytes) \ * 0.7 / (1 master node number). The coefficient of the purpose is to guarantee the reliability of the system as much as possible, not caused by database memory expansion node OOM. The formula mentioned in the vm min_free_kbytes, its meaning is reserved operating system memory used by the kernel, is often used as a communication transceiver in the operating system kernel memory allocation, at least for 5 \ufffd. Namely, max_process_memory = physical memory * 0.665 / (1) master node number | ||
| 101 | +DB.work_mem.suggestExplain=Parameter is usually a balance, that is, to ensure the concurrent throughput, and to ensure the Performance of the single query operation, so the need according to the actual implementation (a combination of the Explain output Performance) tuning | ||
| 102 | +DB.pagewriter_sleep.suggestExplain= | ||
| 103 | +OS.net.ipv4.ip_local_port_range.suggestExplain=Said to outside connection port range, the default is small, this range will also indirectly used for NAT table size | ||
| 104 | +OS.net.ipv4.tcp_keepalive_time.suggestExplain=TCP keepalive probe messages sent time interval (in seconds), is used to confirm a TCP connection is valid. But don't send the data to establish the connection on both sides to prevent attacks | ||
| 105 | +OS.net.ipv4.tcp_keepalive_probes.suggestExplain=TCP keepalive probe messages sent time interval (in seconds), is used to confirm a TCP connection is valid | ||
| 106 | +OS.net.ipv4.tcp_keepalive_intvl.suggestExplain=Detecting messages did not get the response, resend the message time interval (in seconds). The default value is 75 seconds. (for general applications, there are some big, this value can change a little according to need. Especially the web server needs to change small the value, 15 is a more appropriate value) | ||
| 107 | +OS.net.ipv4.tcp_retries1.suggestExplain=Give up to respond to a TCP connection request, need to how much time before retrying. The RFC minimum value is 3 | ||
| 108 | +OS.net.ipv4.tcp_syn_retries.suggestExplain=How much for a new connection, the kernel to send a SYN connection request to decide to give up. Should not be greater than 255, the default value is 5, corresponding to the 180 seconds of time.. (for large load and good physical communication network, this value is high, can be changed to 2. This value is only in view of the external connection, the incoming connection, is determined by tcp_retries1) | ||
| 109 | +OS.net.ipv4.tcp_synack_retries.suggestExplain=For remote connection requests the SYN, the kernel sends the SYN + ACK datagram, to confirm a SYN connection request packets received. This is called the three-way handshake (threeway handshake) mechanism of the second step. Here decided to sent by the kernel before giving up connection SYN ACK number. Should not be greater than 255, the default value is 5, corresponding to the 180 seconds of time | ||
| 110 | +OS.net.ipv4.tcp_retries2.suggestExplain=Discarding the activation (communication) has been established in TCP connection, need to how much time before retrying. The default value is 15, according to the RTO value to decide, the equivalent of 13-30 minutes (RFC1122 regulation, must be greater than 100 seconds). (this value according to the current network Settings, can be appropriately changed little, I change to 5) within the network | ||
| 111 | +"OS.vm.overcommit_memory.suggestExplain=Vm. Overcommit_memory file specifies the kernel for memory allocation strategy, its value is 0, 1, 2 | ||
| 112 | +0: (default) said the kernel will check whether there is enough memory available supply process; If there is enough memory available, memory applications allow; Otherwise, the memory for failure, and the error is returned to the application process. 0 is heuristic overcommitting handle, will try to reduce the use of the swap, the root can be allocated slightly more memory than the average user | ||
| 113 | +1: the kernel allows allocation of all physical memory, however, the current state of the memory, allowing more than CommitLimit, until run out of memory. On the database server is set to 1, is not recommended to try to avoid using the swap. | ||
| 114 | +2: said not allowed more than CommitLimit values" | ||
| 115 | +OS.net.ipv4.tcp_rmem.suggestExplain=Receive tcp_wmem cache Settings | ||
| 116 | +OS.net.core.wmem_max.suggestExplain=Most TCP data buffer | ||
| 117 | +OS.net.core.rmem_max.suggestExplain=Most TCP data receiving buffer | ||
| 118 | +OS.net.core.wmem_default.suggestExplain=The default send window size | ||
| 119 | +OS.net.core.rmem_default.suggestExplain=The default receive window size | ||
| 120 | +OS.kernel.sem.suggestExplain= | ||
| 121 | +OS.vm.min_free_kbytes.suggestExplain= | ||
| 122 | +OS.net.core.somaxconn.suggestExplain=Used to limit the number of listening (LISTEN) biggest packet queue, more than the number of links will lead to a timeout or trigger retransmission mechanism. Listen in the web application function of backlog will give us the kernel by default parameters of the net. Core. Somaxconn limit to 128, and defined nginx NGX_LISTEN_BACKLOG defaults to 511, it is necessary to adjust this value. On a busy server, increasing the value is helpful to network performance | ||
| 123 | +OS.net.ipv4.tcp_syncookies.suggestExplain=Only when the kernel compilation occurs when chose CONFIG_SYNCOOKIES role. When there is overflow appeared syn waiting queue syncookies like the other sent. The goal is to prevent the syn flood attack | ||
| 124 | +OS.net.core.netdev_max_backlog.suggestExplain= | ||
| 125 | +OS.net.ipv4.tcp_max_syn_backlog.suggestExplain=For those who still have not yet received the client confirmation of connection requests, maximum number needs to be saved in the queue. For more than 128 MB of memory system, the default value is 1024, less than 128 MB of 128. If the server is often appear overload, can try to increase the number. Warning! If you see this value is set to greater than 1024, best to modify the include/net/TCP. H TCP_SYNQ_HSIZE inside, to keep TCP_SYNQ_HSIZE * 16 (SYN Flood attack using TCP protocol distribute defects of shaking hands, a false source IP address sends a large number of the TCP SYN - half to open the connection to the target system, eventually leading to the target system Socket queue resources exhausted and can not accept new connections. To cope with this attack, the more widely used in modern Unix systems connected to buffer queue processing way, not to solve this kind of attack, is to use a basic queue processing normal to Connect fully application (the Connect () and the Accept ()), is to use another queue separately store half open the connection. This double queue processing method and some other system kernel measures (such as Syn - Cookies/Caches) joint application, can more effectively relieve small-scale Syn Flood attack (proved) | ||
| 126 | +OS.net.ipv4.tcp_fin_timeout.suggestExplain=Disconnect the socket for this end, the TCP remain in a state of FIN - WAIT - 2 time. The other party may be disconnected or has not been end connections or unpredictable process of death | ||
| 127 | +OS.kernel.shmall.suggestExplain= | ||
| 128 | +OS.kernel.shmmax.suggestExplain= | ||
| 129 | +OS.net.ipv4.tcp_sack.suggestExplain=Using Selective ACK, it can be used to find specific lost datagram - so would help to recover quickly. The file said whether to enable Selective response (Selective Acknowledgment), this can be achieved by selectively response out-of-order receives the message to improve performance (this allows the sender to send only the lost packet). (this option should be enabled for wan communication, but it will add to the CPU | ||
| 130 | +OS.net.ipv4.tcp_timestamps.suggestExplain=Timestamps in other things, can prevent the forgery of sequence number. A 1 g broadband lines may be met with heavy out - of - line numerical old sequence number (if it is due to last time). Timestamp will make it knows this is a 'old packet. Said (the file is enabled in a more accurate than the timeout retransmission method (RFC 1323) to enable the RTT calculation; In order to achieve better performance should enable this option.) | ||
| 131 | +OS.vm.extfrag_threshold.suggestExplain= | ||
| 132 | +OS.vm.overcommit_ratio.suggestExplain=The parameter value is only in the vm. Overcommit_memory = 2 cases, this parameter will only take effect | ||
| 133 | +OS.MTU.suggestExplain= | ||
| 134 | +DB.bgwriter_delay.suggestExplain=In the larger data write pressure can try to reduce the value in the scene in order to reduce the pressure of the checkpoint | ||
| 135 | +DB.bgwriter_thread_num.suggestExplain= | ||
| 136 | +DB.max_io_capacity.suggestExplain= | ||
| 137 | +"DB.log_min_duration_statement.suggestExplain=Set to 250, all run time not shorter than 250 ms SQL statements can be recorded. | ||
| 138 | +The duration of the output is set to 0, all statements. | ||
| 139 | +Set to 1, close this function" | ||
| 140 | +"DB.log_duration.suggestExplain=With this option is set to off, log_min_duration_statement differs log_min_duration_statement record query text. | ||
| 141 | +Set to on and log_min_duration_statement greater than zero, record all duration, but only recorded more than threshold value statements. This can be used in high load cases to collect statistics" | ||
| 142 | +DB.track_stmt_stat_level.suggestExplain= | ||
| 143 | +DB.track_stmt_retention_time.suggestExplain= | ||
| 144 | +"DB.enable_thread_pool.suggestExplain=Open thread pool function on said. | ||
| 145 | +Off said not unlock the function of the thread pool" | ||
| 146 | +DB.thread_pool_attr.suggestExplain= | ||
| 147 | +"DB.log_statement.suggestExplain=None said not recorded statements.DDL said record all data definition statements, such as CREATE, ALTER, and DROP statement. | ||
| 148 | +Mod said record all DDL statements, including data modification statements INSERT, UPDATE, DELETE, TRUNCATE, and COPY the FROM. | ||
| 149 | +All said record all statements, PREPARE, EXECUTE, and EXPLAIN ANALYZE statement also be recorded" | ||
| 150 | +DB.log_error_verbosity.suggestExplain=Terse represents output does not include the DETAIL, HINT, records of the QUERY and the CONTEXT error message.Verbose output including SQLSTATE error code, source code file name, the function name and the number of rows in the wrong.Default on behalf of output including the DETAIL, HINT, records of the QUERY and the CONTEXT error messages, not including SQLSTATE error code, source code file name, the function name and the number of rows in the wrong | ||
| 151 | +DB.log_min_messages.suggestExplain=\u6709\u6548\u503c\u6709\u8c03\u8bd5\u3001debug5 debug4, debug3, debug2, debug1,\u4fe1\u606f,\u65e5\u5fd7,\u6ce8\u610f,\u8b66\u544a\u3001\u9519\u8bef,\u81f4\u547d\u7684,\u6050\u614c\u3002 | ||
| 152 | +DB.log_min_error_statement.suggestExplain=\u6709\u6548\u503c\u6709\u8c03\u8bd5\u3001debug5 debug4, debug3, debug2, debug1,\u4fe1\u606f,\u65e5\u5fd7,\u6ce8\u610f,\u8b66\u544a\u3001\u9519\u8bef,\u81f4\u547d\u7684,\u6050\u614c\u3002 | ||
| @@ -0,0 +1,147 @@ | |||
| 1 | +OS.net.ipv4.tcp_max_tw_buckets.paramDetail=\u8868\u793a\u540c\u65f6\u4fdd\u6301TIME_WAIT\u72b6\u6001\u7684TCP/IP\u8fde\u63a5\u6700\u5927\u6570\u91cf\u3002\u5982\u679c\u8d85\u8fc7\u6240\u914d\u7f6e\u7684\u53d6\u503c\uff0cTIME_WAIT\u5c06\u7acb\u523b\u88ab\u91ca\u653e\u5e76\u6253\u5370\u8b66\u544a\u4fe1\u606f | ||
| 2 | +OS.net.ipv4.tcp_tw_reuse.paramDetail=\u5141\u8bb8\u5c06TIME-WAIT\u72b6\u6001\u7684sockets\u91cd\u65b0\u7528\u4e8e\u65b0\u7684TCP\u8fde\u63a5 | ||
| 3 | +OS.net.ipv4.tcp_tw_recycle.paramDetail=\u8868\u793a\u5f00\u542fTCP\u8fde\u63a5\u4e2dTIME-WAIT\u72b6\u6001sockets\u7684\u5feb\u901f\u56de\u6536 | ||
| 4 | +DB.max_process_memory.paramDetail=\u8bbe\u7f6e\u4e00\u4e2a\u6570\u636e\u5e93\u8282\u70b9\u53ef\u7528\u7684\u6700\u5927\u7269\u7406\u5185\u5b58 | ||
| 5 | +DB.work_mem.paramDetail=\u5224\u65ad\u6267\u884c\u4f5c\u4e1a\u53ef\u4e0b\u76d8\u7b97\u5b50\u662f\u5426\u5df2\u4f7f\u7528\u5185\u5b58\u91cf\u89e6\u53d1\u4e0b\u76d8\u70b9 | ||
| 6 | +DB.pagewriter_sleep.paramDetail=\u8bbe\u7f6e\u7528\u4e8e\u589e\u91cf\u68c0\u67e5\u70b9\u6253\u5f00\u540e\uff0cpagewrite\u7ebf\u7a0b\u6bcf\u9694pagewriter_sleep\u7684\u65f6\u95f4\u5237\u4e00\u6279\u810f\u9875\u4e0b\u76d8\u3002\u5f53\u810f\u9875\u5360\u636eshared_buffers\u7684\u6bd4\u4f8b\u8fbe\u5230dirty_page_percent_max\u65f6\uff0c\u6bcf\u6279\u9875\u9762\u6570\u91cf\u4ee5\u8bbe\u5b9a\u7684max_io_capacity\u8ba1\u7b97\u51fa\u7684\u503c\u5237\u9875\uff0c\u5176\u4f59\u60c5\u51b5\u6bcf\u6279\u9875\u9762\u6570\u91cf\u6309\u6bd4\u4f8b\u76f8\u5bf9\u51cf\u5c11 | ||
| 7 | +OS.net.ipv4.ip_local_port_range.paramDetail=\u7269\u7406\u673a\u53ef\u7528\u4e34\u65f6\u7aef\u53e3\u8303\u56f4 | ||
| 8 | +OS.net.ipv4.tcp_keepalive_time.paramDetail=\u8868\u793a\u5f53keepalive\u542f\u7528\u7684\u65f6\u5019\uff0cTCP\u53d1\u9001keepalive\u6d88\u606f\u7684\u9891\u5ea6 | ||
| 9 | +OS.net.ipv4.tcp_keepalive_probes.paramDetail=\u5728\u8ba4\u5b9a\u8fde\u63a5\u5931\u6548\u4e4b\u524d\uff0c\u53d1\u9001TCP\u7684keepalive\u63a2\u6d4b\u5305\u6570\u91cf\u3002\u8fd9\u4e2a\u503c\u4e58\u4ee5tcp_keepalive_intvl\u4e4b\u540e\u51b3\u5b9a\u4e86\u4e00\u4e2a\u8fde\u63a5\u53d1\u9001\u4e86keepalive\u4e4b\u540e\u53ef\u4ee5\u6709\u591a\u5c11\u65f6\u95f4\u6ca1\u6709\u56de\u5e94 | ||
| 10 | +OS.net.ipv4.tcp_keepalive_intvl.paramDetail=\u5f53\u63a2\u6d4b\u6ca1\u6709\u786e\u8ba4\u65f6\uff0c\u91cd\u65b0\u53d1\u9001\u63a2\u6d4b\u7684\u9891\u5ea6 | ||
| 11 | +OS.net.ipv4.tcp_retries1.paramDetail=\u5728\u8fde\u63a5\u5efa\u7acb\u8fc7\u7a0b\u4e2dTCP\u534f\u8bae\u6700\u5927\u91cd\u8bd5\u6b21\u6570 | ||
| 12 | +OS.net.ipv4.tcp_syn_retries.paramDetail=TCP\u534f\u8baeSYN\u62a5\u6587\u6700\u5927\u91cd\u8bd5\u6b21\u6570 | ||
| 13 | +OS.net.ipv4.tcp_synack_retries.paramDetail=TCP\u534f\u8baeSYN\u5e94\u7b54\u62a5\u6587\u6700\u5927\u91cd\u8bd5\u6b21\u6570 | ||
| 14 | +OS.net.ipv4.tcp_retries2.paramDetail=\u63a7\u5236\u5185\u6838\u5411\u5df2\u7ecf\u5efa\u7acb\u8fde\u63a5\u7684\u8fdc\u7a0b\u4e3b\u673a\u91cd\u65b0\u53d1\u9001\u6570\u636e\u7684\u6b21\u6570 | ||
| 15 | +OS.vm.overcommit_memory.paramDetail=\u63a7\u5236\u5728\u505a\u5185\u5b58\u5206\u914d\u7684\u65f6\u5019\uff0c\u5185\u6838\u7684\u68c0\u67e5\u65b9\u5f0f | ||
| 16 | +OS.net.ipv4.tcp_rmem.paramDetail=TCP\u534f\u8bae\u63a5\u6536\u7aef\u7f13\u51b2\u533a\u7684\u53ef\u7528\u5185\u5b58\u5927\u5c0f | ||
| 17 | +OS.net.core.wmem_max.paramDetail=socket\u53d1\u9001\u7aef\u7f13\u51b2\u533a\u5927\u5c0f\u7684\u6700\u5927\u503c | ||
| 18 | +OS.net.core.rmem_max.paramDetail=socket\u63a5\u6536\u7aef\u7f13\u51b2\u533a\u5927\u5c0f\u7684\u6700\u5927\u503c | ||
| 19 | +OS.net.core.wmem_default.paramDetail=socket\u53d1\u9001\u7aef\u7f13\u51b2\u533a\u5927\u5c0f\u7684\u9ed8\u8ba4\u503c | ||
| 20 | +OS.net.core.rmem_default.paramDetail=socket\u63a5\u6536\u7aef\u7f13\u51b2\u533a\u5927\u5c0f\u7684\u9ed8\u8ba4\u503c | ||
| 21 | +OS.kernel.sem.paramDetail=\u5185\u6838\u4fe1\u53f7\u91cf\u53c2\u6570\u8bbe\u7f6e\u5927\u5c0f | ||
| 22 | +OS.vm.min_free_kbytes.paramDetail=\u4fdd\u8bc1\u7269\u7406\u5185\u5b58\u6709\u8db3\u591f\u7a7a\u95f2\u7a7a\u95f4\uff0c\u9632\u6b62\u7a81\u53d1\u6027\u6362\u9875 | ||
| 23 | +OS.net.core.somaxconn.paramDetail=\u5b9a\u4e49\u4e86\u7cfb\u7edf\u4e2d\u6bcf\u4e00\u4e2a\u7aef\u53e3\u6700\u5927\u7684\u76d1\u542c\u961f\u5217\u7684\u957f\u5ea6 | ||
| 24 | +OS.net.ipv4.tcp_syncookies.paramDetail=\u5f53\u51fa\u73b0SYN\u7b49\u5f85\u961f\u5217\u6ea2\u51fa\u65f6\uff0c\u542f\u7528cookies\u6765\u5904\u7406\uff0c\u53ef\u9632\u8303\u5c11\u91cfSYN\u653b\u51fb | ||
| 25 | +OS.net.core.netdev_max_backlog.paramDetail=\u5728\u6bcf\u4e2a\u7f51\u7edc\u63a5\u53e3\u63a5\u6536\u6570\u636e\u5305\u7684\u901f\u7387\u6bd4\u5185\u6838\u5904\u7406\u8fd9\u4e9b\u5305\u7684\u901f\u7387\u5feb\u65f6\uff0c\u5141\u8bb8\u9001\u5230\u961f\u5217\u7684\u6570\u636e\u5305\u7684\u6700\u5927\u6570\u76ee | ||
| 26 | +OS.net.ipv4.tcp_max_syn_backlog.paramDetail=\u8bb0\u5f55\u7684\u90a3\u4e9b\u5c1a\u672a\u6536\u5230\u5ba2\u6237\u7aef\u786e\u8ba4\u4fe1\u606f\u7684\u8fde\u63a5\u8bf7\u6c42\u7684\u6700\u5927\u503c | ||
| 27 | +OS.net.ipv4.tcp_fin_timeout.paramDetail=\u7cfb\u7edf\u9ed8\u8ba4\u7684\u8d85\u65f6\u65f6\u95f4 | ||
| 28 | +OS.kernel.shmall.paramDetail=\u5185\u6838\u53ef\u7528\u7684\u5171\u4eab\u5185\u5b58\u603b\u91cf | ||
| 29 | +OS.kernel.shmmax.paramDetail=\u5185\u6838\u53c2\u6570\u5b9a\u4e49\u5355\u4e2a\u5171\u4eab\u5185\u5b58\u6bb5\u7684\u6700\u5927\u503c | ||
| 30 | +OS.net.ipv4.tcp_sack.paramDetail=\u542f\u7528\u6709\u9009\u62e9\u7684\u5e94\u7b54\uff0c\u901a\u8fc7\u6709\u9009\u62e9\u5730\u5e94\u7b54\u4e71\u5e8f\u63a5\u53d7\u5230\u7684\u62a5\u6587\u6765\u63d0\u9ad8\u6027\u80fd\uff0c\u8ba9\u53d1\u9001\u8005\u53ea\u53d1\u9001\u4e22\u5931\u7684\u62a5\u6587\u6bb5\uff08\u5bf9\u4e8e\u5e7f\u57df\u7f51\u6765\u8bf4\uff09\u8fd9\u4e2a\u9009\u9879\u5e94\u8be5\u542f\u7528\uff0c\u4f46\u662f\u4f1a\u589e\u52a0\u5bf9CPU\u7684\u5360\u7528 | ||
| 31 | +OS.net.ipv4.tcp_timestamps.paramDetail=TCP\u65f6\u95f4\u6233\uff08\u4f1a\u5728TCP\u5305\u5934\u589e\u52a012\u8282\uff09\uff0c\u4ee5\u4e00\u79cd\u6bd4\u91cd\u53d1\u8d85\u65f6\u66f4\u7cbe\u786e\u7684\u65b9\u5f0f\uff08\u53c2\u8003RFC 1323\uff09\u6765\u542f\u7528\u5bf9RTT\u7684\u8ba1\u7b97\uff0c\u542f\u7528\u53ef\u4ee5\u5b9e\u73b0\u66f4\u597d\u7684\u6027\u80fd | ||
| 32 | +OS.vm.extfrag_threshold.paramDetail=\u7cfb\u7edf\u5185\u5b58\u4e0d\u591f\u7528\u65f6\uff0clinux\u4f1a\u4e3a\u5f53\u524d\u7cfb\u7edf\u5185\u5b58\u788e\u7247\u60c5\u51b5\u6253\u5206\uff0c\u5982\u679c\u8d85\u8fc7vm.extfrag_threshold\u7684\u503c\uff0ckswapd\u5c31\u4f1a\u89e6\u53d1memory compaction\u3002\u6240\u4ee5\u8fd9\u4e2a\u503c\u8bbe\u7f6e\u7684\u63a5\u8fd11000\uff0c\u8bf4\u660e\u7cfb\u7edf\u5728\u5185\u5b58\u788e\u7247\u7684\u5904\u7406\u503e\u5411\u4e8e\u628a\u65e7\u7684\u9875\u6362\u51fa\uff0c\u4ee5\u7b26\u5408\u7533\u8bf7\u7684\u9700\u8981\uff0c\u800c\u8bbe\u7f6e\u63a5\u8fd10\uff0c\u8868\u793a\u7cfb\u7edf\u5728\u5185\u5b58\u788e\u7247\u7684\u5904\u7406\u503e\u5411\u505amemory compaction | ||
| 33 | +OS.vm.overcommit_ratio.paramDetail=\u7cfb\u7edf\u4f7f\u7528\u7edd\u4e0d\u8fc7\u91cf\u4f7f\u7528\u5185\u5b58\u7684\u7b97\u6cd5\u65f6\uff0c\u7cfb\u7edf\u6574\u4e2a\u5185\u5b58\u5730\u5740\u7a7a\u95f4\u4e0d\u5f97\u8d85\u8fc7swap+RAM\u503c\u7684\u6b64\u53c2\u6570\u767e\u5206\u6bd4\uff0c\u5f53vm.overcommit_memory=2\u65f6\u6b64\u53c2\u6570\u751f\u6548 | ||
| 34 | +OS.MTU.paramDetail=\u8282\u70b9\u7f51\u5361\u6700\u5927\u4f20\u8f93\u5355\u5143\u3002OS\u9ed8\u8ba4\u503c\u4e3a1500\uff0c\u8c03\u6574\u4e3a8192\u53ef\u4ee5\u63d0\u5347SCTP\u534f\u8bae\u6570\u636e\u6536\u53d1\u7684\u6027\u80fd | ||
| 35 | +DB.bgwriter_delay.paramDetail=\u8bbe\u7f6e\u540e\u7aef\u5199\u8fdb\u7a0b\u5199\u201c\u810f\u201d\u5171\u4eab\u7f13\u51b2\u533a\u4e4b\u95f4\u7684\u65f6\u95f4\u95f4\u9694 | ||
| 36 | +DB.bgwriter_thread_num.paramDetail=\u8bbe\u7f6e\u540e\u7aef\u5199\u8fdb\u7a0b\u6570\u91cf | ||
| 37 | +DB.max_io_capacity.paramDetail=\u8bbe\u7f6e\u540e\u7aef\u5199\u8fdb\u7a0b\u6279\u91cf\u5237\u9875\u6bcf\u79d2\u7684IO\u4e0a\u9650\uff0c\u9700\u8981\u6839\u636e\u5177\u4f53\u4e1a\u52a1\u573a\u666f\u548c\u673a\u5668\u78c1\u76d8IO\u80fd\u529b\u8fdb\u884c\u8bbe\u7f6e | ||
| 38 | +DB.log_min_duration_statement.paramDetail=\u5f53\u67d0\u6761\u8bed\u53e5\u7684\u6301\u7eed\u65f6\u95f4\u5927\u4e8e\u6216\u8005\u7b49\u4e8e\u7279\u5b9a\u7684\u6beb\u79d2\u6570\u65f6\uff0clog_min_duration_statement\u53c2\u6570\u7528\u4e8e\u63a7\u5236\u8bb0\u5f55\u6bcf\u6761\u5b8c\u6210\u8bed\u53e5\u7684\u6301\u7eed\u65f6\u95f4 | ||
| 39 | +DB.log_duration.paramDetail=\u63a7\u5236\u8bb0\u5f55\u6bcf\u4e2a\u5df2\u5b8c\u6210SQL\u8bed\u53e5\u7684\u6267\u884c\u65f6\u95f4\u3002\u5bf9\u4f7f\u7528\u6269\u5c55\u67e5\u8be2\u534f\u8bae\u7684\u5ba2\u6237\u7aef\u3001\u4f1a\u8bb0\u5f55\u8bed\u6cd5\u5206\u6790\u3001\u7ed1\u5b9a\u548c\u6267\u884c\u6bcf\u4e00\u6b65\u6240\u82b1\u8d39\u7684\u65f6\u95f4 | ||
| 40 | +DB.track_stmt_stat_level.paramDetail=\u63a7\u5236\u8bed\u53e5\u6267\u884c\u8ddf\u8e2a\u7684\u7ea7\u522b,\u53c2\u6570\u7b2c\u4e00\u90e8\u5206\u4e3a\u975eOFF\u60c5\u51b5\u4e0b\uff0c\u4f1a\u8bb0\u5f55\u6240\u6709SQL\uff0c\u7b2c\u4e00\u90e8\u5206\u4e3aOFF\uff0c\u7b2c\u4e8c\u90e8\u5206\u4e3a\u975eOFF\u60c5\u51b5\u4e0b\uff0c\u4ec5\u8bb0\u5f55\u6162SQL | ||
| 41 | +DB.track_stmt_retention_time.paramDetail=\u7ec4\u5408\u53c2\u6570\uff0c\u63a7\u5236\u5168\u91cf/\u6162SQL\u8bb0\u5f55\u7684\u4fdd\u7559\u65f6\u95f4\u3002\u4ee560\u79d2\u4e3a\u5468\u671f\u8bfb\u53d6\u8be5\u53c2\u6570\uff0c\u5e76\u6267\u884c\u6e05\u7406\u8d85\u8fc7\u4fdd\u7559\u65f6\u95f4\u7684\u8bb0\u5f55\uff0c\u4ec5sysadmin\u7528\u6237\u53ef\u4ee5\u8bbf\u95ee | ||
| 42 | +DB.enable_thread_pool.paramDetail=\u63a7\u5236\u662f\u5426\u4f7f\u7528\u7ebf\u7a0b\u6c60\u529f\u80fd | ||
| 43 | +DB.thread_pool_attr.paramDetail=\u7528\u4e8e\u63a7\u5236\u7ebf\u7a0b\u6c60\u529f\u80fd\u7684\u8be6\u7ec6\u5c5e\u6027\uff0c\u8be5\u53c2\u6570\u4ec5\u5728enable_thread_pool\u6253\u5f00\u540e\u751f\u6548\u3002 | ||
| 44 | +DB.log_statement.paramDetail=\u63a7\u5236\u8bb0\u5f55SQL\u8bed\u53e5\u3002\u5bf9\u4e8e\u4f7f\u7528\u6269\u5c55\u67e5\u8be2\u534f\u8bae\u7684\u5ba2\u6237\u7aef\uff0c\u8bb0\u5f55\u63a5\u6536\u5230\u6267\u884c\u6d88\u606f\u7684\u4e8b\u4ef6\u548c\u7ed1\u5b9a\u53c2\u6570\u7684\u503c | ||
| 45 | +DB.log_error_verbosity.paramDetail=\u63a7\u5236\u670d\u52a1\u5668\u65e5\u5fd7\u4e2d\u6bcf\u6761\u8bb0\u5f55\u7684\u6d88\u606f\u5199\u5165\u7684\u8be6\u7ec6\u5ea6 | ||
| 46 | +DB.log_min_messages.paramDetail=\u63a7\u5236\u5199\u5230\u670d\u52a1\u5668\u65e5\u5fd7\u6587\u4ef6\u4e2d\u7684\u6d88\u606f\u7ea7\u522b\u3002\u6bcf\u4e2a\u7ea7\u522b\u90fd\u5305\u542b\u6392\u5728\u5b83\u540e\u9762\u7684\u6240\u6709\u7ea7\u522b\u4e2d\u7684\u4fe1\u606f\u3002\u7ea7\u522b\u8d8a\u4f4e\uff0c\u670d\u52a1\u5668\u8fd0\u884c\u65e5\u5fd7\u4e2d\u8bb0\u5f55\u7684\u6d88\u606f\u5c31\u8d8a\u5c11 | ||
| 47 | +DB.log_min_error_statement.paramDetail=\u63a7\u5236\u5728\u670d\u52a1\u5668\u65e5\u5fd7\u4e2d\u8bb0\u5f55\u9519\u8bef\u7684SQL\u8bed\u53e5\u3002 | ||
| 48 | + | ||
| 49 | +OS.net.ipv4.tcp_max_tw_buckets.unit=\u6570\u76ee | ||
| 50 | +OS.net.ipv4.tcp_tw_reuse.unit=\u5e03\u5c14\u503c | ||
| 51 | +OS.net.ipv4.tcp_tw_recycle.unit=\u5e03\u5c14\u503c | ||
| 52 | +DB.max_process_memory.unit=\u5e03\u5c14\u503c | ||
| 53 | +DB.work_mem.unit=\u5e03\u5c14\u503c | ||
| 54 | +DB.pagewriter_sleep.unit=ms | ||
| 55 | +OS.net.ipv4.ip_local_port_range.unit=\u6570\u76ee | ||
| 56 | +OS.net.ipv4.tcp_keepalive_time.unit=\u79d2 | ||
| 57 | +OS.net.ipv4.tcp_keepalive_probes.unit=\u79d2 | ||
| 58 | +OS.net.ipv4.tcp_keepalive_intvl.unit=\u79d2 | ||
| 59 | +OS.net.ipv4.tcp_retries1.unit=\u6b21\u6570 | ||
| 60 | +OS.net.ipv4.tcp_syn_retries.unit=\u6b21\u6570 | ||
| 61 | +OS.net.ipv4.tcp_synack_retries.unit=\u6b21\u6570 | ||
| 62 | +OS.net.ipv4.tcp_retries2.unit=\u6b21\u6570 | ||
| 63 | +OS.vm.overcommit_memory.unit=\u65b9\u5f0f | ||
| 64 | +OS.net.ipv4.tcp_rmem.unit=\u5b57\u8282 | ||
| 65 | +OS.net.core.wmem_max.unit=\u5b57\u8282 | ||
| 66 | +OS.net.core.rmem_max.unit=\u5b57\u8282 | ||
| 67 | +OS.net.core.wmem_default.unit=\u5b57\u8282 | ||
| 68 | +OS.net.core.rmem_default.unit=\u5b57\u8282 | ||
| 69 | +OS.kernel.sem.unit=\u5b57\u8282 | ||
| 70 | +OS.vm.min_free_kbytes.unit=\u5b57\u8282 | ||
| 71 | +OS.net.core.somaxconn.unit=\u4e2a\u6570 | ||
| 72 | +OS.net.ipv4.tcp_syncookies.unit=\u5e03\u5c14\u503c | ||
| 73 | +OS.net.core.netdev_max_backlog.unit=\u4e2a\u6570 | ||
| 74 | +OS.net.ipv4.tcp_max_syn_backlog.unit=\u4e2a\u6570 | ||
| 75 | +OS.net.ipv4.tcp_fin_timeout.unit=\u79d2 | ||
| 76 | +OS.kernel.shmall.unit=\u5b57\u8282 | ||
| 77 | +OS.kernel.shmmax.unit=\u5b57\u8282 | ||
| 78 | +OS.net.ipv4.tcp_sack.unit=\u5e03\u5c14\u503c | ||
| 79 | +OS.net.ipv4.tcp_timestamps.unit=\u5e03\u5c14\u503c | ||
| 80 | +OS.vm.extfrag_threshold.unit=\u5206\u503c | ||
| 81 | +OS.vm.overcommit_ratio.unit=% | ||
| 82 | +OS.MTU.unit=\u5b57\u8282 | ||
| 83 | +DB.bgwriter_delay.unit=\u6beb\u79d2 | ||
| 84 | +DB.bgwriter_thread_num.unit=\u4e2a\u6570 | ||
| 85 | +DB.max_io_capacity.unit=KB | ||
| 86 | +DB.log_min_duration_statement.unit=\u6beb\u79d2 | ||
| 87 | +DB.log_duration.unit=\u5e03\u5c14\u503c | ||
| 88 | +DB.track_stmt_stat_level.unit=\u5b57\u7b26\u578b | ||
| 89 | +DB.track_stmt_retention_time.unit=\u5b57\u7b26\u578b | ||
| 90 | +DB.enable_thread_pool.unit=\u5e03\u5c14\u503c | ||
| 91 | +DB.thread_pool_attr.unit=\u5b57\u7b26\u578b | ||
| 92 | +DB.log_statement.unit=\u679a\u4e3e\u578b | ||
| 93 | +DB.log_error_verbosity.unit=\u679a\u4e3e\u578b | ||
| 94 | +DB.log_min_messages.unit=\u679a\u4e3e\u578b | ||
| 95 | +DB.log_min_error_statement.unit=\u679a\u4e3e\u578b | ||
| 96 | + | ||
| 97 | +OS.net.ipv4.tcp_max_tw_buckets.suggestExplain=\u7cfb\u7edf\u5728\u540c\u65f6\u6240\u5904\u7406\u7684\u6700\u5927 timewait sockets \u6570\u76ee\u3002\u5982\u679c\u8d85\u8fc7\u6b64\u6570\u7684\u8bdd\ufe50time-wait socket \u4f1a\u88ab\u7acb\u5373\u780d\u9664\u5e76\u4e14\u663e\u793a\u8b66\u544a\u4fe1\u606f\u3002\u4e4b\u6240\u4ee5\u8981\u8bbe\u5b9a\u8fd9\u4e2a\u9650\u5236\ufe50\u7eaf\u7cb9\u4e3a\u4e86\u62b5\u5fa1\u90a3\u4e9b\u7b80\u5355\u7684 DoS \u653b\u51fb\ufe50\u4e0d\u8fc7\ufe50\u5982\u679c\u7f51\u7edc\u6761\u4ef6\u9700\u8981\u6bd4\u9ed8\u8ba4\u503c\u66f4\u591a\ufe50\u5219\u53ef\u4ee5\u63d0\u9ad8\u5b83(\u6216\u8bb8\u8fd8\u8981\u589e\u52a0\u5185\u5b58)\u3002(\u4e8b\u5b9e\u4e0a\u505aNAT\u7684\u65f6\u5019\u6700\u597d\u53ef\u4ee5\u9002\u5f53\u5730\u589e\u52a0\u8be5\u503c) | ||
| 98 | +OS.net.ipv4.tcp_tw_reuse.suggestExplain=\u8868\u793a\u662f\u5426\u5141\u8bb8\u91cd\u65b0\u5e94\u7528\u5904\u4e8eTIME- WAIT\u72b6\u6001\u7684socket\u7528\u4e8e\u65b0\u7684TCP\u8fde\u63a5(\u8fd9\u4e2a\u5bf9\u5feb\u901f\u91cd\u542f\u52a8\u67d0\u4e9b\u670d\u52a1,\u800c\u542f\u52a8\u540e\u63d0\u793a\u7aef\u53e3\u5df2\u7ecf\u88ab\u4f7f\u7528\u7684\u60c5\u5f62\u975e\u5e38\u6709\u5e2e\u52a9) | ||
| 99 | +OS.net.ipv4.tcp_tw_recycle.suggestExplain=\u6253\u5f00\u5feb\u901f TIME-WAIT sockets \u56de\u6536\u3002\u9664\u975e\u5f97\u5230\u6280\u672f\u4e13\u5bb6\u7684\u5efa\u8bae\u6216\u8981\u6c42\ufe50\u8bf7\u4e0d\u8981\u968f\u610f\u4fee\u6539\u8fd9\u4e2a\u503c\u3002(\u505aNAT\u7684\u65f6\u5019\uff0c\u5efa\u8bae\u6253\u5f00\u5b83) | ||
| 100 | +DB.max_process_memory.suggestExplain=\u6570\u636e\u5e93\u8282\u70b9\u4e0a\u8be5\u6570\u503c\u9700\u8981\u6839\u636e\u7cfb\u7edf\u7269\u7406\u5185\u5b58\u53ca\u5355\u8282\u70b9\u90e8\u7f72\u4e3b\u6570\u636e\u5e93\u8282\u70b9\u4e2a\u6570\u51b3\u5b9a\u3002\u5efa\u8bae\u8ba1\u7b97\u516c\u5f0f\u5982\u4e0b\uff1a(\u7269\u7406\u5185\u5b58\u5927\u5c0f - vm.min_free_kbytes) \* 0.7 / (1 + \u4e3b\u8282\u70b9\u4e2a\u6570)\u3002\u8be5\u7cfb\u6570\u7684\u76ee\u7684\u662f\u5c3d\u53ef\u80fd\u4fdd\u8bc1\u7cfb\u7edf\u7684\u53ef\u9760\u6027\uff0c\u4e0d\u4f1a\u56e0\u6570\u636e\u5e93\u5185\u5b58\u81a8\u80c0\u5bfc\u81f4\u8282\u70b9OOM\u3002\u8fd9\u4e2a\u516c\u5f0f\u4e2d\u63d0\u5230vm.min_free_kbytes\uff0c\u5176\u542b\u4e49\u662f\u9884\u7559\u64cd\u4f5c\u7cfb\u7edf\u5185\u5b58\u4f9b\u5185\u6838\u4f7f\u7528\uff0c\u901a\u5e38\u7528\u4f5c\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\u4e2d\u901a\u4fe1\u6536\u53d1\u5185\u5b58\u5206\u914d\uff0c\u81f3\u5c11\u4e3a5%\u5185\u5b58\u3002\u5373\uff0cmax_process_memory = \u7269\u7406\u5185\u5b58 * 0.665 / (1 + \u4e3b\u8282\u70b9\u4e2a\u6570) | ||
| 101 | +DB.work_mem.suggestExplain=\u53c2\u6570\u8bbe\u7f6e\u901a\u5e38\u662f\u4e00\u4e2a\u6743\u8861\uff0c\u5373\u8981\u4fdd\u8bc1\u5e76\u53d1\u7684\u541e\u5410\u91cf\uff0c\u53c8\u8981\u4fdd\u8bc1\u5355\u67e5\u8be2\u4f5c\u4e1a\u7684\u6027\u80fd\uff0c\u6545\u9700\u8981\u6839\u636e\u5b9e\u9645\u6267\u884c\u60c5\u51b5\uff08\u7ed3\u5408Explain Performance\u8f93\u51fa\uff09\u8fdb\u884c\u8c03\u4f18 | ||
| 102 | +DB.pagewriter_sleep.suggestExplain= | ||
| 103 | +OS.net.ipv4.ip_local_port_range.suggestExplain=\u8868\u793a\u7528\u4e8e\u5411\u5916\u8fde\u63a5\u7684\u7aef\u53e3\u8303\u56f4\uff0c\u9ed8\u8ba4\u6bd4\u8f83\u5c0f\uff0c\u8fd9\u4e2a\u8303\u56f4\u540c\u6837\u4f1a\u95f4\u63a5\u7528\u4e8eNAT\u8868\u89c4\u6a21 | ||
| 104 | +OS.net.ipv4.tcp_keepalive_time.suggestExplain=TCP\u53d1\u9001keepalive\u63a2\u6d4b\u6d88\u606f\u7684\u95f4\u9694\u65f6\u95f4\uff08\u79d2\uff09\uff0c\u7528\u4e8e\u786e\u8ba4TCP\u8fde\u63a5\u662f\u5426\u6709\u6548\u3002\u9632\u6b62\u4e24\u8fb9\u5efa\u7acb\u8fde\u63a5\u4f46\u4e0d\u53d1\u9001\u6570\u636e\u7684\u653b\u51fb | ||
| 105 | +OS.net.ipv4.tcp_keepalive_probes.suggestExplain=TCP\u53d1\u9001keepalive\u63a2\u6d4b\u6d88\u606f\u7684\u95f4\u9694\u65f6\u95f4\uff08\u79d2\uff09\uff0c\u7528\u4e8e\u786e\u8ba4TCP\u8fde\u63a5\u662f\u5426\u6709\u6548 | ||
| 106 | +OS.net.ipv4.tcp_keepalive_intvl.suggestExplain=\u63a2\u6d4b\u6d88\u606f\u672a\u83b7\u5f97\u54cd\u5e94\u65f6\uff0c\u91cd\u53d1\u8be5\u6d88\u606f\u7684\u95f4\u9694\u65f6\u95f4\uff08\u79d2\uff09\u3002\u9ed8\u8ba4\u503c\u4e3a75\u79d2\u3002 (\u5bf9\u4e8e\u666e\u901a\u5e94\u7528\u6765\u8bf4,\u8fd9\u4e2a\u503c\u6709\u4e00\u4e9b\u504f\u5927,\u53ef\u4ee5\u6839\u636e\u9700\u8981\u6539\u5c0f.\u7279\u522b\u662fweb\u7c7b\u670d\u52a1\u5668\u9700\u8981\u6539\u5c0f\u8be5\u503c,15\u662f\u4e2a\u6bd4\u8f83\u5408\u9002\u7684\u503c) | ||
| 107 | +OS.net.ipv4.tcp_retries1.suggestExplain=\u653e\u5f03\u56de\u5e94\u4e00\u4e2aTCP\u8fde\u63a5\u8bf7\u6c42\u524d\ufe50\u9700\u8981\u8fdb\u884c\u591a\u5c11\u6b21\u91cd\u8bd5\u3002RFC\u89c4\u5b9a\u6700\u4f4e\u7684\u6570\u503c\u662f3 | ||
| 108 | +OS.net.ipv4.tcp_syn_retries.suggestExplain=\u5bf9\u4e8e\u4e00\u4e2a\u65b0\u5efa\u8fde\u63a5\uff0c\u5185\u6838\u8981\u53d1\u9001\u591a\u5c11\u4e2a SYN \u8fde\u63a5\u8bf7\u6c42\u624d\u51b3\u5b9a\u653e\u5f03\u3002\u4e0d\u5e94\u8be5\u5927\u4e8e255\uff0c\u9ed8\u8ba4\u503c\u662f5\uff0c\u5bf9\u5e94\u4e8e180\u79d2\u5de6\u53f3\u65f6\u95f4\u3002\u3002(\u5bf9\u4e8e\u5927\u8d1f\u8f7d\u800c\u7269\u7406\u901a\u4fe1\u826f\u597d\u7684\u7f51\u7edc\u800c\u8a00,\u8fd9\u4e2a\u503c\u504f\u9ad8,\u53ef\u4fee\u6539\u4e3a2.\u8fd9\u4e2a\u503c\u4ec5\u4ec5\u662f\u9488\u5bf9\u5bf9\u5916\u7684\u8fde\u63a5,\u5bf9\u8fdb\u6765\u7684\u8fde\u63a5,\u662f\u7531tcp_retries1\u51b3\u5b9a\u7684) | ||
| 109 | +OS.net.ipv4.tcp_synack_retries.suggestExplain=\u5bf9\u4e8e\u8fdc\u7aef\u7684\u8fde\u63a5\u8bf7\u6c42SYN\uff0c\u5185\u6838\u4f1a\u53d1\u9001SYN \uff0b ACK\u6570\u636e\u62a5\uff0c\u4ee5\u786e\u8ba4\u6536\u5230\u4e0a\u4e00\u4e2a SYN\u8fde\u63a5\u8bf7\u6c42\u5305\u3002\u8fd9\u662f\u6240\u8c13\u7684\u4e09\u6b21\u63e1\u624b( threeway handshake)\u673a\u5236\u7684\u7b2c\u4e8c\u4e2a\u6b65\u9aa4\u3002\u8fd9\u91cc\u51b3\u5b9a\u5185\u6838\u5728\u653e\u5f03\u8fde\u63a5\u4e4b\u524d\u6240\u9001\u51fa\u7684 SYN+ACK \u6570\u76ee\u3002\u4e0d\u5e94\u8be5\u5927\u4e8e255\uff0c\u9ed8\u8ba4\u503c\u662f5\uff0c\u5bf9\u5e94\u4e8e180\u79d2\u5de6\u53f3\u65f6\u95f4 | ||
| 110 | +OS.net.ipv4.tcp_retries2.suggestExplain=\u5728\u4e22\u5f03\u6fc0\u6d3b(\u5df2\u5efa\u7acb\u901a\u8baf\u72b6\u51b5)\u7684TCP\u8fde\u63a5\u4e4b\u524d\ufe50\u9700\u8981\u8fdb\u884c\u591a\u5c11\u6b21\u91cd\u8bd5\u3002\u9ed8\u8ba4\u503c\u4e3a15\uff0c\u6839\u636eRTO\u7684\u503c\u6765\u51b3\u5b9a\uff0c\u76f8\u5f53\u4e8e13-30\u5206\u949f(RFC1122\u89c4\u5b9a\uff0c\u5fc5\u987b\u5927\u4e8e100\u79d2).(\u8fd9\u4e2a\u503c\u6839\u636e\u76ee\u524d\u7684\u7f51\u7edc\u8bbe\u7f6e,\u53ef\u4ee5\u9002\u5f53\u5730\u6539\u5c0f,\u6211\u7684\u7f51\u7edc\u5185\u4fee\u6539\u4e3a\u4e865) | ||
| 111 | +"OS.vm.overcommit_memory.suggestExplain=vm.overcommit_memory\u6587\u4ef6\u6307\u5b9a\u4e86\u5185\u6838\u9488\u5bf9\u5185\u5b58\u5206\u914d\u7684\u7b56\u7565\uff0c\u5176\u503c\u53ef\u4ee5\u662f0\u30011\u30012 | ||
| 112 | +0\uff1a (\u9ed8\u8ba4)\u8868\u793a\u5185\u6838\u5c06\u68c0\u67e5\u662f\u5426\u6709\u8db3\u591f\u7684\u53ef\u7528\u5185\u5b58\u4f9b\u5e94\u7528\u8fdb\u7a0b\u4f7f\u7528\uff1b\u5982\u679c\u6709\u8db3\u591f\u7684\u53ef\u7528\u5185\u5b58\uff0c\u5185\u5b58\u7533\u8bf7\u5141\u8bb8\uff1b\u5426\u5219\uff0c\u5185\u5b58\u7533\u8bf7\u5931\u8d25\uff0c\u5e76\u628a\u9519\u8bef\u8fd4\u56de\u7ed9\u5e94\u7528\u8fdb\u7a0b\u30020 \u5373\u662f\u542f\u53d1\u5f0f\u7684overcommitting handle,\u4f1a\u5c3d\u91cf\u51cf\u5c11swap\u7684\u4f7f\u7528,root\u53ef\u4ee5\u5206\u914d\u6bd4\u4e00\u822c\u7528\u6237\u7565\u591a\u7684\u5185\u5b58 | ||
| 113 | +1\uff1a \u8868\u793a\u5185\u6838\u5141\u8bb8\u5206\u914d\u6240\u6709\u7684\u7269\u7406\u5185\u5b58\uff0c\u800c\u4e0d\u7ba1\u5f53\u524d\u7684\u5185\u5b58\u72b6\u6001\u5982\u4f55\uff0c\u5141\u8bb8\u8d85\u8fc7CommitLimit\uff0c\u76f4\u81f3\u5185\u5b58\u7528\u5b8c\u4e3a\u6b62\u3002\u5728\u6570\u636e\u5e93\u670d\u52a1\u5668\u4e0a\u4e0d\u5efa\u8bae\u8bbe\u7f6e\u4e3a1\uff0c\u4ece\u800c\u5c3d\u91cf\u907f\u514d\u4f7f\u7528swap. | ||
| 114 | +2\uff1a \u8868\u793a\u4e0d\u5141\u8bb8\u8d85\u8fc7CommitLimit\u503c" | ||
| 115 | +OS.net.ipv4.tcp_rmem.suggestExplain=\u63a5\u6536\u7f13\u5b58\u8bbe\u7f6e\u540ctcp_wmem | ||
| 116 | +OS.net.core.wmem_max.suggestExplain=\u6700\u5927\u7684TCP\u6570\u636e\u53d1\u9001\u7f13\u51b2 | ||
| 117 | +OS.net.core.rmem_max.suggestExplain=\u6700\u5927\u7684TCP\u6570\u636e\u63a5\u6536\u7f13\u51b2 | ||
| 118 | +OS.net.core.wmem_default.suggestExplain=\u9ed8\u8ba4\u7684\u53d1\u9001\u7a97\u53e3\u5927\u5c0f | ||
| 119 | +OS.net.core.rmem_default.suggestExplain=\u9ed8\u8ba4\u7684\u63a5\u6536\u7a97\u53e3\u5927\u5c0f | ||
| 120 | +OS.kernel.sem.suggestExplain= | ||
| 121 | +OS.vm.min_free_kbytes.suggestExplain= | ||
| 122 | +OS.net.core.somaxconn.suggestExplain=\u7528\u6765\u9650\u5236\u76d1\u542c(LISTEN)\u961f\u5217\u6700\u5927\u6570\u636e\u5305\u7684\u6570\u91cf\uff0c\u8d85\u8fc7\u8fd9\u4e2a\u6570\u91cf\u5c31\u4f1a\u5bfc\u81f4\u94fe\u63a5\u8d85\u65f6\u6216\u8005\u89e6\u53d1\u91cd\u4f20\u673a\u5236\u3002web\u5e94\u7528\u4e2dlisten\u51fd\u6570\u7684backlog\u9ed8\u8ba4\u4f1a\u7ed9\u6211\u4eec\u5185\u6838\u53c2\u6570\u7684net.core.somaxconn\u9650\u5236\u5230128\uff0c\u800cnginx\u5b9a\u4e49\u7684NGX_LISTEN_BACKLOG\u9ed8\u8ba4\u4e3a511\uff0c\u6240\u4ee5\u6709\u5fc5\u8981\u8c03\u6574\u8fd9\u4e2a\u503c\u3002\u5bf9\u7e41\u5fd9\u7684\u670d\u52a1\u5668,\u589e\u52a0\u8be5\u503c\u6709\u52a9\u4e8e\u7f51\u7edc\u6027\u80fd | ||
| 123 | +OS.net.ipv4.tcp_syncookies.suggestExplain=\u53ea\u6709\u5728\u5185\u6838\u7f16\u8bd1\u65f6\u9009\u62e9\u4e86CONFIG_SYNCOOKIES\u65f6\u624d\u4f1a\u53d1\u751f\u4f5c\u7528\u3002\u5f53\u51fa\u73b0syn\u7b49\u5019\u961f\u5217\u51fa\u73b0\u6ea2\u51fa\u65f6\u8c61\u5bf9\u65b9\u53d1\u9001syncookies\u3002\u76ee\u7684\u662f\u4e3a\u4e86\u9632\u6b62syn flood\u653b\u51fb | ||
| 124 | +OS.net.core.netdev_max_backlog.suggestExplain= | ||
| 125 | +OS.net.ipv4.tcp_max_syn_backlog.suggestExplain=\u5bf9\u4e8e\u90a3\u4e9b\u4f9d\u7136\u8fd8\u672a\u83b7\u5f97\u5ba2\u6237\u7aef\u786e\u8ba4\u7684\u8fde\u63a5\u8bf7\u6c42\ufe50\u9700\u8981\u4fdd\u5b58\u5728\u961f\u5217\u4e2d\u6700\u5927\u6570\u76ee\u3002\u5bf9\u4e8e\u8d85\u8fc7 128Mb \u5185\u5b58\u7684\u7cfb\u7edf\ufe50\u9ed8\u8ba4\u503c\u662f 1024 \ufe50\u4f4e\u4e8e 128Mb \u7684\u5219\u4e3a 128\u3002\u5982\u679c\u670d\u52a1\u5668\u7ecf\u5e38\u51fa\u73b0\u8fc7\u8f7d\ufe50\u53ef\u4ee5\u5c1d\u8bd5\u589e\u52a0\u8fd9\u4e2a\u6570\u5b57\u3002\u8b66\u544a\ufe57\u5047\u5982\u60a8\u5c06\u6b64\u503c\u8bbe\u4e3a\u5927\u4e8e 1024\ufe50\u6700\u597d\u4fee\u6539include/net/tcp.h\u91cc\u9762\u7684TCP_SYNQ_HSIZE\ufe50\u4ee5\u4fdd\u6301TCP_SYNQ_HSIZE*16(SYN Flood\u653b\u51fb\u5229\u7528TCP\u534f\u8bae\u6563\u5e03\u63e1\u624b\u7684\u7f3a\u9677\uff0c\u4f2a\u9020\u865a\u5047\u6e90IP\u5730\u5740\u53d1\u9001\u5927\u91cfTCP-SYN\u534a\u6253\u5f00\u8fde\u63a5\u5230\u76ee\u6807\u7cfb\u7edf\uff0c\u6700\u7ec8\u5bfc\u81f4\u76ee\u6807\u7cfb\u7edfSocket\u961f\u5217\u8d44\u6e90\u8017\u5c3d\u800c\u65e0\u6cd5\u63a5\u53d7\u65b0\u7684\u8fde\u63a5\u3002\u4e3a\u4e86\u5e94\u4ed8\u8fd9\u79cd\u653b\u51fb\uff0c\u73b0\u4ee3Unix\u7cfb\u7edf\u4e2d\u666e\u904d\u91c7\u7528\u591a\u8fde\u63a5\u961f\u5217\u5904\u7406\u7684\u65b9\u5f0f\u6765\u7f13\u51b2(\u800c\u4e0d\u662f\u89e3\u51b3)\u8fd9\u79cd\u653b\u51fb\uff0c\u662f\u7528\u4e00\u4e2a\u57fa\u672c\u961f\u5217\u5904\u7406\u6b63\u5e38\u7684\u5b8c\u5168\u8fde\u63a5\u5e94\u7528(Connect()\u548cAccept() )\uff0c\u662f\u7528\u53e6\u4e00\u4e2a\u961f\u5217\u5355\u72ec\u5b58\u653e\u534a\u6253\u5f00\u8fde\u63a5\u3002\u8fd9\u79cd\u53cc\u961f\u5217\u5904\u7406\u65b9\u5f0f\u548c\u5176\u4ed6\u4e00\u4e9b\u7cfb\u7edf\u5185\u6838\u63aa\u65bd(\u4f8b\u5982Syn-Cookies/Caches)\u8054\u5408\u5e94\u7528\u65f6\uff0c\u80fd\u591f\u6bd4\u8f83\u6709\u6548\u7684\u7f13\u89e3\u5c0f\u89c4\u6a21\u7684SYN Flood\u653b\u51fb(\u4e8b\u5b9e\u8bc1\u660e) | ||
| 126 | +OS.net.ipv4.tcp_fin_timeout.suggestExplain=\u5bf9\u4e8e\u672c\u7aef\u65ad\u5f00\u7684socket\u8fde\u63a5\uff0cTCP\u4fdd\u6301\u5728FIN-WAIT-2\u72b6\u6001\u7684\u65f6\u95f4\u3002\u5bf9\u65b9\u53ef\u80fd\u4f1a\u65ad\u5f00\u8fde\u63a5\u6216\u4e00\u76f4\u4e0d\u7ed3\u675f\u8fde\u63a5\u6216\u4e0d\u53ef\u9884\u6599\u7684\u8fdb\u7a0b\u6b7b\u4ea1 | ||
| 127 | +OS.kernel.shmall.suggestExplain= | ||
| 128 | +OS.kernel.shmmax.suggestExplain= | ||
| 129 | +OS.net.ipv4.tcp_sack.suggestExplain=\u4f7f\u7528 Selective ACK\ufe50\u5b83\u53ef\u4ee5\u7528\u6765\u67e5\u627e\u7279\u5b9a\u7684\u9057\u5931\u7684\u6570\u636e\u62a5--- \u56e0\u6b64\u6709\u52a9\u4e8e\u5feb\u901f\u6062\u590d\u72b6\u6001\u3002\u8be5\u6587\u4ef6\u8868\u793a\u662f\u5426\u542f\u7528\u6709\u9009\u62e9\u7684\u5e94\u7b54\uff08Selective Acknowledgment\uff09\uff0c\u8fd9\u53ef\u4ee5\u901a\u8fc7\u6709\u9009\u62e9\u5730\u5e94\u7b54\u4e71\u5e8f\u63a5\u6536\u5230\u7684\u62a5\u6587\u6765\u63d0\u9ad8\u6027\u80fd\uff08\u8fd9\u6837\u53ef\u4ee5\u8ba9\u53d1\u9001\u8005\u53ea\u53d1\u9001\u4e22\u5931\u7684\u62a5\u6587\u6bb5\uff09\u3002(\u5bf9\u4e8e\u5e7f\u57df\u7f51\u901a\u4fe1\u6765\u8bf4\u8fd9\u4e2a\u9009\u9879\u5e94\u8be5\u542f\u7528\uff0c\u4f46\u662f\u8fd9\u4f1a\u589e\u52a0\u5bf9 CPU \u7684\u5360\u7528 | ||
| 130 | +OS.net.ipv4.tcp_timestamps.suggestExplain=Timestamps \u7528\u5728\u5176\u5b83\u4e00\u4e9b\u4e1c\u897f\u4e2d\ufe50\u53ef\u4ee5\u9632\u8303\u90a3\u4e9b\u4f2a\u9020\u7684sequence \u53f7\u7801\u3002\u4e00\u67611G\u7684\u5bbd\u5e26\u7ebf\u8def\u6216\u8bb8\u4f1a\u91cd\u9047\u5230\u5e26 out-of-line\u6570\u503c\u7684\u65e7sequence \u53f7\u7801(\u5047\u5982\u5b83\u662f\u7531\u4e8e\u4e0a\u6b21\u4ea7\u751f\u7684)\u3002Timestamp \u4f1a\u8ba9\u5b83\u77e5\u9053\u8fd9\u662f\u4e2a '\u65e7\u5c01\u5305'\u3002(\u8be5\u6587\u4ef6\u8868\u793a\u662f\u5426\u542f\u7528\u4ee5\u4e00\u79cd\u6bd4\u8d85\u65f6\u91cd\u53d1\u66f4\u7cbe\u786e\u7684\u65b9\u6cd5\uff08RFC 1323\uff09\u6765\u542f\u7528\u5bf9 RTT \u7684\u8ba1\u7b97\uff1b\u4e3a\u4e86\u5b9e\u73b0\u66f4\u597d\u7684\u6027\u80fd\u5e94\u8be5\u542f\u7528\u8fd9\u4e2a\u9009\u9879\u3002) | ||
| 131 | +OS.vm.extfrag_threshold.suggestExplain= | ||
| 132 | +OS.vm.overcommit_ratio.suggestExplain=\u8fd9\u4e2a\u53c2\u6570\u503c\u53ea\u6709\u5728vm.overcommit_memory=2\u7684\u60c5\u51b5\u4e0b\uff0c\u8fd9\u4e2a\u53c2\u6570\u624d\u4f1a\u751f\u6548 | ||
| 133 | +OS.MTU.suggestExplain= | ||
| 134 | +DB.bgwriter_delay.suggestExplain=\u5728\u6570\u636e\u5199\u538b\u529b\u6bd4\u8f83\u5927\u7684\u573a\u666f\u4e2d\u53ef\u4ee5\u5c1d\u8bd5\u51cf\u5c0f\u8be5\u503c\u4ee5\u964d\u4f4echeckpoint\u7684\u538b\u529b | ||
| 135 | +DB.bgwriter_thread_num.suggestExplain= | ||
| 136 | +DB.max_io_capacity.suggestExplain= | ||
| 137 | +DB.log_min_duration_statement.suggestExplain=\u8bbe\u7f6e\u4e3a250\uff0c\u6240\u6709\u8fd0\u884c\u65f6\u95f4\u4e0d\u77ed\u4e8e250ms\u7684SQL\u8bed\u53e5\u90fd\u4f1a\u88ab\u8bb0\u5f55\u3002\u8bbe\u7f6e\u4e3a0\uff0c\u8f93\u51fa\u6240\u6709\u8bed\u53e5\u7684\u6301\u7eed\u65f6\u95f4\u3002\u8bbe\u7f6e\u4e3a-1\uff0c\u5173\u95ed\u6b64\u529f\u80fd | ||
| 138 | +DB.log_duration.suggestExplain=\u8bbe\u7f6e\u4e3aoff\uff0c\u8be5\u9009\u9879\u4e0elog_min_duration_statement\u7684\u4e0d\u540c\u4e4b\u5904\u5728\u4e8elog_min_duration_statement\u5f3a\u5236\u8bb0\u5f55\u67e5\u8be2\u6587\u672c\u3002\u8bbe\u7f6e\u4e3aon\u5e76\u4e14log_min_duration_statement\u5927\u4e8e\u96f6\uff0c\u8bb0\u5f55\u6240\u6709\u6301\u7eed\u65f6\u95f4\uff0c\u4f46\u662f\u4ec5\u8bb0\u5f55\u8d85\u8fc7\u9608\u503c\u7684\u8bed\u53e5\u3002\u8fd9\u53ef\u7528\u4e8e\u5728\u9ad8\u8d1f\u8f7d\u60c5\u51b5\u4e0b\u641c\u96c6\u7edf\u8ba1\u4fe1\u606f | ||
| 139 | +DB.track_stmt_stat_level.suggestExplain= | ||
| 140 | +DB.track_stmt_retention_time.suggestExplain= | ||
| 141 | +DB.enable_thread_pool.suggestExplain=on\u8868\u793a\u5f00\u542f\u7ebf\u7a0b\u6c60\u529f\u80fd\u3002off\u8868\u793a\u4e0d\u5f00\u542f\u7ebf\u7a0b\u6c60\u529f\u80fd | ||
| 142 | +DB.thread_pool_attr.suggestExplain= | ||
| 143 | +DB.log_statement.suggestExplain=none\u8868\u793a\u4e0d\u8bb0\u5f55\u8bed\u53e5\u3002ddl\u8868\u793a\u8bb0\u5f55\u6240\u6709\u7684\u6570\u636e\u5b9a\u4e49\u8bed\u53e5\uff0c\u6bd4\u5982CREATE\u3001ALTER\u548cDROP\u8bed\u53e5\u3002mod\u8868\u793a\u8bb0\u5f55\u6240\u6709DDL\u8bed\u53e5\uff0c\u8fd8\u5305\u62ec\u6570\u636e\u4fee\u6539\u8bed\u53e5INSERT\u3001UPDATE\u3001DELETE\u3001TRUNCATE\u548cCOPY FROM \u3002all\u8868\u793a\u8bb0\u5f55\u6240\u6709\u8bed\u53e5\uff0cPREPARE\u3001EXECUTE\u548cEXPLAIN ANALYZE\u8bed\u53e5\u4e5f\u540c\u6837\u88ab\u8bb0\u5f55 | ||
| 144 | +DB.log_error_verbosity.suggestExplain=terse\u4ee3\u8868\u8f93\u51fa\u4e0d\u5305\u62ecDETAIL\u3001HINT\u3001QUERY\u53caCONTEXT\u9519\u8bef\u4fe1\u606f\u7684\u8bb0\u5f55\u3002verbose\u4ee3\u8868\u8f93\u51fa\u5305\u62ecSQLSTATE\u9519\u8bef\u4ee3\u7801\u3001\u6e90\u4ee3\u7801\u6587\u4ef6\u540d\u3001\u51fd\u6570\u540d\u53ca\u4ea7\u751f\u9519\u8bef\u6240\u5728\u7684\u884c\u53f7\u3002 | ||
| 145 | +default\u4ee3\u8868\u8f93\u51fa\u5305\u62ecDETAIL\u3001HINT\u3001QUERY\u53caCONTEXT\u9519\u8bef\u4fe1\u606f\u7684\u8bb0\u5f55\uff0c\u4e0d\u5305\u62ecSQLSTATE\u9519\u8bef\u4ee3\u7801 \u3001\u6e90\u4ee3\u7801\u6587\u4ef6\u540d\u3001\u51fd\u6570\u540d\u53ca\u4ea7\u751f\u9519\u8bef\u6240\u5728\u7684\u884c\u53f7" | ||
| 146 | +DB.log_min_messages.suggestExplain=\u6709\u6548\u503c\u6709debug\u3001debug5\u3001debug4\u3001debug3\u3001debug2\u3001debug1\u3001info\u3001log\u3001notice\u3001warning\u3001error\u3001fatal\u3001panic\u3002 | ||
| 147 | +DB.log_min_error_statement.suggestExplain=\u6709\u6548\u503c\u6709debug\u3001debug5\u3001debug4\u3001debug3\u3001debug2\u3001debug1\u3001info\u3001log\u3001notice\u3001warning\u3001error\u3001fatal\u3001panic\u3002 | ||
| @@ -18,7 +18,7 @@ import lombok.NoArgsConstructor; | |||
| 18 | /** | 18 | /** |
| 19 | * HistogramToHeatmap | 19 | * HistogramToHeatmap |
| 20 | * | 20 | * |
| 21 | - * @formatter:off | 21 | + * <pre> |
| 22 | Sampling run queue length... Hit Ctrl-C to end. | 22 | Sampling run queue length... Hit Ctrl-C to end. |
| 23 | 23 | ||
| 24 | 12:16:18 | 24 | 12:16:18 |
| @@ -29,7 +29,7 @@ Sampling run queue length... Hit Ctrl-C to end. | |||
| 29 | 3 : 137 |*************************** | | 29 | 3 : 137 |*************************** | |
| 30 | 4 : 93 |****************** | | 30 | 4 : 93 |****************** | |
| 31 | 5 : 38 |******* | | 31 | 5 : 38 |******* | |
| 32 | -@formatter:on | 32 | + * </pre> |
| 33 | */ | 33 | */ |
| 34 | public class HistogramToHeatmap { | 34 | public class HistogramToHeatmap { |
| 35 | private static final String timeRegex = "([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]):?"; | 35 | private static final String timeRegex = "([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]):?"; |