查看虚拟机s5内存上限
#cat /sys/fs/cgroup/memory/lxc/s5/memory.limit_in_bytes
查看交换分区 + 内存的上限
#cat /sys/fs/cgroup/memory/lxc/s5/memory.memsw.limit_in_bytes
有关cpu,或者cpuset,于此类似。
即时修改虚拟机s5的内存上限:
echo 800M > /sys/fs/cgroup/memory/lxc/s5/memory.limit_in_bytes
其它修改也是如此,很简单。
但若是主动mount /cgroup ,则以上位置会发生变化。
PAAS路由
单台宿主机路由
一台宿主机上存在若干个Tomcat Servlet平台,外部请求如何动态转发到相应的虚拟机对应平台上,本文环境是一台宿主机(想虚拟两台,但笔记本太烂),比较好办。
关掉防火墙
ufw disable
然后重启
安装nginx:
apt-get install nginx
创建目录 /home/test/hosts,一般用户可读写。
修改nginx配置文件,在http大括号体最好一行添加内容:
vi /etc/nginx/nginx.conf
inlcude /home/test/hosts/*.conf;
建立虚拟机s5的Tomcat Servlet平台配置片段:
vi /home/test/hosts/s5.conf
server {
listen 80;
server_name s5.yong.com;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://s5:8080;
}
}
一个虚拟机一个配置文件,其它虚拟机配置于此类似,都丢在此目录下。nginx启动/重新加载时,自动会读取。
测试时,在本地的hosts文件,添加映射
# 192.168.2.28 为宿主机IP
192.168.2.28 s5.yong.com
使用浏览器即可访问。
一般使用非root用户操作nginx,使用iptables等防火墙工具进行端口映射,这里省略。
另外,要做到nginx不重新加载或重启,可能需要定制nginx路由部分了,比如淘宝采用了nginx + lua实现。
这里有一群淘宝牛人开源的nginx组件集 http://openresty.org/ ,可供参考。
多台宿主机路由
这个路由规则相当复杂,可以设置单独一台DHCP服务器,可以分配10.*.*.*私有IP。这样可以保证一个IP对应一个外网域名。
但,如cloud foudry 采用nginx + lua + ruby进行路由转发交换数据,更为复杂。
听说,Heroku则采用nginx + erlang进行路由处理。
有机会再说说这一部分吧。
结束语
好吧,我承认标题有些大,不过,标题党就是这样,先吸引过来再说。但不是初衷,起一个名字,用以概括全文,但最终发现,还是有些虚了,颇感无奈。
类似于资源分配,安全策略,流量计费等,提供SQL,NOSQL,队列服务等高级Topic,太广泛,省略之。
所有操作都是基于终端命令,若是外层可以使用JSP等脚本简单包装一下,那就成了PAAS Tomcat Servlet环境托管管理系统了。
用惯了Tomcat,理论上Jetty或者JAVA EE完整版容器也是可以的。
作者:nieyong