现在碰到了这个一个问题,平时公司用的是Nginx去管理服务器这块,数据库用的是redis这块,现在有一个问题,一直想不太明白。。。客户端发送的请求会被Nginx用算法发送到不同的服务器进行处理是吧,然后服务器上面的redis都是一用一备这种方式来架设的集群,老板问我
现在用户访问a的时候登录了,session信息存储到了a服务器中,那么他紧接着又发送了一个请求被分配到了b服务器,而b服务器并访问不到a服务器里面存储的session就会让用户又要进行登录,那么此时是不是用户的体验度会很低。。怎么个解决办法??我现在想问的是一般公司的N多台服务器上面的数据库都是同步的吗?还是每台服务器上面的数据库的数据都是不一样的?只不过是A服务器的数据库和A服务器的备用服务器上面的数据库信息是相同的?并且,我不明白B服务器上的redis怎么能获取到A服务器上的Redis信息?问题有点多。。哪位大神懂啊?我在线等。。还有好多问题。。
等的我花都谢了就是没有人来回答一下。。。。。高手呢?大神呢?论坛的牛人呢?心累啊!!!!!
http://www.cnblogs.com/zhrxidian/p/5491285.html 你看看
可以看看用火焰图来分析,然后调试CPU:
全文,请参见原文:
如何使用性能分析来调试Python的性能问题 【使用火焰图找出问题根源】
https://blog.csdn.net/SusyYang/article/details/113927192
如何使用火焰图调试性能问题(并在服务器上节省下6.6万美元)
假设下面的火焰图对应呈现上图中央处理器利用率飙升的时段。在此高峰期间,服务器的中央处理器的使用情况如下:
您可把火焰图视为超详细的饼图,其中:
在这种情况下,’foo()’ 占据了整时间范围的75%,因此我们可以改进`foo()`及其调用的函数来减少中央处理器的利用率(并节省$$)。
用Pyroscope工具创建火焰图和表格
为了用代码重现上文的例子,我们将使用Pyroscope工具 — 专门针对性能调试问题提供持续的性能分析,并且是开源。
为了模拟服务器,我写了 ’work(duration)’ 函数,该函数在该持续时间段内模拟工作。这样,我们就可以通过下述代码构建火焰图,来复现’foo()’ 所用的75%时间和 ‘bar()’ 所用的25%时间:
# 模拟每次迭代中央处理器的时间
def work(n):
i = 0
while i < n:
i += 1
# 模拟中央处理器运行7.5秒
def foo():
work(75000)
# 模拟中央处理器运行2.5秒
def bar():
work(25000)
然后,假设你进行了代码优化,把 ‘foo()’ 的时间从75,000降到8000,但其它代码不变。新代码及火焰图所示如下:
# 模拟中央处理器运行0.8秒
def foo():
# work(75000)
work(8000)
# 模拟中央处理器运行2.5秒
def bar():
work(25000)