I. Overview
1. version
Report server version |
---|
10.0.17 |
2. Function introduction
This article will briefly introduce the check logic and check items of the System Check function.
Note 1: If the current configuration cannot be detected, the current configuration is empty, and the modification comment is "This item is not currently supported". Click "Details" behind the status to view the specific reasons.
Note 2: If there are no problems with all check items, it will prompt: The current system is running well and no adjustment is required.
Note 3: If the system is in a cluster environment, you can select specific cluster nodes for testing in the upper left corner of the "System Check" page.
II. Memory check items
The detection logic of memory detection items is shown in the following table:
Serial number | Check item | Inspection content | Inspection results | Suggestions for improvement |
---|---|---|---|---|
1 | Single machine and multiple processes | Check whether the memory occupied by other processes except the report process in the system where the report project is located is greater than 1/8 of the total physical memory. | If it is not greater than 1/8 of the total physical memory, the check is qualified and enter Check 2 | - |
If it is greater than 1/8 of the total physical memory, the system is considered to be a single-machine multi-process system, with poor system stability and potential downtime, and subsequent reasonable recommendations cannot be made, and the detection process is terminated. | The current system is suspected to be multi-process and there is a hidden danger of downtime. It is recommended to keep only the report project and configure the relevant parameters reasonably It is recommended to close other useless processes in the system and only keep the processes related to the report project. | |||
2 | Garbage Collect | Check whether the garbage collector of the virtual machine is ParallelScavenge. | If the type of the garbage collector is ParallelScavenge, the check is qualified, and the third check is entered | - |
The garbage collector type is not ParallelScavenge, prompt to modify, and skip to the 6th check | It is recommended that JVM use the garbage collector type as ParallelScavenge Please refer to section 2.1 to configure the garbage collector type | |||
3 | Recommended value of in-heap memory | Due to problems such as insufficient GC for 14 days in the cloud operation and maintenance data, abnormal GC data, etc., it will be impossible to calculate an accurate recommended value for the system heap memory. Therefore, it is necessary to determine whether there is a recommended value. | If the system has a recommended value for heap memory, this item Pass the inspection, proceed to the 4th inspection | - |
The system has a recommended value of in-heap memory, a prompt is generated, and the system jumps to the 6th check. | The system running data is insufficient, and configuration recommendations cannot be made temporarily | |||
4 | In-heap memory | Only when the current heap memory is not enough, will it be recommended to prevent the downtime of memory overflow, so it is necessary to check whether the current system in-heap memory is less than the recommended value in the system heap. | If the current value of the in-heap memory is less than the recommended value, the inspection is qualified, and proceed to the fifth inspection | - |
If the current value of the heap memory is greater than the recommended value, skip to the 6th check | - | |||
5 | Physical memory- recommended heap memory | Under a single machine and single process, the entire physical machine memory = recommended value of heap memory + memory required for off-heap NIO + memory required for off-heap fineIO + reserved memory, reserved memory is temporarily set as 1/4 physical Memory. | If it is detected that "current physical memory-recommended heap memory-5G" ≥ "1/4 physical memory", a prompt is generated and skip to the 7th check | It is recommended that the heap memory of the current system be increased to the heap memory recommended by the system Please refer to section 2.2 to configure in-heap memory. |
If it is detected that "current physical memory-recommended heap memory-5G" < "1/4 physical memory", a prompt is generated, and subsequent reasonable recommendations cannot be made, and the detection process is terminated | It is recommended to increase the physical memory to a value above "(recommended in-heap memory+5G)*4/3*4". Please increase the physical memory. | |||
6 | Physical memory- currently configured heap memory | When there is no recommended value of heap memory in the case of (insufficient GC log, inaccurate GC log, and non-PS garbage collector), and the recommended value of heap memory is not greater than the current memory,it is temporarily unable to accurately determine the amount of heap memory in the current system that does not overflow in the heap, so the amount of heap memory cannot be recommended, and only the out-of-heap memory model can be tested and configuration recommendations. | If it is detected that "current physical memory-current configuration of heap memory -5G" ≥ "1/4 of physical memory", indicating that the current memory configuration can eliminate the risk of off-heap memory downtime after the specified off-heap memory is configured, then this check is qualified and enter item 4 examination. | - |
If it is detected that "current physical memory-current configured heap memory-5G" <"1/4 physical memory", it is impossible to determine whether the xmx configuration is too large or the physical memory is small, only a prompt can be generated, and subsequent reasonable recommendations cannot be made, and then end the detection process | The current system memory configuration is unreasonable and there is a risk of downtime. It is recommended to modify the relevant configuration after checking. Please refer to section 2.2 to adjust small heap memory, please increase physical memory | |||
7 | Off-heap memory | Check whether the off-heap memory setting size exceeds 2G. | If the current off-heap memory does not exceed 2G, this check is qualified and enter the 8th check | - |
If the current off-heap memory exceeds 2G/no off-heap memory is configured, a prompt will be generated and jump to the 8th check | It is recommended that the off-heap memory (Maxdirectmemory) be set to 2G Please refer to section 2.3 to modify off-heap memory | |||
8 | FineIO read memory | Check whether the parameter configuration size of fineIO read memory (-Dfineio.read_mem_limit) exceeds 2G. | If the current fineIO read memory does not exceed 2G, this check is qualified, and go to the 9th check | - |
If the current fineIO read memory exceeds 2G, a prompt will be generated and jump to the 9th check | It is recommended to set the -Dfineio.read_mem_limit parameter to 2G Please refer to section 2.4 to modify the fineIO read memory | |||
9 | fineIO write memory | Check whether the fineIO write memory (-Dfineio.write_mem_limit) parameter configuration size exceeds 1G. | If the current fineIO write memory does not exceed 1G, the check is qualified and the test process ends | - |
If the current fineIO write memory exceeds 1G, a prompt will be generated and the detection process will end | It is recommended to set the -Dfineio.write_mem_limit parameter to 1G Please refer to section 2.5 to modify the fineIO write memory | |||
10 | System current memory | Check current physical memory-current configuration heap memory-5G>=1/4 physical memory | Physical memory- current configuration heap memory-5G>=1/4 physical memory | - |
Physical memory- current configuration heap memory-5G<1/4 physical memory | The current system memory configuration is unreasonable, and there is a risk of downtime. It is recommended to modify the relevant configuration after checking |
1. Modify the garbage collector type
This section takes the project deployment on Tomcat as an example, and introduces the method of setting the garbage collector as Parallel Scavenge (parallel collector).
Windows system: Open the catalina.bat file in the %Tomcat%/bin directory for configuration. After the configuration is completed, restart the project to take effect.
set JAVA_OPTS= -XX:+UseParallelGC
Linux: Open the catalina.sh file in the %Tomcat%/bin directory for configuration. After the configuration is complete, restart the project to take effect.
JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelGC"
2. Modify the heap memory
For the modification method of the heap memory, please refer to the following table document:
Parameter introduction | Server type | Reference document |
---|---|---|
-Xmx parameter: maximum heap memory -Xms parameter: Initialize memory size Note 1: There should be no space between Xmx/Xms and the number Note 2: It is recommended to configure Xms=Xmx to prevent memory expansion failure | Tomcat server | Tomcat server memory modification |
WebLogic server | WebLogic server memory modification | |
WebSphere server | WebSphere server | |
JBoss server | JBoss server | |
Resin server | Resin server memory modification |
3. Modify off-heap memory
The off-heap memory is set by the parameter -XX:MaxDirectMemorySize. This article takes the project deployment on Tomcat as an example to introduce the modification method.
Windows: Modify the catalina.bat file in the %Tomcat%/bin directory, add configuration, and restart the project after the configuration is complete.
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxDirectMemorySize=2g
Linux/Unix: Modify the catalina.sh file in the %Tomcat%/bin directory, add configuration, and restart the project after the configuration is complete.
JAVA_OPTS="$JAVA_OPTS -XX:MaxDirectMemorySize=2g"
As shown below:
4. Modify fineIO to read memory
The fineIO read memory is set by the parameter -Dfineio.read_mem_limit. Please select the modification method according to your own project deployment. This section shows the steps of setting fineIO to read memory in Tomcat environment.
The default unit of read memory is GB, which supports decimals, but does not support the use of g, m, etc. It is recommended that the read memory is 2-3 times of the write memory, and the cache size is recommended to be the same as the write memory size.
Windows: Add a configuration in the catalina.bat file in the %Tomcat%/bin directory, and restart the project after the configuration is complete.
set JAVA_OPTS=%JAVA_OPTS% -Dfineio.read_mem_limit=2
Linux: Add a configuration to the catalina.sh file in the %Tomcat%/bin directory, and restart the project after the configuration is complete.
JAVA_OPTS="$JAVA_OPTS -Dfineio.read_mem_limit=2"
5. Modify fineIO write memory
The fineIO write memory is set by the parameter -Dfineio.write_mem_limit. Please select the modification method according to your own project deployment. This section shows the steps of setting fineIO to write memory in Tomcat environment.
The default unit of writing memory is GB, which supports decimals, but does not support the use of g, m, etc. It is recommended that the read memory is 2-3 times of the write memory, and the cache size is recommended to be the same as the write memory size.
Windows: Add a configuration in the catalina.bat file in the %Tomcat%/bin directory, and restart the project after the configuration is complete.
set JAVA_OPTS=%JAVA_OPTS% -Dfineio.write_mem_limit=1
Linux: Add a configuration to the catalina.sh file in the %Tomcat%/bin directory, and restart the project after the configuration is complete.
JAVA_OPTS="$JAVA_OPTS -Dfineio.write_mem_limit=1"
III. Other check items
The inspection results and improvement suggestions are shown in the following table:
Check item | Current configuration | Detected problem standard | Suggestions for improvement |
---|---|---|---|
Disk remaining space | Display the current remaining space of the disk where the project is located. | The remaining space of the disk where the project is located is less than 5GB. | It is recommended that the remaining space of the disk where the system is located should not be less than 5G. Please clean up in time. |
Garbage collector type | Displays the current garbage collector type. | The GC type is not ParallelScavenge. | It is recommended that JVM use the garbage collector type as ParallelScavenge. Please refer to section 2.1 to modify. |
The ratio of the old generation to the young generation in the heap | Displays the current ratio of the old and young generations in the heap. | The ratio of the old and young generations in the heap is not 2 | It is recommended to set the ratio of the old and young generations in the JVM to 2. Please refer to section 3.1 to modify |
Stack space | Displays the current value of -Xss | -Xss value is greater than 512 | It is recommended that single thread usage stack space not more than 512 KB. Please refer to section 3.2 to modify |
JDK version | Displays the current JDK version. | The JDK version is lower than 1.8.101. | It is recommended to use the version 1.8.0_181 and above in "JDK8" |
finedb | Shared by multiple projects | Share finedb with other projects, such as: 1) Two or more report projects are shared 2) Two or more BI projects are shared 3) The report BI integration project is shared with the report single project 4) Report BI integration project and BI separate project sharing 5) The report project is shared with the BI project | It is recommended that one finedb corresponds to only one project, to prevent multiple projects from sharing one finedb. Please refer to the database document migration finedb |
finedb | HSQL | Uses a built-in database. | It is recommended to migrate finedb to a more stable external database. Please refer to the database document migration finedb |
DisableExplicitGC parameter | Has been configured | Prompt when configuring DisableExplicitGC parameter | It is recommended to cancel the DisableExplicitGC parameter configuration Please refer to section 3.3 to cancel parameter configuration |
headless mode | Not enabled | Prompt when -Djava.awt.headless=true is not configured | It is recommended to configure -Djava.awt.headless=true to enable headless mode Please refer to section 3.4 for configuration |
Log level | DEBUG | Prompt when the current log level is configured as DEBUG level | It is recommended to set the log level to ERROR Please refer to Log 2.3 to set the log level |
1. Set the size ratio of the old generation to the young generation in the heap
The recommended size ratio of the old generation to the young generation in the heap is 2
(-XX:NewRatio=2, the default value of JVM); the normal effective size of NewRatio requires the user to not limit the size of the young generation.
When setting the position of the -Xmx and -Xms parameters, just add the value of NewRatio. This section shows the steps of setting NewRatio in Tomcat environment.
Windows: Add a configuration in the catalina.bat file in the %Tomcat%/bin directory, and restart the project after the configuration is complete.
set JAVA_OPTS= -Xms512M -Xmx1024M -XX:NewRatio=2
Linux: Add a configuration to the catalina.sh file in the %Tomcat%/bin directory, and restart the project after the configuration is complete.
JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -XX:NewRatio=2"
2. Set single thread usage stack space
It is recommended that the single thread dusage stack space does not exceed 1024KB, that is, the value of
-Xss does not exceed 1024.
When setting the position of the -Xmx and -Xms parameters, just add the value of -Xss. This section shows the steps of setting -Xss in the Tomcat environment.
Windows: Add a configuration in the catalina.bat file in the %Tomcat%/bin directory, and restart the project after the configuration is complete.
set JAVA_OPTS= -Xms512M -Xmx1024M -Xss1024K
Linux system: Add configuration to the catalina.sh file in the %Tomcat%/bin directory, and restart the project after the configuration is complete.
JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -Xss1024K"
3. Set DisableExplicitGC parameter
The function of -XX:+DisableExplicitGC parameter is to disable System.gc()
System.gc() is a protection mechanism. For example, when the off-heap memory is full, the referenced objects in the heap are cleaned up. The user needs to choose whether to use this parameter according to the actual situation.
This section shows the steps to set the DisableExplicitGC parameter in the Tomcat environment.
Windows: Add a configuration in the catalina.bat file in the %Tomcat%/bin directory, and restart the project after the configuration is complete.
set JAVA_OPTS=%JAVA_OPTS% -XX:+DisableExplicitGC
Linux: Add a configuration to the catalina.sh file in the %Tomcat%/bin directory, and restart the project after the configuration is complete.
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"
4. Modify headless mode parameters
The headless mode is a working mode of the system. If the system property java.awt.headless is set to true, then the headless toolkit will be used.
This section shows the steps to enable headless mode in Tomcat environment.
Windows: Add a configuration in the catalina.bat file in the %Tomcat%/bin directory, and restart the project after the configuration is complete.
set JAVA_OPTS=%JAVA_OPTS% -Djava.awt.headless=true
Linux: Add a configuration to the catalina.sh file in the %Tomcat%/bin directory, and restart the project after the configuration is complete.
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"