当前位置: 首页 > 科技观察

下面说一下web服务器的操作

时间:2023-03-12 04:47:26 科技观察

1。进程和线程进程是具有一定独立功能的程序。对于某个数据集上的运行活动,进程是系统分配和调度资源的独立单元。从逻辑上看,多线程的含义是在一个应用程序(进程)中,可以同时执行多个执行部分。但是,操作系统并没有将多个线程实现为多个独立的应用程序,而是将它们作为进程进行调度和管理,分配资源。这是进程和线程的重要区别。进程和线程的主要区别是进程有独立的地址空间。一个进程崩溃后,不会影响保护模式下的其他进程,线程只是一个进程中的一次不同的执行。小路。线程有自己的栈和局部变量,但线程之间没有单独的地址空间。一个线程的死亡意味着整个进程的死亡,所以多进程程序比多线程程序更健壮,但是在进程间切换时,消耗的资源更大,效率更低。但是对于一些需要同时执行和共享某些变量的并发操作,只能使用线程,不能使用进程。再说说并发连接数。2.并发连接数(1)。最大并发连接数是多少?最大并发连接数是服务器可以同时处理的最大会话数。(2).什么是会话?当我们打开一个网站,就是客户端浏览器和服务器之间的一次会话,我们的网页浏览是基于http协议的。(3).HTTP协议是如何工作的?HTTP支持两种建立连接的方式:非持久连接和持久连接(HTTP1.1默认的连接方式是持久连接)。(4).下面七个步骤将在浏览器和网络服务器之间完成建立TCP连接。Web浏览器向Web服务器发送请求命令。Web浏览器发送请求标头信息。Web服务器响应。Web服务器发送响应头信息。发送数据Web服务器关闭TCP连接一般情况下,Web服务器一旦向浏览器发送请求数据,就会关闭TCP连接,但是浏览器一般会在header信息中加入这行代码Connection:keep-alive,并且TCP连接在发送后将保持打开状态,因此浏览器可以继续通过同一连接发送请求。保持活动状态可以节省每次请求建立新连接所需的时间,也可以节省网络带宽。3.并发连接数的计算方法。当用户在服务器上下载文件时,就是一个连接。下载用户文件后,连接消失。有时候如果一个用户用迅雷的多线程方式下载,如果这个用户开了5个线程,就认为是5个连接。当用户打开你的页面时,即使他一直停留在页面上,没有向服务器发送任何请求,也会在用户打开页面后的15分钟内被计为在线。在上述情况下,如果用户继续打开同一网站的其他页面,在线人数将按照用户最后一次点击(发送请求)后的15分钟计算。在这15分钟内,无论用户如何点击(包括打开新窗口),仍然有一个人在线。当用户打开页面并正常关闭浏览器时,用户的在线号码会立即被清空。二、Web服务器提供服务的方式由于Web服务器必须同时为多个客户提供服务,所以它必须使用一定的方法来支持这种多任务的服务方式。一般情况下,可以选择三种方式:多进程模式、多线程模式和异步模式。其中,在多进程模式下,服务端需要使用一个进程为一个客户端提供服务。因为在操作系统中,生成一个进程需要额外的开销,比如进程内存复制,所以当客户端很多的时候性能会下降。为了克服产生进程的这种开销,可以使用多线程或异步方法。在多线程模式下,使用进程中的多个线程来提供服务,由于线程开销小,性能会有所提升。事实上,不需要任何额外开销的方法仍然是异步方法。它采用非阻塞的方式与各个客户端通信,服务端采用一个进程进行轮询。虽然异步方法是最有效的,但它也有其自身的缺点。因为在异步模式下,多个任务之间的调度是由服务器程序自己完成的,一旦某个地方出现问题,整个服务器就会出问题。所以,要给这类服务器添加功能,一方面要符合服务器自身特定的任务调度方式,另一方面要保证代码没有错误,限制了服务器的功能并使异步Web服务器效率最高,但是功能简单,比如Nginx服务器。由于多线程方式使用线程进行任务调度,因此服务器的开发变得简单,有利于多人协作,因为它符合标准。但是,多个线程位于同一个进程中,可以访问同一个内存空间,所以线程之间是有影响的,分配的内存必须保证分配和释放。对于一个服务器系统来说,由于需要连续运行数天、数月甚至数年,一点点的错误就会逐渐累积,最终影响服务器的正常运行,所以很难写出一个高度稳定的多线程服务器系统。服务器程序。但是,并非不可能做到。Apache的worker模块可以很好的支持多线程。多进程方式的优点在于稳定性,因为当一个进程退出时,操作系统会回收它占用的资源,这样它就不会留下任何垃圾。即使程序出现错误,由于进程之间是相互隔离的,错误也不会累积,而是随着进程的退出而被清除。Apache的prefork模块是一个支持多进程的模块。3、多进程、多线程、异步模式的比较Web服务器一般以三种方式提供服务:多进程模式、多线程模式和异步模式。其中,效率最高的方法是异步方法,最稳定的方法是多进程方法,占用资源少的方法是多线程方法。1.多进程在这种架构方式中,Web服务器生成多个进程来并行处理多个用户请求,进程可以按需生成,也可以提前生成。一些网络服务器应用程序为每个用户请求生成一个单独的进程来响应。但是,一旦并发请求数达到数万,多个并发运行的进程就会消耗大量的系统资源。(即每个进程只能响应一个请求或者多个进程对应多个请求)优点:最大的优点在于稳定性,一个进程出错不会影响其他进程。例如服务器同时连接100个请求,则有100个进程。如果1个进程失败,只会杀死1个进程,99个进程会继续响应用户请求。每个进程响应一个请求缺点:进程数量多,进程切换次数太多,导致CPU资源使用效率低,每个进程的地址空间是独立的,在很多空间重复数据,所以内存使用效率低,进程切换内核完成占用CPU资源。2.多线程在多线程模式下,每个线程响应一个请求。由于进程的数据是线程间共享的,线程的开销很小,性能也会有所提升。优点:线程间共享进程数据,每个线程响应一个请求,线程切换不可避免(切换级别比较轻),同一个进程的线程可以共享进程的很多资源,对内存的需求大大降低与进程相比,读可以共享,写不能共享缺点线程快速切换会造成线程抖动,多线程会导致服务器不稳定使用最少的资源。但也存在问题。一旦某个进程或线程出现问题,就会导致整个服务器宕机。