PHP并行cURL中socks代理问题

这是一篇被坑记录。关键字: CURLOPT_PROXY, CURLPROXY_SOCKS5, curl, curl_multi_init, curl_multi_add_handle, curl_multi_exec, curl_getinfo, socks5.

我的友链状态是通过cron任务定时调用php脚本来检查的,并且这个脚本通过curl走socks5代理出去请求网站和对应的logo。

本来这个脚本是遍历json中的友链一个个去请求然后设置状态的,逻辑上没有任何问题,也可以顺利完成检测,问题是这样的检测时间太长了,如果我手动请求检测脚本的地址那么一定会执行超时,而且我会看不见结果。于是我想把这个脚本里的请求改成并行的,一次性请求所有网站。然后问题来了,按照php手册上 curl_multi系列的函数改好了脚本之后无论怎么运行怎么修改一定会执行失败。无论怎么修改,curl multi组一定会超时,所有请求都会失败,浪费了我六七个小时研究这个问题。

 

直到我偶然间看到了这个页面上的这段话

10.1 SOCKS proxy connections are done blocking

Both SOCKS5 and SOCKS4 proxy connections are done blocking, which is very bad when used with the multi interface.

我记得曾经我就尝试过把这个脚本改成并行请求,但也是因为无论如何都会请求失败后来直接放弃了。这个影响那么大的bug几年过去了依然没有修好,不愧是世界上最好的语言。

也就是说现在php的并行cURL不能设置socsk代理,否则一定会阻塞住然后请求失败,要解决这个问题只能改用http代理。

给Macbook Pro换硅脂

现在这Macbook Pro只要一打开chrome看bili的弹幕就CPUGPU双双100度,虽然它本来散热差劲但是以前也没差成这样。猜测硅脂固化了,于是打算换一下硅脂,顺便接这个机会把这电脑拆开来看看。

 

首先卸掉背上10颗螺丝,然后不知道为啥好像卡住了,直接撬开。这是Coding.net给的奖品,所以我在背面贴了个猴子贴纸,但是颜色已经磨没了。

 

继续阅读给Macbook Pro换硅脂

:visited下样式无效的问题

今天想写个油猴脚本帮我把所有网站上已经点过的链接加个阴影(text-shadow),然后发现怎么写都没用,想了想大概是什么安全原因禁用了,然后查了下。

发现果然是,为了防止网站用:visited的样式来尝试获取用户点过的链接,所以只允许:visited使用部分样式,详细规则见此:MDN Privacy and the :visited selector

基本就是只能定义各种颜色,而且如果非visited状态是透明的话,定义颜色也不会显示,必须给默认状态也定义一个颜色。

换个NAS:NUC7i5BNK

原本我是拿树莓派3b+做NAS用的,这东西有4个usb2口,我接了个曾经当系统盘用的128G SSD来当NAS的存储,而且还是usb转sata。

这里面有几个问题,一个是USB2的带宽就摆在那,就从理论来说也不会超过480Mbps,而放在树莓派上这个usb能用的带宽理论值更小,因为它网卡也在USB总线上,所以如果一边下载东西一边和另一台电脑传输文件的话,带宽还得分一分。如果你要说我咋不叠个5Gwifi来凑带宽的话,我是试过的,效果并没多理想。另外SSD接在usb2上也是白瞎了ssd的读写速度优势。

本来听说下一代树莓派有usb3了,不过想了想我要那么多树莓派干啥,干脆搞个迷你pc得了。

如果你还是要问我为啥NAS不用大容量机械盘非要用死贵的SSD呢?一是为了确保同时读写和处理零碎文件时的速度不会有太大影响,还有就是一般挂着bt和ipfs的话机械盘是没机会进休眠状态的,就很费电,也磨损得更快。其实目前最重要的一个原因是摆放位置的不稳定性,因为在宿舍放在桌子上,难免有的行为会让桌子发生比较剧烈的震动,很容易使机械盘故障或者报废,只有放SSD才能避免这个风险,同时也方便挪动位置。一般下好的东西我就取回电脑了,作为一个喜欢整理文件的人我也不会把东西一直往NAS里堆,不用的都会取走存档或删掉,所以不需要多大的空间。

继续阅读换个NAS:NUC7i5BNK

【佳佳拆解】希捷 9sd2a4-500 移动硬盘

这个移动硬盘用好多年了,不过最近感觉usb2.0的速度对硬盘来说是个瓶颈,和其它usb3的盘比起来用着很难受,所以打算买个usb3以上的硬盘盒来装它。不过还是先要拆开看看里面是不是SATA盘,如果是一体的电路板的话就不好搞了。

另外这个盘外壳没有螺丝,只能用撬片从后面插进去一点点把塑料卡扣撬开,也就是说拆开基本就别想装回去了。

继续阅读【佳佳拆解】希捷 9sd2a4-500 移动硬盘

显卡GPU铝箔导热测试

硅脂本身的作用为填满核心和散热器之间的空隙,防止存在空气影响热传递,我猜测这种情况下用一块够薄够软的金属可能也能达到同样的效果。

而且理论上铝的导热系数要比任何硅脂都高得多,所以我打算来做一次实验,看看如果把铝箔填在GPU和散热器中间会产生什么效果。

 

由于这样的实验具有一定风险,所以本次实验请上已经在盒子里沉睡多年的旧卡迪兰HD 7850。

铝箔用的是这种可贴铝箔

 

继续阅读显卡GPU铝箔导热测试

台电幻影SSD NP900C

把电脑上用了好多年的影驰Thunder GT128换下来给树莓派挂下载和samba用了,重新买了个台电NP900C(其实已经用了俩星期了)。

这个盘960G版是TLC的,不说它容量大点寿命就能长多少,但用总是够用的。

由于我主板上没有现成的nvme接口,所以还要一个转接板接到pcie上。另外主板还是B85的二手老板子,所以还得自己往主板uefi里塞个nvme模块。

然后这东西插在pcie2上只支持x1模式,没法跑在x4上(后来不知道怎么又有x4了),于是只能把pcie3上的1080ti让出来给它插。在pcie2x1上测速是400+MB/s,在pcie3x4上是读取1.6GB/s,写入1.5GB/s。

但是显卡插在pcie2x8上的话,理论上来讲虽然不太会影响卡本身的性能,但是数据延迟会高一些,在出现需要大带宽交换显存数据的时候就会体现出来,比如带视频的osu map,以前开着视频玩也是很流畅的,现在渲染一帧到7ms级别,不过这游戏的视频实现也是有问题。

这个SSD拿起来分量很重,因为它自带了散热甲。至于它到底是什么颗粒,压在散热甲下面看不到,而且拿不下来。其实这个“寨厂”历史也挺久的了,应该积累了一定的资本,现在也有点转型高端的意思,应该不会在这种比较有代表性的产品上用烂片来拉低口碑。

另外由于是tlc,所以这个960G的nvme SSD在淘宝上买也就789元,有渠道应该可以拿到更低价格的。总体来说,不算太贵。

下面是图

继续阅读台电幻影SSD NP900C