Java开发服务器的线程怎么处理?

Java开发服务器的线程怎么处理?,第1张

在进行服务器处理的过程中,需要保证数据的正确处理,那么最重要的就是使用不同的数据处理模式进行运算。在整个过程中,可能很多人对服务器的知识并不了解,那么应该如何进行Java开发服务器的线程处理呢,关于线程处理有哪些知识?下面昌平镇北大青鸟为大家介绍关键服务器线程处理的简单知识。

1、BIO线程模型

在JDK14中引入JavaNIO之前,所有基于Java的Socket通信都使用了同步阻塞模式(BIO)。这种请求-响应通信模型简化了上层的应用程序开发上,但在具有性能和可靠性的情况下,存在一个巨大的瓶颈。在一段时间里面,大型应用程序服务器主要是用C或C++开发的,因为它们可以直接使用 *** 作系统提供的异步I/O或AIO功能。

当流量增加且响应时间延迟增加时,JavaBIO开发的服务器软件只能通过硬件的不断扩展来满足并发性和低延迟的情况,这极大地增加了企业的成本和群集大小。系统的不断扩展,系统的可维护性也面临着巨大的挑战,只能通过购买性能更高的硬件服务器来解决问题,这将导致恶性循环的产生。

2、异步非阻塞线程模型

从JDK10到JDK13,Java的I/O类库非常原始。UNIX网络编程中的许多概念或接口未反映在I/O类库中,例如Pipe、Channel、Buffer和Selector等。在发布JDK14的时候,NIO正式发布JDK作为JSR-51。并且它还添加了一个javanio包,为异步I/O开发提供了许多API和库。

3、RPC性能三原则

影响RPC的性能主要有三大元素,其中主要为I/O模型、协议及线程。

I/O模型:使用什么样的通道传递给另一方,BIO,NIO或AIO发送数据,IO模型在很大程度上能够决定框架的性能。

协议:应该使用什么样的通信协议,Rest+JSON或基于TCP的专用二进制协议。参加电脑培训的过程中发现,协议的选择不同,性能模型也不同。内部专用二进制协议的性能通常可以比公共协议更好地设计。

线程:如何读取数据报?在执行读取后的编解码器的哪个线程中,如何分发编码消息,通信线程模型是不同的,并且对性能的影响也非常大。

