如何在配置只有1G内存的服务器上部署Tomcat和Mysql
最近用Java写了个博客,希望部署在自己的服务器上面。这个服务器是在腾讯云上面买的,配置很低,只有一核1G的内存。运行了Mysql之后就已经占用了50%~60%的内存,这个我是通过top命令来查看的。而后就是运行Tomcat,tomcat里面放了java项目之后,运行起来java进程占用内存高达30%。而后我就收到了一大堆的告警邮件,大意就是内存使用超过80%。
u1.jpg
我开始以为是要改项目,拼命想着裁剪项目功能,减少表的数量,思考了很久,精简了少量不必要的表,不必要的代码。而后发现,这并没有任何效果。总共有25个表,主要是几个系统表和少量代码生成的表。真正用于保存文章构造网页菜单的就只有三个表。而存数据比较多的表就只有浏览记录表,每一个客户请求界面时都会记录一次操作,这个表数据比较多,但是初始阶段根本就没有数据。
后来我百度了一下,查了少量资料,发现原来是可以通过修改mysql的配置文件my.cnf来达到让降低mysql的运行内存。主要是修改了如下三个参数,最终将mysql的运行内存降到了13%,相当于只有100多M的运行内存。
u2.jpg
而修改的这三哥参数是:
u3.jpg
innodb_buffer_poor_size = 64Mperformance_schema_max_table_instances=100table_definition_cache=100table_open_cache=64
通常情况下,作为开发人员,我们都不会去关心这些参数代表什么,也不会去修改他们,但是当自己也要去部署项目的时候发现,不得不修改他们来达到自己的目的。这个时候就要有少量理解才好下手操作了。innodb_buffer_poor_size用于缓存索引和数据的内存大小,这个当然是越大越好,毕竟数据在内存中的读取速度更快,但是考虑到自己开发的博客的需求,完全可以将它设置得非常小。参数performance_schema_max_table_instances用于检测表对象最大数目,对于小站而言这个缓存大小完全不必要太大。table_definition_cache用于设置表定义得缓存区大小。table_open_cache用于设置打开表的缓存区大小。
将这几个参数调小之后重启mysql,完全不影响小站点的运行,访问速度也没有什么影响。这样我的博客就在1G内存的服务器上面运行起来了。是不是很简单呢?
u4.jpg
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 如何在配置只有1G内存的服务器上部署Tomcat和Mysql