再学习,更上新台阶

 默认分类  再学习,更上新台阶已关闭评论
10月 112012
 

学习是一种信仰

学习是一种习惯

学习是一种乐趣

学习是一种能力

学习是一种态度

 

 

 Posted by at 上午 9:38
8月 172017
 

第一步:安装

 

 Posted by at 上午 11:16
8月 152017
 

我们见过比较专业一些的软件会包含多个rpm包,如:

phpor.1.0.0.el7.x86_64

phpor-docs.1.0.0.el7.x86_64

phpor-devel.1.0.0.el7.x86_64

phpor-debuginfo.1.0.0.el7.x86_64

那么,一个spec文件如何build出来多个rpm包呢?

首先,我们以devel为例,参考: https://stackoverflow.com/questions/2913130/building-both-devel-and-normal-version-of-a-rpm-package

可见,devel是以子包的形式出现的

示例:

http://kmymoney2.sourceforge.net/phb/rpm-example.html

rpmbuild 安装到BUILDROOT 下面的文件和目录都要打包的rpm包中,否则会报错(rpmbuild会认为你遗忘了),如果不想打包,就提前删掉

 Posted by at 下午 5:42
8月 152017
 

rpm打包之前会执行: /usr/lib/rpm/check-buildroot, 其逻辑为,检查将要打包的文件中是否包含buildroot,因为这只是build时候的临时目录,如果出现在打包文件中,就可能会出现问题,起检查方法简单粗暴:

如果包含,就会报类似如下的错误信息,然后退出

关于check-buildroot脚本:

其一:

通过mktemp来创建临时文件,根本不需要自己制造随机文件名

其二:

保证在脚本退出后删除临时文件

其三:

注意,这里 ” || : ” 的用法,保证test为假时脚本退出码为零

 Posted by at 下午 5:06
8月 152017
 

 

 

 Posted by at 下午 2:52
8月 142017
 

如下图来看, 虽然172.16.22.29存在一条更精确的路由,但是该精确路由的metric比默认路由的metric更大一些,最终还是选择了默认路由,看来metric的影响力还是很大的

添加路由是指定metric参数吧,如下:

明明指定的metric为9,结果却是19(默认网关的metric+9)

 

可以通过网络设置来修改接口的跃点数(metric),最小值为10(设置为更小的值也没有用)

相关参考: http://blog.csdn.net/liqfyiyi/article/details/8788206

 Posted by at 上午 11:41
8月 142017
 

4294967295 is just (unsigned long) -1. -1 means that loginuid was not set. This is normal behavior for processes that were not spawned by any login process (e.g. for daemons). loginuid is -1 by default; pam_loginuid module changes it to your user id whenever you login (in a tty/in DM/via ssh), and this value is preserved by child processes.

可惜的是proc.txt并未对此文件有过说明

用途:

追踪进程发起者

 Posted by at 上午 10:20
8月 092017
 

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-command-line-runner

 

http://docs.spring.io/spring-session/docs/current/reference/html5/

 

http://docs.spring.io/spring/docs/4.2.9.RELEASE/spring-framework-reference/htmlsingle/

 

https://spring.io/docs/reference

http://www.jianshu.com/p/3942cce05f71

 

http://www.mkyong.com/tutorials/spring-boot-tutorials/

 Posted by at 上午 9:15
8月 082017
 
  1. redis.conf 中默认配置的dir为 “./” ,即为当前目录,一些人会想当然认为是redis.conf 所在目录,而appendonly.aof 默认写在该dir下; 其实,”./” 为进程的cwd
  2. redis的config set dir命令可以修改redis进程的cwd
  3. redis的appendonly.aof 的位置会参考在config appendonly yes 被执行时的dir的值,在config appendonly yes后修改dir的值不会立即生效

遇到过的问题:

  1. 程序一直在tail -f 的方式同步appendonly.aof ,在下午18:16的时候,appendonly.aof 变到了/tmp/appendonly.aof (原本下意识地认为/tmp/appendonly.aof 只是18:16之后的数据,行文至此,才意识到,/tmp/appendonly.aof中不是18:16后的数据,而是全部数据);目前确认进程没有被重启过,目前能够想到的能够完成这个切换的操作为:

    但是似乎没有谁会去执行这么复杂的命令
 Posted by at 下午 6:25
8月 052017
 

缘起:

dubbo-monitor容器swap使用率超过 20% ,而且在不断上升,为什么呢?

 

下面是容器dubbo-monitor在drop-caches前后的对比:

 

drop-cache后,容器的swap使用率没有变化

 

结论:

  1. docker stats 显示的内存使用是包含cache的
  2. 该容器的部分cache信息会被swap出内存
    1. cache和swap之间存在一些不默契;cache认为内存够多,还可以cache更多信息;swap机制为,经内存充裕,只要是不常被访问的内存数据,尽量swap出来; 于是乎,就形成了一个恶性循环,导致swap占用越来越大
    2. 解决办法: 定期drop一下cache
  3. 系统不会傻到把cache内容换出到swap中的,swap确实为进程使用的(虚拟)内存的一部分
  4. 一个允许最大使用2g内存的java进程,swap出来500m或1g不足为奇,如果给他的swap大小为2g的话,占用50%的swap都有可能
 Posted by at 下午 2:47