TCmalloc 发表于 2016-10-5 05:36:06

[反馈] TCmalloc 导致大文件下载中断

1.3版本的LNMP中,如果选择使用TCmalloc,会导致web下载大文件时半途中断,通常是200M以上开始中断。不论你是wordpress还是owncloud,或者不搭建任何程序时直接从默认根路径进行web下载,都是一样。切换到Jemalloc或者不安装就正常。这个问题蛮严重的,我是刚建站就发现了,所以比较容易找到问题。如果是建站后很久才发现,估计就百思不得其解了

licess 发表于 2016-10-5 13:31:12

wordpress、owncloud上传的文件下载是会中断?
php什么版本?什么系统环境?
目录下直接上传的文件下载会中断吗?

TCmalloc 发表于 2016-10-6 01:58:27

不通过WP或者owncloud,直接文件放到根目录,然后下载,也是中断,因此和网站程序应该没关系。
PHP试了3个不同版本,都是这个问题,所以不应该是PHP版本问题。
切换为Jemalloc或者不安装内存管理,就不会中断。
这个中断的时候,并不提示文件下载失败,而是直接显示下载完成,但是实际没有下载完,下载到的文件大小就是中断时完成的那部分大小。一般小文件都不会中断,大文件下载到200M左右就中断。我一开始以为阿里云机器1G内存太小,但是换到2G内存的Vultr 也是中断。UBUNTU16.04和DEBIAN8.6测试的。CENTOS不知道,没试过。也没有尝试非一键安装包的TCmalloc会不会导致这个问题

TCmalloc 发表于 2016-10-6 02:00:02

哦 ,对了,相同系统环境下,用tasksel安装的LAMP,也不会有这个问题,这个一键包似乎不包含TCmalloc。所以应该就是TCmalloc导致的

licess 发表于 2016-10-6 19:56:31

我这边测试centos下没出过问题,debian下测试过多次有过一次中断,其他几次测试都是正常

你那边下载是用什么工具下载的?有具体错误信息吗
方便pm下载地址看一下吗

TCmalloc 发表于 2016-10-6 21:44:36

地址没有了,因为已经部署为Jemalloc了,而且是16G大内存,也查不出内存管理的问题了。
没有用下载工具。就是chrome的web下载.

这个问题发现后我是逐个组件排查的,系统 / PHP / MYSQL / Apache 都换了版本,最后才查到内存管理。(我也是过节闲得蛋疼:L ) 切换到Jemalloc后就正常,然后再切到TCmalloc又是这样断。所以才跑来发帖。

你只断了一次,可能是网速比较慢?我测试的时候都是4MB/s以上速度,慢速下不知道断不断。但是哪怕断1次,也可以说TCmalloc在小内存环境下的稳定性不如Jemalloc。实际使用中,这种大文件中断,会让下载的人抓狂吧;P
页: [1]
查看完整版本: [反馈] TCmalloc 导致大文件下载中断