• PV并发UV


    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
    返回结果:
    SYN_RECV 2 (SYN连接请求收到2个 等待确认)
    ESTABLISHED 1 (有1个正常数据传输状态)
    TIME_WAIT 62 (等待结束的请求62个)

    可返回的所有状态解释:
    CLOSED:无连接是活动的或正在进行
    LISTEN:服务器在等待进入呼叫
    SYN_RECV:一个连接请求已经到达,等待确认
    SYN_SENT:应用已经开始,打开一个连接
    ESTABLISHED:正常数据传输状态
    FIN_WAIT1:应用说它已经完成
    FIN_WAIT2:另一边已同意释放
    ITMED_WAIT:等待所有分组死掉
    CLOSING:两边同时尝试关闭
    TIME_WAIT:另一边已初始化一个释放
    LAST_ACK:等待所有分组死掉

    如果只想看正常的并发连接,使用如下命令:
    netstat -nat|grep ESTABLISHED|wc -l

    如何计算服务器能够承受多大的pv?
    你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢?

    PV是什么:
    PV是page view的简写。PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。

    计算模型:
    每台服务器每秒处理请求的数量=((80%*总PV量)/(24小时*60分*60秒*40%)) / 服务器数量 。
    其中关键的参数是80%、40%。表示一天中有80%的请求发生在一天的40%的时间内。24小时的40%是9.6小时,有80%的请求发生一天的9.6个小时当中(很适合互联网的应用,白天请求多,晚上请求少)。

    简单计算的结果:
    ((80%*500万)/(24小时*60分*60秒*40%))/1 = 115.7个请求/秒
    ((80%*100万)/(24小时*60分*60秒*40%))/1 = 23.1个请求/秒

    初步结论:
    现在我们在做压力测试时,就有了标准,如果你的服务器一秒能处理115.7个请求,就可以承受500万PV/每天。如果你的服务器一秒能处理23.1个请求,就可以承受100万PV/每天。

    留足余量:
    以上请求数量是均匀的分布在白天的9.6个小时中,但实际情况并不会这么均匀的分布,会有高峰有低谷。为了应对高峰时段,应该留一些余地,最少也要x2倍,x3倍也不为过。
    115.7个请求/秒 *2倍=231.4个请求/秒
    115.7个请求/秒 *3倍=347.1个请求/秒
    23.1个请求/秒 *2倍=46.2个请求/秒
    23.1个请求/秒 *3倍=69.3个请求/秒

    最终结论:
    如果你的服务器一秒能处理231.4--347.1个请求/秒,就可以应对平均500万PV/每天。
    如果你的服务器一秒能处理46.2--69.3个请求,就可以应对平均100万PV/每天。

    说明:
    这里说明每秒N个请求,就是QPS。因为我关心的是应用程序处理业务的能力。

    实际经验:
    1、根据实际经验,采用两台常规配置的机架式服务器,配置是很常见的配置,例如一个4核CPU+4G内存+服务器SAS硬盘。

    2、硬盘的性能很重要,由其是数据库服务器。一般的服务器都配1.5万转的SAS硬盘,高级一点的可以配SSD固态硬盘,性能会更好。最最最最重要的指标是“随机读写性能”而不是“顺序读写性能”。(本例还是配置最常见的1.5万转的SAS硬盘吧)
    3、一台服务器跑Tomcat运行j2ee程序,一台服务器跑MySql数据库,程序写的中等水平(这个真的不好量化),是论坛类型的应用(总有回帖,不太容易做缓存,也无法静态化)。
    4、以上软硬件情况下,是可以承受100万PV/每天的。(已留有余量应对突然的访问高峰)

  • 相关阅读:
    linux centos&Ubuntu&RedHat更换软件源
    linux及windows安装maven
    No converter found for return value of type: class com.alibaba.fastjson.JSON解决办法
    linux sudo命令失败 提示sudo:/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位
    Linux常用命令
    Linux安装Java+Eclipse或IDEA
    Python基础编程:字符编码、数据类型、列表
    linux系统挂载u盘拷贝文件
    linux(服务器)如何确认网卡(网口)对应的配置文件
    Python第三方库requests的编码问题
  • 原文地址:https://www.cnblogs.com/zdqc/p/9617258.html
Copyright © 2020-2023  润新知