发表于: 2018-03-23 00:54:38
1 715
今天完成的事情:
熟悉云服务器的命令行。给云主机挂载了数据盘。写了一个连接池并测试。表结构方面看了师兄的日志和其他人的日志,我再想想。
1.看了下ubuntu的命令。大概的ls,cd,mkdir什么的有的试了下有的没试。命令很多,功能强大。
2.按照腾讯的文档给云主机挂载数据盘。
照着文档做,就成功了,最后结果如下图:
30G的数据盘vdb1挂载到了mydata目录下。
不过文档没解释怎么做的。后来查了下百度还有其他人的一些帖子。大概理解了挂载是什么意思。
我的理解:Ubuntu系统中,把存储器都看成文件,如果要读写存储器,需要把存储器与一个目录连接起来,连接的过程叫做挂载。那个用来挂载的目录叫做挂载点。挂载点一般用一个空目录,如果不是空的,挂载后过去的内容也不可访问。断开存储器和目录连接的过程叫做卸载。我的困惑点是在没有存储器的时候,目录结构是放在哪里的?
那么挂载具体流程是
拿到一个新数据盘。然后用fdisk工具查看,格式化,分区。
然后用mkdir命令建立个新的目录,刚建好肯定是空的。
然后用mount命令挂载
然后设置自动挂载,方便今后云主机重启后直接就可以使用数据盘。
linux系统使用起来似乎有些新的概念,现在感觉还比较晕。
3.学习了连接池。概念很好理解,集中创建连接,用的时候借,用完了归还。自己写了一个连接池,连接云主机并插入数据,测试用连接池的方法和传统方法比较消耗的时间。
差距巨大。连接池的方法速度快太多了。消耗时间是百倍来计。通过打印信息发现:
建立连接非常花时间,建立一个连接需要3-5秒,想来关闭连接池也会消耗一些时间。
程序代码放到GitHub。测试结果如下:
连接池大小为10
开始建立连接0
连接0建立完毕
开始建立连接1
连接1建立完毕
开始建立连接2
连接2建立完毕
开始建立连接3
连接3建立完毕
开始建立连接4
连接4建立完毕
开始建立连接5
连接5建立完毕
开始建立连接6
连接6建立完毕
开始建立连接7
连接7建立完毕
开始建立连接8
连接8建立完毕
开始建立连接9
连接9建立完毕
连接池方式测试开始
连接池方式开100个线程插入100条数据耗时为276毫秒
传统方式测试开始
传统方式开100个线程插入100条数据耗时为73390毫秒
代码中getConnection方法和returnConnection方法都用了synchronized关键字修饰,也就是用this做锁。测试正常,记得当初写线程池这样就不行,要用别的对象做锁,不明白为什么。
4.看了师兄日志和同班的另一个同学的高品质日志。大概思考了下表结构。暂时还没自己的明确想法。也许就模仿师兄的表结构做吧。
明天计划的事情:设计表结构,学习linux基本操作。
遇到的问题:不太明白linux如何组织文件系统。猜测挂载数据盘的信息是写在系统盘?那么系统盘如何挂载的?还没查到简单的讲解这一点的文档。 写连接池的同步方法用this做锁正常,而写线程池的时候不可以用this做锁,这个问题将来再研究吧。听人说锁有很多种实现,可能将来可以深入学一下。
收获:学会了一些linux系统操作,学会了写连接池。
评论