1. Ubuntu
(1)timedatectl时间同步
$date #查看当前时区
$cat /etc/timezone #同上
$timedatectl #查看时间是否与互联网同步,不同步则显示System clock synchronized:no
$systemctl restart systemd-timesyncd.service #重启timesyncd服务
$timedatectl set-ntp true #启动时间同步
(2)timedatectl设置时区
$timedatectl list-timezone #列出时区
$timedatectl set-timezone Asia/Shanghai #设置为指定的时区,如UTC(世界协调时)
$date #查看是否设置成功
(3)tzdata设置时区
$dpkg-reconfigure tzdata
2. Docker容器
$apt-get install -y tzdata #安装tzdata
$dpkg-reconfigure tzdata
$date
3. Mysql
(1)日志打印时间与系统时区同步
>show variables like "log_timestamps";
>set global log_timestamps="SYSTEM";
(2)设置msyql时区
show variables like '%time_zone%';
set time_zone = '+8:00';
4. tomcat
在/bin/catalina.sh文件中加入如下配置:
JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Shanghai"
备注:JAVA_OPTS,JVM运行相关参数的变量。
JVM:JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k"
-server: 一定要作为第一个参数,在多个CPU时性能佳*。
-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些。
-Xmx:java heap最大值,使用的最大内存。
上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
-XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域
-XX:MaxNewSize:
-Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
+XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
-Xss:每个线程的Stack大小
-verbose:gc 现实垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
-XX:+UseParNewGC :缩短minor收集的时间
-XX:+UseConcMarkSweepGC :缩短major收集的时间
5. Java new Date()
(1)SimpleDateFormat格式化设置时区
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")
(2)修改数据库链接,加上:
serverTimezone=GMT%2B8