You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by le...@apache.org on 2020/01/13 08:05:54 UTC

[incubator-iotdb] branch fixEnvBat created (now 8405f45)

This is an automated email from the ASF dual-hosted git repository.

leirui pushed a change to branch fixEnvBat
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git.


      at 8405f45  fix bug in iotdb-env.bat by using quotes to protect against empty entries

This branch includes the following new commits:

     new d4582e1  fix gc log collection in start-server.sh scripts
     new dc01237  set all gc log as info level (though some startup memory allocation log is debug and trace still)
     new 8405f45  fix bug in iotdb-env.bat by using quotes to protect against empty entries

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[incubator-iotdb] 02/03: set all gc log as info level (though some startup memory allocation log is debug and trace still)

Posted by le...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

leirui pushed a commit to branch fixEnvBat
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit dc012372d39b372b2389126e156e58b6b987b7d0
Author: xiangdong huang <sa...@gmail.com>
AuthorDate: Tue Dec 31 19:55:11 2019 +0800

    set all gc log as info level (though some startup memory allocation log is debug and trace still)
    
    (cherry picked from commit 0a796a240fa398ff366d34b0815c491108f1a515)
---
 server/src/assembly/resources/conf/iotdb-env.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/src/assembly/resources/conf/iotdb-env.sh b/server/src/assembly/resources/conf/iotdb-env.sh
index 0e06de1..583e93b 100755
--- a/server/src/assembly/resources/conf/iotdb-env.sh
+++ b/server/src/assembly/resources/conf/iotdb-env.sh
@@ -150,7 +150,7 @@ else
         # only add -Xlog:gc if it's not mentioned in jvm-server.options file
         mkdir -p ${IOTDB_HOME}/logs
         if [ "$#" -ge "1" -a "$1" == "printgc" ]; then
-            IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Xlog:gc=info,heap*=trace,age*=debug,safepoint=info,promotion*=trace:file=${IOTDB_HOME}/logs/gc.log:time,uptime,pid,tid,level:filecount=10,filesize=10485760"
+            IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Xlog:gc=info,heap*=info,age*=info,safepoint=info,promotion*=info:file=${IOTDB_HOME}/logs/gc.log:time,uptime,pid,tid,level:filecount=10,filesize=10485760"
         fi
     fi
 fi


[incubator-iotdb] 03/03: fix bug in iotdb-env.bat by using quotes to protect against empty entries

Posted by le...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

leirui pushed a commit to branch fixEnvBat
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 8405f4547aa1eef24a0e76d824c504c0384bff9b
Author: RuiLei <ru...@gmail.com>
AuthorDate: Mon Jan 13 16:05:22 2020 +0800

    fix bug in iotdb-env.bat by using quotes to protect against empty entries
---
 server/src/assembly/resources/conf/iotdb-env.bat | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/src/assembly/resources/conf/iotdb-env.bat b/server/src/assembly/resources/conf/iotdb-env.bat