参照此表,您可以估算出服务器在繁忙时段的平均扩展系数,并且还可以为 Server_Transinfo_Range 设定合理的数值,以此得到一个比较理想的服务器可用性指标。以下内容节选自 Domino Administrator 651 帮助文档。集群中的每个服务器都定期判断自己的工作负载,判断将基于服务器最近处理请求的响应时间作出。系统用 0 到 100 之间的数字表示工作负载,其中 0 表示服务器负载过重;100 表示服务器负载很轻。这个数值称为服务器的可用性指标。随响应时间增加,服务器可用性指标减小。服务器的可用性指标约等于仍然可用的总服务器容量百分比。例如,如果服务器的可用性指标为 65,则仍然有 65% 的服务器容量可用。尽管企业中的服务器功率和资源可能不同,但每台服务器上的服务器可用性指标都代表同一件事 -- 仍然可用的服务器容量。服务器可用性指标基于扩展系数生成,用于指示服务器上的当前工作负载。扩展系数是由特定类型事件的响应时间与服务器曾经完成此类事务的最短时间之比决定的。例如,如果服务器当前执行“打开数据库”事务的平均时间为 12 毫秒,而服务器曾经执行“打开数据库”事务的最短时间为 3 毫秒,则“打开数据库”事务的扩展系数为 4(当前时间 12 毫秒除以最快时间 3 毫秒)。换言之,扩展系数决定完成当前事务所花的时间是在最佳条件下所花时间的多少倍。IBM(R) Domino(TM) 将每种事务的最短时间存储在内存和 LOADMONNCF 文件中,服务器每次启动时都会读取该时间。服务器关机时,Domino 会用最新信息更新 LOADMONNCF 文件。为确定当前的扩展系数,Domino 会在指定的时间段内跟踪最常用的几种 Domino 事务类型。缺省情况下,Domino 会在 5 个时间段内跟踪这些事务,每段时间为 15 秒。然后,Domino 就可以确定完成每种事务平均要花的时间,并用该时间除以它曾经完成每种同类事务所花的最短时间。这样就可确定每种事件的扩展系数。为确定整个服务器的扩展系数,Domino 会取所有类型事务的扩展系数的平均值,并对最常用的事务类型给予较大的加权数。当服务器繁忙时,对服务器添加更多负载会显著地影响服务器的性能和可用性。因此,向繁忙的服务器中添加负载也比向不繁忙的服务器中添加负载要更快地增大扩展系数。因为各个服务器的速度、容量和处理能力各不相同,能够处理的工作负载也不尽相同。所以,两个不同服务器的扩展系数相同并不一定意味着二者能够承担相当的工作负载。例如,对于一个在空闲状态下执行事务都需要花费很长时间的小型服务器来说,扩展系数 40 可能表示用户需要等待若干秒才能得到响应。而对于一个处理速度非常快的超大型服务器来说,扩展系数 400 可能表示用户只需等待不到一秒的时间就能得到响应。注意:下表中的值是根据扩展系数 64 生成的,该值表示服务器处于满负载状态。 扩展系数可用性指标 1 100 2 83 4 67 8 50 16 33 32 17 64 0 注意:扩展系数和可用性指标仅用于度量服务器响应时间,该时间通常只是客户机经历的响应时间的一小部分。例如,客户机和服务器之间的网络响应时间通常占客户机经历的响应时间的很大部分。更改表示服务器处于满负载状态的扩展系数值 要有效利用 Domino 工作负载平衡,必须调整扩展系数与可用性指标之间的关系,以便服务器在达到预期的故障转移工作负载时进行故障转移。通过指定表示服务器处于满负载状态的扩展系数值,可以实现此目的。Domino 中的缺省值为 64。当扩展系数达到该值时,便可将服务器视为负载已满,可用性指标降为 0(零)。如果服务器的功能特别强大,处理速度特别快,则可提高表示服务器处于满负载状态的扩展系数值。对于一些处理速度极快的服务器来说,该值可以提高到几百或更高。如果服务器的处理速度特别慢,则可降低该值。要更改表示满负载服务器的扩展系数值,请将下面的设置添加到 NOTESINI 文件,然后重新启动服务器。SERVER_TRANSINFO_RANGE= n 其中,值 n 表示服务器处于满负载状态的扩展系数值等于 2 的 n 次幂。 n 的缺省值为 6,这说明扩展系数值为 64,因为 2 的 6 次幂为 64;如果将 SERVER_TRANSINFO_RANGE 设为 7,则满负载时的扩展系数值为 128;如果将 SERVER_TRANSINFO_RANGE 设为 8,则该值为 256。要确定 SERVER_TRANSINFO_RANGE 的最优值,请执行下列 *** 作:1 在服务器负载过重的期间内,监控服务器的扩展系数。可以使用控制台命令“show stat serverexpansionfactor”来执行此任务。另外,还可以在这些期间内监控性能统计信息。记录有关此类期间的足够多的扩展系数值,以便确定使用哪个扩展系数值来表示服务器处于满负载状态。 2 为 SERVER_TRANSINFO_RANGE 确定一个值,以 2 为底数, 该值为指数计算而得的值,即为在步骤 1 中选择的扩展系数值。 如果更改了表示服务器处于满负载状态的扩展系数值,扩展系数与可用性指标之间的关系就会发生变化。下表列出了当 SERVER_TRANSINFO_RANGE 值为 8 时的一些扩展系数以及由之转换而来的可用性指标。因为 2 的 8 次幂为 256,所以本例中的最大扩展系数为 256。扩展系数可用性指标1100288475863165032386425128132560更改用于计算扩展系数的数据量 尽管不是必需的 *** 作,但还是可以使用下列 NOTESINI 设置来更改 Domino 收集用以配置扩展系数的数据量。 要更改 Domino 使用的数据收集时间段数,请使用 NOTESINI 的 Server_Transinfo_Max=x 设置,其中 x 是您希望 Domino 使用的收集时段数量。 要更改每个数据收集时间段的时间长度,请使用 NOTESINI 的 Server_Transinfo_Update_Interval=x 设置,其中 x 是每个时间段的长度(秒)。

在线计算器,简单的计算应该是本机运算。因为都是很小的计算量。在线计算机只是一个网页嵌入程序,提供一个算法和输入输出界面。
可以 试试算一个特别大的阶乘,就能知道是否本机运算了。

您问的是服务器用运算卡需要设置吗?是需要的。Raid是服务器数据容错模式中采用最普遍的一种,通常都是通过外加Raid卡的方式来实现。
按照服务器的结构,可以分为CISC架构的服务器和RISC架构的服务器。CISC架构主要指的是采用英特尔架构技术的服务器,即我们常说的“PC服务器”;RISC架构的服务器指采用非英特尔架构技术的服务器,如采用PowerPC、Alpha、PARISC、Sparc等RISCCPU的服务器。

标准的机柜可以通过托架或者导轨固定,所有的机架式服务器都可以按需求进行部署,如果进行整体运算,你可以参考正睿这个计算方案
名称:HPC高性能计算解决方案
地址:>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13155456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-13
下一篇 2023-06-13

发表评论

登录后才能评论

评论列表(0条)

保存