• 展开微博窗口
  • QQ:52619941
  • 微信:cnmemory
  • 展开分类目录
  • 还没有账号?

Memory

NAT网络下tcp_timestamp与tcp_tw_recycle引发丢包问题

场景

服务器A与服务器B在同一个NAT网络环境下,出口IP相同
服务器A -访问服务器C接口
服务器B -访问服务器C接口
此时AB其中一台服务器无法得到响应。

解决方式

通过查阅资料,是因为被调用服务端配置了tcp_tw_recycle,而调用方配置了tcp_timestamp造成了丢包的问题。

需要客户端关闭tcp_timestamp或者服务端关闭tcp_tw_recycle

## /etc/sysctrl.conf
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_timestamps = 0

mac下编译php扩展找不到php.h的问题

编译php扩展时执行make命令时出现下面错误

fatal error: 'php.h' file not found

建立软连接

sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include /usr/include

或者修改Makefile里的phpincludedir = /usr/include/php到你的php source目录下

编译完后结果发现版本对不上,索性将源码包里的…

利用ssh tunnel进行socks5代理

为了从本地浏览器能够直接访问公司内网的web,我们需要额外的vpn代理或者其他方式代理。经过查阅资料,找到一种比较快速的方案,即通过ssh隧道和socks5代理实现访问公司内网项目,前提是跳板机能通过外网访问,并且支持ssh方式登录。

开启支持socks5协议的ssh隧道

ssh -D 1337 -f -C -q -N user@remote -p 2222
  • -D 表示本地端口转发,当监听到此端口有连接时,此连接中的数据将通过安全隧道转发到server端,目前支持socks4和socks5协议
  • -f 请求ssh在工作在后台模式。该选项隐含了"-n"选项,所以标准输入将变为/dev/null。
  • -C 请求会话间的数据压缩传递。对于网络缓慢的主机,压缩对连接有所提升。但对网络流畅的主机来说,压缩只会更糟糕。
  • -q 静默模式。大多数警告信息将不输出。

ElementUI Selection Table 中获取被勾选的index

el-table中加入:row-class-name="tableRowClassName",利用tableRowClassName方法将rowIndex赋值给row对象

html

<el-table 
    ref="multipleTable"
    :data="data"
    :row-class-name="tableRowClassName"
    @selection-change="handleSelectionChange"
>

javascript

handleSelectionChange(rows) {
    //用一个变量来存放被选中的index
    this.selectionItemIndexes = 

启用swap来应对临时的内存不足问题

前段时间在一台小内存服务器上使用composer更新第三方类库时出现了内存不足的问题,以至于触发了OOM异常,使得composer进程被kill,无法完成更新。
通过free -h查看,测试服务器上并没有启用swap交换分区

当内存不足时,系统会将部分数据交换到swap空间上。类似win上的虚拟内存

OK,那就让我们启用swap。

  1. 创建交换分区文件
mkdir /data
touch /data/swapfile
  1. 分配交换分区容量
dd if=/dev/zero of=/data/swapfile bs=1M count=2048

/dev/zero是linux设备上一个特殊的文件,当你读它的时候,它会提供无限的空字符(NULL,

MySQL索引小记

在表关联查询时,如两个表的关联字段类型、编码不同,是无法利用索引的。

星期三