• 每天进步一点点!

文章分类

推荐网站

常用手册

linux服务器查看公网IP信息的方法【转载】

  • 使用命令
  1. 查看本机的出口公网IP信息:
     

    curl ifconfig.me

     

  2. 或者:
     

    curl cip.cc

     

类别:Linux | 浏览(38) | 评论(0) | 阅读全文>>

laravel释放数据库连接所占用的内存【原创】

今天遇到一个问题,在适用lararl跑脚本对老师的作息表进行拆分(一个6000多行的表拆分后带个300万行)时,发现随着脚本的运行,内存的使用量在不断增加,cpu的占用也随之在不断的增加。最后因为内存不够用而中断退出。

一开始的想可能是因为内存不够用,所以在脚本前面加入ini_set('memory_limit', '512M'); 发现内存还是不够用,又增加到1024M,2048M...,最后也没有解决问题,内存占用到50%多的时候依然会挂掉,我们的开发机是2核4G的阿里云ECS,这样不断加内存的方法显然是不行的,因为操作系统的剩余内存是有限的。

后来想,可能是数组在插入到数据库后没有unset掉,造成内存溢出。所以尝试,每次插入数组后unset掉,依然没有解决内存占用过高的问题。

最后想到,有可能是因为数据库连接的问题,在脚本执行的过程中,PDO连接一直被占用,没有被释放。随着数据量的不断增加,PDO连接需要处理的数据量一直在增加。所需要的内存也会一直增加。

按照这个思路,可以在处理完一部分数据时(比如拆分完200行时),可以断开一下PDO连接,然后重连一次,这样可以释放一次内存。

laravel里面有关数据库连接的方法在vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php中,disconnect()可以断开PDO连接,reconnect()断开连接后重连,但是这两个方法都是只断开不会释放连接,当再次连接时,直接从 $this->connections数组中取出来。purge()断开连接后,会将他从$this->connections中unset掉,释放内存。看来就是这个方法了。

类别:PHP | 浏览(245) | 评论(1) | 阅读全文>>

laravel打印Sql【原创】

\DB::connection()->enableQueryLog();
$result = \DB::select('select * from activity');
$log = \DB::getQueryLog();
dd($log);
\error_log('$log = ' . print_r($log, true) . "\n", 3, "/tmp/error.log");

 

类别:PHP | 浏览(90) | 评论(0) | 阅读全文>>

github不支持tlsv1.1后, 出现SSL connect error【转载】

今天遇到github的仓库克隆不下来,报错如下:

 

fatal: unable to access 'https://github.com/fisher-yu/golang.git/': SSL connect error

   

过完年回来, github不安分了, 发现博文说不支持TLSv1/TLSv1.1: Weak cryptographic standards removed, 没看到这篇博文之前, 还以为是代理问题, 设置过, 还是不行, 还更新到最新的git, 还是不行, 就查了一下TLS协议, 终于通过git的文档中获得提示: git配置文档.

    首先, 更新git, 我也没查过要更新到什么版本, 反正之前用1.8有问题, 接下来的操作都不起效, 换了2.16以后才可以, 有条件就更到最新呗. 至于怎么更新, 自己查资料, 我就不喜欢惯着你们. PS:OpenSSL和libcurl可能也要升级

    然后就开始设置了, 就一行命令

 

git config --global http.sslversion tlsv1

   

理论上来说, 应该是不支持TLSv1的, 但设置成tlsv1才行, 其他的tlsv1.2什么的都不行, 我也不知道啊, 求指教, 求科普

    因为是刚找到的方法, 也许其他大神还没有发现这问题, 如果有更好的办法, 请不吝指教.

类别:Linux | 浏览(132) | 评论(0) | 阅读全文>>

创建自己的vagrant box【原创】

这里用的工具是vagrant 1.8.7,VirtualBox 5.0.40, CentOS 7.4 (Minimal)

  • 安装CentOS,安装比较简单,但是需要注意几个地方

1.root的密码需要设置为vagrant

2.创建用户vagrant时将vagrant设置成为管理员,这样就可以将vagrant加入到wheel组中了,vagrant的密码也是vagrant

  • 设置开机启动网络
vi /etc/sysconfig/network-scripts/ifcfg-e[Tab]

将ONBOOT=no改为ONBOOT=yes

  • 关防火墙firewall
systemctl stop firewalld.service #停止firewall
firewall-cmd --state #查看默认防火墙状态(关闭后显示not running,开启后显示running)
systemctl disable firewalld.service #禁止firewall开机启动
  • 关闭虚拟机,为centos再添加一块儿使用桥接方式的网卡,这是因为virtualbox的NAT方式下,win7不能通过ssh连接到虚拟机的centos。

 

  • 解决ifconfig无效的问题,安装net-tools
yum -y install net-tools

安装完后可以用ifconfig查看桥接网卡的ip地址,选一个自己喜欢的ssh客户端软件(如putty)连接到虚拟机。

类别:文章分类 | 浏览(379) | 评论(0) | 阅读全文>>