首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
华为云
V2EX  ›  程序员

今天有空,请教各位 V 友,怎么优化 LAMP 的网站速度?

  •  
  •   jingyulong · 5 天前 · 3440 次点击

    我用的

    • Vultr 的 VPS,512M 内存的
    • Cloudflare 的 CDN
    • HTTPS 用的 Let's Encrypt

    站点打开速度最快是 1s 多,Google 了很多,但是没有头绪。可以给一个思路吗?本人也是才接触这些不久。是因为内存小引起的吗?

    点击:博客

    帮忙看看,感激不尽。博客内容轻喷。。。

    85 回复  |  直到 2018-11-13 15:31:27 +08:00
        1
    likuku   5 天前   ♥ 1
    Chrome 访问你的博客,接着 Chrome 的菜单 -》视图 -》开发者 -》开发者工具 -》 Network

    刷新一次页面,根据页面加载各种内容的耗时对症下药。
        2
    likuku   5 天前   ♥ 1
    补刀:这么曲线救国推广自己博客就太那啥了,要推广就大大方方广而告之,不丢人好吗。
        3
    hefish   5 天前
    打开确实不快,但 wordpress 本来就不算快。可以看一下数据库的延时还是 php 的。
        4
    dowson8684   5 天前
    时间全花在背景图的加载了。
        5
    lostberryzz   5 天前
    Vultr 是哪个 Location 的?如果套 CF 优先 LA,次选 NJ
        6
    jingyulong   5 天前
    @likuku 加载的内容除外,就一个几十 k 的页面,响应很慢。我做网站开发也有几年了,这些基本的优化我知道的。我的重点是为什么主页面的延时会比较高,不知道是网络的问题,还是 VPS 硬件的问题?
        7
    jingyulong   5 天前
    @likuku PS:其实我这个博客又没有什么内容,即使推广了也没人看的。目前我只想锻炼自己写文章的能力,给自己看的。内容才是王道,等哪天自己文章写好了,也不用推广吧?
        8
    lsido   5 天前 via Android
    这还用问吗?你换本地看看咯
        9
    lsido   5 天前 via Android
    快的你怀疑人生
        10
    opengps   5 天前
    1 楼方法足够你排查大部分问题
        11
    liuxu   5 天前
    主资源 TTFB 2.6s 。。。你慢在服务器延迟上,服务器切成搬瓦工 gia,CN2 香港,软银日本,台湾都行,保证快了
        12
    jingyulong   5 天前
    @hefish 可以用什么工具或者技术测数据库的延时吗?我 ping 我的 ip 倒是蛮快的。我看书上说,可以给 PHP 加缓存,有什么好的建议嘛^_^
        13
    jingyulong   5 天前
    @dowson8684 背景图大概 100 多 k,目前这不是主要原因,我想找找主页面为什么延迟那么高的原因
        14
    jingyulong   5 天前
    @lsido 主页面不大,本地肯定很快
        15
    jingyulong   5 天前
    @opengps 服务器的延迟为什么那么高?加载资源的时间都能看的到的
        16
    vishva   5 天前
    推荐 <<http/2 基础教程>>
        17
    opengps   5 天前
    静态资源似乎占用时间做多,套一层 cdn 吧,CF 还不错
        18
    jingyulong   5 天前
    @liuxu 我的 VPS 是北美迈阿密的节点,我用我的 AWS 访问也很慢。。。。。Vultr 充钱进去了,本来搭梯子的,后面想着放个网站在上面,等钱用完了就换一个稳定点的,我看好多人用 Digital Ocean,等到时候试试。。。搬瓦工的好用吗?
        19
    niubee1   5 天前
    缓存, 缓存, 还是缓存.
        20
    jingyulong   5 天前
    @vishva 好的,先谢啦,我这就去看看
        21
    liuxu   5 天前
    @jingyulong

    想好好开站,最低标准也得是搬瓦工 gia 的线路,我建议你把博客源站迁移到国内,再套个腾讯阿里的 CDN

    想看速度可以看我个人资料,我的博客就是这么做的,楼上说的资源大小,http2 都不是重点,重点还是主资源 TTFB 太大
        22
    likuku   5 天前   ♥ 2
    @jingyulong 远程看不出,就换服务器上本地测,排除远程网络传输因素,time curl 都可以测,

    wordpress 可以在底部显示页面执行时间么(类似 V2EX 页面底部有执行时长显示的; wp 用的极少,不清楚)?
    执行时间能查到的话,假若 php 执行很慢,你得确认你 php 版本?尽可能上 php7,另外 php 的 APC 缓存加速开了么?

    php7 和 apc 缓存 是否开,都直接影响页面执行性能若干倍。

    页面和 php 能作的都作了,还是慢,那就得查 db 了。

    MySQL 慢查询日志记录开了没?慢查询多不多? mysql 版本?数据表存储引擎类型? InnoDB 么? Innodb mem pool size 够不够大?

    phpmyadmin 查查 db 的最近执行性能统计信息。

    进系统再查 内存是不是不够,swap 是否频繁读写?

    vultr 后台再查查 测试期间 /慢的时候,系统性能 /网络是不是被吃满了?排除资源不够的问题。

    以上,都是最基本的常规排查方式 /流程,算常识了。

    [我做网站开发也有几年了,这些基本的优化我知道的] 好了啦,我们知道你很资深了~
        23
    likuku   5 天前   ♥ 1
    年初也用 这家 512M vps 以 LNMP 跑过 wp,并没有觉得慢过。

    [HTTPS 用的 Let's Encrypt],可能是个影响因素,海外的站点,有时加了 https 就根本没法打开,只开 http 反而蛮正常,建议试试吧。
        24
    luminous   5 天前 via Android   ♥ 1
    你都用上 Cloudflare 那能快吗
        25
    jingyulong   5 天前
    @opengps 用什么 cdn 比较好呢
        26
    jingyulong   5 天前
    @liuxu 不过迁到国内的话,还要备案,太麻烦了。还是想用国外的服务器,我看有一些博客优化的很好了。还是你理解我想要问的问题了🤝一会去膜拜下你的站点☺️
        27
    jingyulong   5 天前
    @likuku 谢谢大神的指点,非常全面了,对我很有帮助,谢谢啦。我一直做.net 开发,除了通用的性能优化,LAMP 的的的确知之甚少,请见谅,还需要多多学习。
        28
    jingyulong   5 天前
    @likuku https 有可能是这个问题,我再确认一下
        29
    jingyulong   5 天前
    @niubee1 谢谢,我找下相关资料学习下
        30
    jingyulong   5 天前
    @luminous 没用 Cloudflare 之前更慢,我再排查下,如果有什么进展告诉你们
        31
    SukkaW   5 天前   ♥ 1
    简单看了一下,主要问题就是:
    - 页面 TTFB 过高
    - 没有做动静分离
    - 静态文件未对国内优化
        32
    liuxu   5 天前
    @jingyulong

    我的博客被刷 CDN 流量了,现在切到台湾了,你可以看看速度,不需要备案
        33
    jingyulong   5 天前
    @SukkaW 明白啦,谢谢你的建议
        34
    jingyulong   5 天前
    @liuxu 你站点的速度好快
        35
    jingyulong   5 天前
    @lostberryzz 是 Miami 的,改天试试 LA
        36
    mytsing520   5 天前
    内存扩到 2G,使 Nginx 能够尽情释放,处理上能快很多
        37
    lostberryzz   5 天前
    我 Vultr Location 是 NJ 的,套上 CF TFFB 在 550ms 左右,你可以试下
        38
    h19981126g   5 天前
    前端文件全部走国内 CDN,套 cf,再或者买个香港服务器,用香港的做转发,会快 50%左右
        39
    jingyulong   5 天前
    @mytsing520 我的是 Apache,2G 内存估计会快很多,现在的 mysql 512M 的内存还是有很大限制的
        40
    jingyulong   5 天前
    @lostberryzz 好的,我试试,你的 VPS 什么配置?
        41
    jingyulong   5 天前
    @h19981126g 国外服务器哪家服务商比较好一点呀
        42
    SukkaW   5 天前 via Android   ♥ 4
    @jingyulong
    先别着急换服务器。我给几条优化建议吧。

    使用 LNMP + PHP7,不要使用 LAMP
    Gravatar 换成国内镜像
    CDNJS 换成国内镜像
    静态资源与主站分离

    这些具体措施往 Google 里丢 能出来一大批教程
        43
    lostberryzz   5 天前 via iPhone
    @jingyulong TFFB 基本与性能无关,按你的需求选就好
        44
    lostberryzz   5 天前 via iPhone
    当然这是你程序不是特慢的情况下,如果是未优化的 WordPress,那可能性能占的权重大一些。
        45
    dnsaq   5 天前 via iPhone
    这还用看?数据库查询请求缓存,直接 redis 吧,说什么静态资源 动静分离的都是扯几把犊子的
        46
    liyuanzao   5 天前
    先不用上动静分离。。。

    先直接找个 WP CACHE 的插件。。。

    效果应该立竿见影。。。

    VULTR+WORDPRESS+CLOUDFLARE 我也用,速度可以很快
        47
    bjfane   4 天前 via iPhone
    bwh8 适合你
        48
    zhaoyan1245   4 天前
    vultr 个人还是推荐东京节点,其他节点速度实在太慢,还有最好给 VPS 装个 BBR,这样可以最大利用 VPS 的网速
        49
    cs8425   4 天前   ♥ 2
    主要问题还是 TTFB...1.7s...
    你分别多放个静态页面、纯 php 页面(不连资料库)
    如果静态页面的 TTFB 没改善, 往 web server 查
    纯 php 页面没改善, 往 php 设定 /优化
    两者都有改善, 往你的 db 查
        50
    imnpc   4 天前
    jetpack 插件卸载掉 国内没办法使用 WP 已被 X
        51
    no1xsyzy   4 天前
    @likuku #23 海外 https 的话,8 月开始的 SNI 检测应该不会表现在等待时间内,怎么说也是 TLS 建立阶段,甚至是两个请求……
        52
    laoame   4 天前
    还是节点的问题,跟踪一下路由跃点,你就会发现!

    或者你可以在你的 web 放一个 txt 文件,一样慢。

    tracert jingyulong.net

    然后你在看看

    tracert www.v2ex.com
        53
    kn007   4 天前   ♥ 1
    换 lnmp,另外 CF 国内速度波动比较大。

    尽量选线路好的机子,即便海外也能很快。

    博客: https://kn007.net/

    美国,没有使用 cdn,速度还行。
        54
    likuku   4 天前
    @no1xsyzy #51 我是在年初 1 月时发觉这样子的,更觉得猜测是针对没备案的域名作的限制(没备案+非明文的 web 数据流,那就被砍了吧)。
        55
    lvwzhen   4 天前
    Wordpress 的话可以安装 Memcached 解决缓存的问题,速度能有很大的优化
        56
    zcxj138   4 天前
    同一个链接刷新,最长 23s,最短 2.3s ,这已经不是 apache 或者 nginx 的问题了。
        57
    jingyulong   4 天前
    @SukkaW 谢谢你啦,晚上我按照大家的建议试试,先做优化。
        58
    jingyulong   4 天前
    @lostberryzz 明白啦,谢谢
        59
    jingyulong   4 天前
    @dnsaq 有可能数据库的缓存不够,mysql 配置的参数一会我贴出来
        60
    jingyulong   4 天前
    @liyuanzao 晚上我试试这个插件,谢谢啦
        61
    jingyulong   4 天前
    @bjfane 我先试试优化,实在不行再换服务器
        62
    jingyulong   4 天前
    @zhaoyan1245 BBR 搭梯子的时候已经开启啦
        63
    jingyulong   4 天前
    @cs8425 好的👌
        64
    jingyulong   4 天前
    @imnpc jetpack 我用来使用 markdown 编辑器
        67
    VgV   4 天前
    第一次打开很慢,5 秒左右。第二次打开稍微快了一些,2 秒,也许是建立通信与解密占了时间吧,毕竟你才 512M........
        68
    h19981126g   4 天前
    国外比较推荐 bwh 的 cn2 路线,但说句实际的,最好的还是阿里云香港,既不用备案,相应速度也好很多,建议你多关注下他们的活动,像之前的 700 三年阿里云香港 2h4g 用来做站其实很值,但被很多人喷的一文不值。。
        69
    jingyulong   4 天前
    @no1xsyzy https 有什么好的解决方案吗?
        70
    yytsjq   4 天前
    使用 Redis 缓存 HTML 页面

    Redis Page Cache
    https://wordpress.org/plugins/pj-page-cache-red/
        71
    ioutio   4 天前
    wordpress 代码中可能有调用到某些缓慢的链接导致的,我之前遇到过谷歌字体无法加载,然后打开特别慢,通过浏览器也监测不到
        72
    jingyulong   4 天前
    @laoame traceroute https://jingyulong.net
    traceroute: unknown host https://jingyulong.net
    我的基本上都没反应
        73
    jingyulong   4 天前
    @kn007 你的网站我用我的浏览器 Disable Cache 访问,页面的 TTFB 最快 500ms 左右。多刷新几次,有时候可以用时 5s 多,不是太稳定。。。。。你用的哪家的服务器呀
        74
    jingyulong   4 天前
    @yytsjq 兄弟,谢啦
        75
    jingyulong   4 天前
    @ioutio 周末准备把这些静态资源分析下
        76
    jingyulong   4 天前
    大家的每一条的留言我都会一一回复的,因为回复时间间隔有限制,所以只能一次几个的回复。另外,我放了一个 test.txt 在站点上,大家可以访问这个:[点击访问]( https://jingyulong.net/test.txt),排除静态资源造成的影响。
        77
    jingyulong   4 天前
        78
    jingyulong   4 天前
    @yytsjq 插件 Redis Page Cache,听你的建议已经安装🙏🏻
        79
    g5   4 天前 via Android
    真的很慢,上香港鸡
        80
    liyuanzao   4 天前
    @jingyulong 估计你得 HTTP 配置有问题,第一次访问特别慢。。。后面稍微快一点,说明 HTTP 线程第一次可能没给够。。。
        81
    eamon666   4 天前
    就是你的首页内容慢了。
    可能会涉及到服务端的问题,自己本地测一下试试
    和静态资源没关系。
        82
    qianmeng   3 天前 via Android
    我给你说一下我的设置,centos 加上宝塔面板,设置 nginx 和 php7
    php 用 memcached 和 opcache
    网络配置换 google 的 bbr,你搜一下就知道了,关键点在这里。
    vps 配置和你一样,laravel 你知道多慢的,从 5-15 秒降低到 1 秒以内,而且很抗压,
        83
    no1xsyzy   3 天前
    @jingyulong 我是否定 HTTPS 问题…… [请求发出后] 卡 2s 怎么说也不是 HTTPS 问题。
    静态资源是用 Apache 提供的吗?
    ssh 进服务器 curl 自己看一下延迟(注意远端计算延迟)
    话说 ssh 有很明显的延迟吗?没有的话可以考虑换 nginx,估计是 512MB 卡到 Apache 了。
        84
    no1xsyzy   3 天前
    @likuku 那时候可能是这样,8 月开始详情 steamcn 找 302v8 讨论,我也不知道能不能谈这种事。
    主要就是因为同 IP 不同网站(比如 CDN 什么的),但又不好弄一个跨极多域名的证书,所以就用 SNI 按照客户端请求给证书,所以中间人是可以断一次连接来求出域名的。但因为无法提供证书所以浏览器会报错。
        85
    dif   3 天前
    CloudFlare Pro + Vultr JP + Redis + WP-ROCKET + opcache 感觉速度还不错。其实你多买 5 条 Page rule 也是能起到一定的加速作用。另外我还开启了 Mip 和 AMP。百度收录起来比我在阿里云的站点快多了。不只是因为 CF 的原因还是 MIP 的原因。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   683 人在线   最高记录 3821   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 26ms · UTC 20:26 · PVG 04:26 · LAX 12:26 · JFK 15:26
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1