index fcf9fba..007ea8c 100644
--- a/server/src/assembly/resources/conf/iotdb-env.bat
+++ b/server/src/assembly/resources/conf/iotdb-env.bat
@@ -29,7 +29,7 @@ if "%LOCAL_JMX%" == "yes" (
 
 IF ["%IOTDB_HEAP_OPTS%"] EQU [""] (
 	rem detect Java 8 or 11
-	IF %%JAVA_VERSION%% == 8 (
+	IF "%JAVA_VERSION%" == "8" (
 		java -d64 -version >nul 2>&1
 		IF NOT ERRORLEVEL 1 (
 			rem 64-bit Java
@@ -69,7 +69,7 @@ IF "%BIT_VERSION%" == "64-Bit" (
 :end_config_setting
 @REM set gc log.
 IF "%1" equ "printgc" (
-	IF %JAVA_VERSION% == 8 (
+	IF "%JAVA_VERSION%" == "8" (
 	    md %IOTDB_HOME%\logs
 		set IOTDB_HEAP_OPTS=%IOTDB_HEAP_OPTS% -Xloggc:"%IOTDB_HOME%\logs\gc.log" -XX:+PrintGCDateStamps -XX:+PrintGCDetails  -XX:+PrintGCApplicationStoppedTime -XX:+PrintPromotionFailure -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M
 	) ELSE (


[incubator-iotdb] 01/03: fix gc log collection in start-server.sh scripts

Posted by le...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

leirui pushed a commit to branch fixEnvBat
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit d4582e13cf83b0d635806c90551dd0bad817fbed
Author: xiangdong huang <sa...@gmail.com>
AuthorDate: Tue Dec 31 19:43:45 2019 +0800

    fix gc log collection in start-server.sh scripts
    
    (cherry picked from commit b7a30552d62abd3e9a80ac983f9269b0a3364c5f)
---
 .../UserGuide/3-Server/4-Config Manual.md          | 19 ++++++++++++-
 .../UserGuide/3-Server/4-Config Manual.md          | 20 +++++++++++++-
 server/src/assembly/resources/conf/iotdb-env.bat   | 29 +++++++++++---------
 server/src/assembly/resources/conf/iotdb-env.sh    | 31 +++++++++++++++++-----
 .../src/assembly/resources/sbin/start-server.bat   |  2 +-
 server/src/assembly/resources/sbin/start-server.sh |  6 ++++-
 6 files changed, 84 insertions(+), 23 deletions(-)

diff --git a/docs/Documentation-CHN/UserGuide/3-Server/4-Config Manual.md b/docs/Documentation-CHN/UserGuide/3-Server/4-Config Manual.md
index 2310c17..e99c288 100644
--- a/docs/Documentation-CHN/UserGuide/3-Server/4-Config Manual.md	
+++ b/docs/Documentation-CHN/UserGuide/3-Server/4-Config Manual.md	
@@ -404,4 +404,21 @@
 |描述| Kerberos 认证原则|
 |类型| String |
 |默认值|your principal |
-|改后生效方式|重启服务器生效|
\ No newline at end of file
+|改后生效方式|重启服务器生效|
+
+
+## 开启GC日志
+GC日志默认是关闭的。为了性能调优,用户可能会需要手机GC信息。
+若要打开GC日志,则需要在启动IoTDB Server的时候加上"printgc"参数:
+
+```bash
+sbin/start-server.sh printgc
+```
+或者
+
+```bash
+sbin\start-server.bat printgc
+```
+
+GC日志会被存储在`IOTDB_HOME/logs/gc.log`. 至多会存储10个gc.log文件,每个文件最多10MB。
+
diff --git a/docs/Documentation/UserGuide/3-Server/4-Config Manual.md b/docs/Documentation/UserGuide/3-Server/4-Config Manual.md
index c95490b..a16cdcd 100644
--- a/docs/Documentation/UserGuide/3-Server/4-Config Manual.md	
+++ b/docs/Documentation/UserGuide/3-Server/4-Config Manual.md	
@@ -442,4 +442,22 @@ The detail of each variables are as follows:
 |Description| Kerberos pricipal|
 |Type| String |
 |Default|your principal |
-|Effective|After restart system|
\ No newline at end of file
+|Effective|After restart system|
+
+## Enable GC log
+GC log is off by default.
+For performance tuning, you may want to collect the GC info. 
+
+To enable GC log, just add a paramenter "printgc" when you start the server.
+
+```bash
+sbin/start-server.sh printgc
+```
+Or
+```bash
+sbin\start-server.bat printgc
+```
+
+GC log is stored at `IOTDB_HOME/logs/gc.log`.
+There will be at most 10 gc.log.* files and each one can reach to 10MB.
+
diff --git a/server/src/assembly/resources/conf/iotdb-env.bat b/server/src/assembly/resources/conf/iotdb-env.bat
index e04a409..fcf9fba 100644
--- a/server/src/assembly/resources/conf/iotdb-env.bat
+++ b/server/src/assembly/resources/conf/iotdb-env.bat
@@ -54,24 +54,27 @@ for /f "tokens=1-3" %%j in ('java -version 2^>^&1') do (
 	set BIT_VERSION=%%l
 )
 IF "%BIT_VERSION%" == "64-Bit" (
-  rem 64bit, Maximum heap size
-  set MAX_HEAP_SIZE="2G"
-  rem 64bit, Minimum heap size
-  set HEAP_NEWSIZE="2G"
+	rem 64-bit Java
+	echo Detect 64-bit Java, maximum memory allocation pool = 2GB, initial memory allocation pool = 2GB
+	set IOTDB_HEAP_OPTS=-Xmx2G -Xms2G
 ) ELSE (
-  rem 32bit, Maximum heap size
-  set MAX_HEAP_SIZE="512M"
-  rem 32bit, Minimum heap size
-  set HEAP_NEWSIZE="512M"
+	rem 32-bit Java
+	echo Detect 32-bit Java, maximum memory allocation pool = 512MB, initial memory allocation pool = 512MB
+	set IOTDB_HEAP_OPTS=-Xmx512M -Xms512M
 )
 
-@REM MAX_HEAP_SIZE="2G"
-@REM HEAP_NEWSIZE="2G"
-
-set IOTDB_HEAP_OPTS=-Xmx%MAX_HEAP_SIZE% -Xms%HEAP_NEWSIZE%
-
 @REM You can put your env variable here
 @REM set JAVA_HOME=%JAVA_HOME%
 
 :end_config_setting
+@REM set gc log.
+IF "%1" equ "printgc" (
+	IF %JAVA_VERSION% == 8 (
+	    md %IOTDB_HOME%\logs
+		set IOTDB_HEAP_OPTS=%IOTDB_HEAP_OPTS% -Xloggc:"%IOTDB_HOME%\logs\gc.log" -XX:+PrintGCDateStamps -XX:+PrintGCDetails  -XX:+PrintGCApplicationStoppedTime -XX:+PrintPromotionFailure -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M
+	) ELSE (
+		md %IOTDB_HOME%\logs
+		set IOTDB_HEAP_OPTS=%IOTDB_HEAP_OPTS%  -Xlog:gc=info,heap*=trace,age*=debug,safepoint=info,promotion*=trace:file="%IOTDB_HOME%\logs\gc.log":time,uptime,pid,tid,level:filecount=10,filesize=10485760
+	)
+)
 echo If you want to change this configuration, please check conf/iotdb-env.sh(Unix or OS X, if you use Windows, check conf/iotdb-env.bat).
\ No newline at end of file
diff --git a/server/src/assembly/resources/conf/iotdb-env.sh b/server/src/assembly/resources/conf/iotdb-env.sh
index 3d8e39b..0e06de1 100755
--- a/server/src/assembly/resources/conf/iotdb-env.sh
+++ b/server/src/assembly/resources/conf/iotdb-env.sh
@@ -128,12 +128,31 @@ fi
 
 version_arr=(${JVM_VERSION//./ })
 
+#GC log path has to be defined here because it needs to access CASSANDRA_HOME
 if [ "${version_arr[0]}" = "1" ] ; then
-  MAJOR_VERSION=${version_arr[1]}
-  IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Xloggc:${IOTDB_HOME}/gc.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails"
+    # Java 8
+    MAJOR_VERSION=${version_arr[1]}
+    echo "$IOTDB_JMX_OPTS" | grep -q "^-[X]loggc"
+    if [ "$?" = "1" ] ; then # [X] to prevent ccm from replacing this line
+        # only add -Xlog:gc if it's not mentioned in jvm-server.options file
+        mkdir -p ${IOTDB_HOME}/logs
+        if [ "$#" -ge "1" -a "$1" == "printgc" ]; then
+            IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Xloggc:${IOTDB_HOME}/logs/gc.log  -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCApplicationStoppedTime -XX:+PrintPromotionFailure -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M"
+        fi
+    fi
 else
-  MAJOR_VERSION=${version_arr[0]}
-  IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Xloggc:${IOTDB_HOME}/gc.log"
+    #JDK 11 and others
+    MAJOR_VERSION=${version_arr[0]}
+    # See description of https://bugs.openjdk.java.net/browse/JDK-8046148 for details about the syntax
+    # The following is the equivalent to -XX:+PrintGCDetails -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M
+    echo "$IOTDB_JMX_OPTS" | grep -q "^-[X]log:gc"
+    if [ "$?" = "1" ] ; then # [X] to prevent ccm from replacing this line
+        # only add -Xlog:gc if it's not mentioned in jvm-server.options file
+        mkdir -p ${IOTDB_HOME}/logs
+        if [ "$#" -ge "1" -a "$1" == "printgc" ]; then
+            IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Xlog:gc=info,heap*=trace,age*=debug,safepoint=info,promotion*=trace:file=${IOTDB_HOME}/logs/gc.log:time,uptime,pid,tid,level:filecount=10,filesize=10485760"
+        fi
+    fi
 fi
 
 
@@ -150,10 +169,10 @@ JMX_LOCAL=no
 JMX_PORT="31999"
 
 if [ "JMX_LOCAL" = "yes" ]; then
-	IOTDB_JMX_OPTS="-Diotdb.jmx.local.port=$JMX_PORT"
+	IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Diotdb.jmx.local.port=$JMX_PORT"
 	IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
 else
-	IOTDB_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false"
+	IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false"
 	IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT "
 fi
 
diff --git a/server/src/assembly/resources/sbin/start-server.bat b/server/src/assembly/resources/sbin/start-server.bat
index 57ba10d..823df0e 100755
--- a/server/src/assembly/resources/sbin/start-server.bat
+++ b/server/src/assembly/resources/sbin/start-server.bat
@@ -59,7 +59,7 @@ set IOTDB_CONF=%IOTDB_HOME%\conf
 set IOTDB_LOGS=%IOTDB_HOME%\logs
 
 IF EXIST "%IOTDB_CONF%\iotdb-env.bat" (
-    CALL "%IOTDB_CONF%\iotdb-env.bat"
+    CALL "%IOTDB_CONF%\iotdb-env.bat" %1
     ) ELSE (
     echo "can't find %IOTDB_CONF%\iotdb-env.bat"
     )
diff --git a/server/src/assembly/resources/sbin/start-server.sh b/server/src/assembly/resources/sbin/start-server.sh
index ed5e826..009e65a 100755
--- a/server/src/assembly/resources/sbin/start-server.sh
+++ b/server/src/assembly/resources/sbin/start-server.sh
@@ -31,7 +31,11 @@ IOTDB_CONF=${IOTDB_HOME}/conf
 # IOTDB_LOGS=${IOTDB_HOME}/logs
 
 if [ -f "$IOTDB_CONF/iotdb-env.sh" ]; then
-    . "$IOTDB_CONF/iotdb-env.sh"
+    if [ "$#" -ge "1" -a "$1" == "printgc" ]; then
+      . "$IOTDB_CONF/iotdb-env.sh" "printgc"
+    else
+        . "$IOTDB_CONF/iotdb-env.sh"
+    fi
 else
     echo "can't find $IOTDB_CONF/iotdb-env.sh"
 fi