如题,发现Workspace的.metadata目录暴涨,备份的时候略吃力。
找了一下,发现是maven的插件导致的,清理一下就可以了:.metadata/.plugins/org.maven.ide.eclipse/nexus

前几天让强子搭建VPN穿墙,很快搞定了,简单记录备忘之,以下是强子的原文转贴:

本次实验使用的centos 6.3 64bit。

一、安装之前检查系统兼容性。检查内核MPPE补丁,确定内核是否支持mppe:
[code]
modprobe ppp-compress-18 && echo ok
[/code]
如果显示ok,表示内核已经具备了mppe支持。

二、安装VPN需要安装三个组件ppp、pptp、pptpd。本机yum命令有问题,只能通过wget方式进行。
可以到http://pkgs.org/search/pptpd?type=name这个网站上进行查找相应的安装包:
1.下载:
[code]
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/ppp-2.4.5-5.el6.x86_64.rpm
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/pptp-1.7.2-8.1.el6.x86_64.rpm
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/pptpd-1.4.0-3.el6.x86_64.rpm
[/code]
2.安装:
[code]
rpm -ivh ppp-2.4.5-5.el6.x86_64.rpm
rpm -ivh pptp-1.7.2-8.1.el6.x86_64.rpm
rpm -ivh pptpd-1.4.0-3.el6.x86_64.rpm
[/code]

三、以上把需要的三个组件都已经安装完毕,我们接下来进行配置。
1.pptpd的配置文件在/etc/pptpd.conf。
(1)在这个文件中需要把logwtmp注释掉:
[code]
#logwtmp
[/code]
(2)然后配置本机的内网IP地址,以及客户端拨号进来后所要分配的IP地址:
[code]
localip 192.168.0.1
remoteip 192.168.0.201-250
[/code]
2.启用ms-dns。路径在/etc/ppp/options.pptpd。
该DNS可以填写公共的DNS服务器,也可以是你自己配置的。一般使用谷歌公网DNS:
[code]
ms-dns 8.8.8.8
[/code]
3.下面开始配置VPN访问的用户名、密码以及分配的IP地址。路径在/etc/ppp/chap-secrets。
[code]
user pptpd pwd *
[/code]
4.开启防火墙的IP转发功能,路径在/etc/sysctl.conf。
(1)把net.ipv4.ip_forward赋值为1:
[code]
net.ipv4.ip_forward = 1
[/code]
(2)保存并退出,使用sysctl –p命令使刚刚的配置生效。
[code]
sysctl -p
[/code]
5.在防火墙中添加规则允许NAT转换。命令如下:
[code]
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
[/code]
6.现在开始启动pptpd服务。
[code]
service iptables start
service pptpd start
[/code]
7.将服务配置为开机自动启动
[code]
chkconfig pptpd on
chkconfig iptables on
[/code]

四、客户端连接。
在VPN服务器上查看多了一张网卡,而且也可以看到VPN客户端获取到的IP地址:
[code]
ifconfig
[/code]

五、pptpd服务相关命令。
[code]
#重启:
service pptpd restart
#关闭:
service pptpd stop
#开启:
service pptpd start
[/code]

转自贝贝的blog,略有补充,贝贝的原贴地址:http://www.thinkingquest.net/articles/449.html

有两个补充之处:
1、GATEWAY配置
Centos的GATEWAY配置不仅在ifcfg-eth0中,也可能在/etc/sysconfig/network中。ifcfg-eth0中对单个网卡有效,network配置的是全局,作用范围不同。
原理都是改GATEWAY。

2、转发配置:
修改/proc/sys/net/ipv4/ip_forward是临时性的,是内核的当前运行状态,永久的改动位于:
/etc/sysctl.conf的
[code]
net.ipv4.ip_forward = 1
[/code]
改完后执行以下命令生效
[code]
#sysctl -p
[/code]
生效后,/proc/sys/net/ipv4/ip_forward会自动变为/etc/sysctl.conf中net.ipv4.ip_forward的值。

下面附上贝贝的原文(我这访问只能绑host访问贝贝的blog,原文转过来更方便)。
--------我是分隔线,以下是引用的全文----------

几个vps(虚拟主机),只有一个拥有公网ip地址,所有的vps都拥有内网ip地址。其它的vps需要通过拥有公网ip的这个vps进行公网访问,以方便yum安装软件等需求。

在没有公网ip的vps上需要进行的设置:

/etc/sysconfig/network-scripts/ifcfg-eth0 文件中: GATEWAY=10.x.x.x

service network restart

到此完成。

接下来是拥有公网ip的那台vps上进行设置:

echo "1" > /proc/sys/net/ipv4/ip_forward

注意,这条命令是临时开启系统的转发功能,系统重启后会恢复为默认设置。 可以通过在/etc/rc.d/rc.local中加入上述命令,使之在系统启动时被执行。

打开iptables的nat功能:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

到此设置完成。

其它vps应该可以访问公网了。

缘起:线上发现一条慢查询日志,耗时32秒,对用户来说此次访问直接失败。

原因:用户长期未上线,拉群离线消息时扫描了几千万行数据。

现状:主键为消息唯一编号msgId,用户拉消息时,使用msgId > xxxx来拉,正常用户间隔较近,基本上耗时为毫秒。间隔越大,时间越长。

修改:当前msgId差值小于200w时,用主键索引。超出时,强制使用群编号groupId索引。msgId差值200w时用主键索引耗时为5秒左右。差值4000w时强制使用groupId索引,耗时600毫秒左右。

结论:用默认方案hold绝大多数的case,当特例出现时,强制使用另一个索引,确保用户可用。

tcpdump是抓包工具,strings是输出可见字符工具,组合应用会有比较漂亮的用法。

1、用来监控当前服务器上对MySQL的访问。
[code]
tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings
[/code]

2、用户监控当前服务器上对Redis的访问。
[code]
tcpdump -i eth0 -s 0 -l -w - dst port 6379 | strings
[/code]

只要是有明文传输的地方,都可以这么用。

查看当前MySQL的查访缓存方面的参数:
[code]
show variables like '%query_cache%';
[/code]
得到结果如下,说明查询缓存是开启的:
[code]
mysql> show variables like '%query_cache%';
+------------------------------+-----------+
| Variable_name | Value |
+------------------------------+-----------+
| have_query_cache | YES |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 134217728 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+-----------+
6 rows in set (0.00 sec)
[/code]

再查看查询缓存相关的统计状态
[code]
mysql> show status like '%Qcache%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| Qcache_free_blocks | 11 |
| Qcache_free_memory | 133522200 |
| Qcache_hits | 17197 |
| Qcache_inserts | 3954 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 34251 |
| Qcache_queries_in_cache | 271 |
| Qcache_total_blocks | 575 |
+-------------------------+-----------+
8 rows in set (0.00 sec)
[/code]
一般认为Qcache_hits至少是Qcache_inserts的三倍才可能有效果,最好能达到10倍。这个是四倍多,不太好确定查询缓存是否有效果。

从业务形态上,相同查询出现的几率比较低,更多的是写入和更新操作。还是决定禁用之。
[code]
SET GLOBAL query_cache_size = 0;
[/code]
这个最彻底,可以实时生效。因为query_cache_type只对新开的连接有效,已有连接无效。

后续效果待观察。