K8s中,tomcat的一部分jvm参数,如何通过env环境变量传递?
这两天解决的一个需求:
如果用户没有在deployment中设置env参数,则tomcat默认使用1G左右的内存;
如果用户在deployment中提供了jvm参数,则tomcat将这部分的参数,覆盖掉默认的jvm参数。
这个实现思路是ok的,但在实现shell脚本时,老司机也遇到了新问题:
如何判断一个有空格的环境变量是否存在?
最后通过百度搞定。
有空格的环境变量的读取,通过两种办法可解决,一种是改写IFS,一种是用双引号。
比如,deployment.yaml的部分内容如下:
... env: - name: XXX_JAVA_OPTS value: "-Xms500m -Xmx950m -XX:MaxNewSize=250m -XX:+UseConcMarkSweepGC" ...
那镜像里的处理脚本如下:
if [ "$XXX_JAVA_OPTS" ];then JAVA_OPTS="$JAVA_OPTS $XXX_JAVA_OPTS" else JAVA_OPTS="$JAVA_OPTS -Xms800m -Xmx900m -XX:MaxNewSize=256m" JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC" fi
也可如下:
IFS_old=$IFS IFS= $'\n' if [ $XXX_JAVA_OPTS ];then JAVA_OPTS="$JAVA_OPTS $XXX_JAVA_OPTS" else JAVA_OPTS="$JAVA_OPTS -Xms800m -Xmx900m -XX:MaxNewSize=256m" JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC" Fi IFS=$IFS_old
K8s中,tomcat的一部分jvm参数,如何通过env环境变量传递?的更多相关文章
- 在CentOS7.4中安装jdk的几种方法及配置环境变量
在CentOS7.4中安装jdk的几种方法及配置环境变量 一.下载jdk jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads ...
- Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量)
原文:http://www.cnblogs.com/heshan664754022/archive/2013/03/27/2984357.html Tomcat启动分析(我们为什么要配置CATALIN ...
- 使用Visual VM 查看linux中tomcat运行时JVM内存
前言:在生产环境中经常发生服务器内存溢出,假死或者线程死锁等异常,导致服务不可用.我们经常使用的解决方法是通过分析错误日记,然后去寻找代码到底哪里出现了问题,这样的方式也许会奏效,但是排查起来耗费时间 ...
- JVM中的GC算法,JVM参数,垃圾收集器分类
一.在JVM中什么是垃圾?如何判断一个对象是否可被回收?哪些对象可以作为GC Roots的根 垃圾就是在内存中已经不再被使用到的空间就是垃圾. 1.引用计数法: 内部使用一个计数器,当有对象被引用+1 ...
- Linux中shell基础、重定向、管道符、环境变量
1.什么是shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器).它接收用户输入的命令并把它送入内核去执行.起着协调用户与系统的一致性和在用户与系统之间进行交互的 ...
- tomcat manager 的用户权限配置,及环境变量CATALINA_HOME的错位问题
因为tomcat的manager是管理其他项目的发布.删除等操作的管理项目,所以需要为其设置登陆用户和密码,以及用户相应的访问权限,配置如下: tomcat-users.xml需要添加如下内容: &l ...
- tomcat运行时JVM参数调整
进入tomcat/bin目录 catalina.bat 中加入set JAVA_OPTS=-Xms210m -Xmx256m -Xmn70m -XX:PermSize=150m -XX:MaxPerm ...
- 总结:在MyEclipse中部署一个wap应用时需要配置的环境变量,我的JDK是安装在C盘,mysql安装在D盘,Tomcat解压在E盘,所以路径一定要看清楚哦,!
- maven中可以直接引用的java系统属性和环境变量属性
一.查看命令: 1 mvn help :system 二.引用 在pom文件中通过 ${变量名}来引用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
随机推荐
- net 和Mono 构建的HTTP服务框架
Nancy是一个基于.net 和Mono 构建的HTTP服务框架,是一个非常轻量级的web框架. 设计用于处理 DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATC ...
- 前端学习 -- Css -- 定义列表
定义列表用来对一些词汇或内容进行定义 使用dl来创建一个定义列表 dl中有两个子标签 dt : 被定义的内容 dd : 对定义内容的描述 同样dl和ul和ol之间都可以互相嵌套 <!DOCTYP ...
- 51nod 1450 闯关游戏
首先肯定要先把所有的关卡打通后去找两星几率最大的关卡刷星(论打游戏经验的重要性). 所以从两星几率小的关打起,记录当前拿到x个星星的几率和当前走过的期望步数,如果发现剩下的关必须全两星,就直接计算答案 ...
- debian8.4 ibus中文输入法
安装IBus: # apt-get install ibus ibus-sunpinyin ibus-table-wubi 导入输入法: 在Activities->Applications-&g ...
- linux命令总结mpstat命令
简介 mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具.其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中.在多CPUs系统里,其不但能查 ...
- vue-router基本概念及使用
index.html: <!DOCTYPE html> <html> <head> <title></title> <meta cha ...
- Spark记录-org.apache.spark.sql.hive.HiveContext与org.apache.spark.sql.SQLContext包api分析
HiveContext/SQLContext val hiveContext=new HiveContext(new SparkContext(new SparkConf().setAppName(& ...
- Linux 并发链接数
并发数查看 查看 TCP 协议连接数 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' SYN_RECV # ...
- 第7月第12天 opengles background
1. After your app exits its applicationDidEnterBackground: method, it must not make any new OpenGL E ...
- Web安全测试-WebScarab
[功能] WebScarab是一个用来分析使用HTTP和HTTPS协议的应用程序框架.其原理很简单,WebScarab可以记录它检测到的会话内容(请求和应答),并允许使用者可以通过多种形式来查看记录. ...