1、系统级linux
一、一个进程下最多建立线程数量redis
首先根据栈大小设置;理论上,一个进程可用虚拟空间是2G,默认状况下,线程的栈的大小是1MB,因此理论上最多只能建立2048个线程。算法
二、GC内存溢出状况:98%的GC在工做状态,而且head大小不足2%时就会发生;数据库
三、一个linux最大进程数:使用命令ulimit -u
查看软限制,个人为31437服务器
四、线程池大小配置(参考值):架构
若是是CPU密集型任务,就须要尽可能压榨CPU,参考值能够设为 NCPU+1并发
若是是IO密集型任务,参考值能够设置为2*NCPU负载均衡
2、应用级memcached
1.单台Memcache服务器key-value查询可以达到TPS 5w以上;性能
2.redis最大链接数,能够在redis.conf配置文件中修改,默认maxclients
10000;
Redis的性能很是出色,每秒能够处理超过 10万次读写操做
单个value的最大限制是1GB,不像 memcached只能保存1MB的数据
Redis的主要缺点是数据库容量受到物理内存的限制,不能用做海量数据的高性能读写,所以Redis适合的场景主要局限在较小数据量的高性能操做和运算上。
3、数据库
通常以整型值为主的表在 千万级
如下,字符串为主的表在 五百万
如下是没有问题的;
4、架构级
假设1000万日活量(用户数量);换算成秒级约等于116;
假设每一个用户操做10次,平均QPS=1160;
考虑峰值是均值的倍数:QPS=11600;
考虑静态资源、图片资源、服务拆分等,流量放大效应,假设10,QPS=116000;
考虑高可用、异地多活,QPS*2=232000;
考虑将来半年增加:QPS*1.5=348000
1.DNS负载均衡的本质是DNS解析同一个域名能够访问不一样的IP地址;实现简单、成本低、粒度太粗、负载均衡算法少;
1.硬件负载均衡:F5和A10价格在20w~50w之间;并发大概能到200万/秒到800万/秒;
2.LVS软件负载均衡:并发大概能到80万/秒;LVS是linux内核的4层负载均衡;和协议无关
3.Ngnix软件负载均衡:并发大概能到5万/秒;Ngnix是7层负载均衡;支持HTTP和e-mail协议;