如何在基于Apache / PHP的服务器上检查并发请求?

时间:2017-10-04 17:44:16

标签: php mysql apache database-performance

我想知道是否有办法在Apache / PHP服务器上捕获并发请求。通过这样做,我们可以提高应用程序的性能。为了说明我的观点,这是一个例子:

考虑一个端点:/add_post。它只是向数据库添加一个帖子。想象一下,我们的服务器收到10个并发请求。这将是10个不同的MySQL查询。但是,如果我们能够捕获这些传入(并发)请求,我们原则上可以使用单个MySQL查询来完成作业。当然,这会提高性能。或者是吗?

2 个答案:

答案 0 :(得分:0)

如果MySQL-Server在同一台机器上运行,或者至少在同一数据中心的机器上运行,那么延迟并不重要。 MySQL非常快,因此执行许多查询都没有问题。

您应该尝试加快PHP应用程序的引导和算法。它们对服务器的性能影响更大。

答案 1 :(得分:0)

为了结合Apache / PHP请求,你必须站在你的头上。这将比您可能获得的节省花费更多的精力和时间。

换句话说,HTTP请求彼此独立。将它们组合起来是混乱,复杂和缓慢的。

你的另一个问题......“批量import matplotlib.pyplot as plt import numpy as np # settings h, w = 10, 10 # for raster image nrows, ncols = 5, 4 # array of sub-plots figsize = [6, 8] # figure size, inches # prep (x,y) for extra plotting on selected sub-plots xs = np.linspace(0, 2*np.pi, 60) # from 0 to 2pi ys = np.abs(np.sin(xs)) # absolute of sine # create figure (fig), and array of axes (ax) fig, ax = plt.subplots(nrows=nrows, ncols=ncols, figsize=figsize) # plot simple raster image on each sub-plot for i, axi in enumerate(ax.flat): # i runs from 0 to (nrows*ncols-1) # axi is equivalent with ax[rowid][colid] img = np.random.randint(10, size=(h,w)) axi.imshow(img, alpha=0.25) # get indices of row/column rowid = i // ncols colid = i % ncols # write row/col indices as axes' title for identification axi.set_title("Row:"+str(rowid)+", Col:"+str(colid)) # one can access the axes by ax[row_id][col_id] # do additional plotting on ax[row_id][col_id] of your choice ax[0][2].plot(xs, 3*ys, color='red', linewidth=3) ax[4][3].plot(ys**2, xs, color='green', linewidth=3) plt.tight_layout(True) plt.show() 比单个插入更快?”答案是肯定的。包含100行的单个INSERTs的运行速度是100个单行INSERT的10倍。但是,我再说一遍,在你描述的场景中不值得做。

Apache + PHP可以轻松处理每秒数十个,也许数百个网页。如果您的实现不能,那么通过尝试组合页面,解决方案