精华内容
下载资源
问答
  • 并发能力

    2011-05-19 19:42:00
    并发能力是指多用户在同一时间对相同数据同时访问的能力。一般的关系型数据库都具有并发控制的能力,但是这种并发功能也会对数据的一致性带来危险。试想若有两个用户都试图访问某个银行用户的记录并同时要求修改该...

    并发能力是指多用户在同一时间对相同数据同时访问的能力。一般的关系型数据库都具有并发控制的能力,但是这种并发功能也会对数据的
    一致性带来危险。试想若有两个用户都试图访问某个银行用户的记录并同时要求修改该用户的存款余额时,情况将会怎样呢?我们可以对
    PowerBuilder中的DataWindow进行设置来进行并发控制。所谓并发控制就是指在用户数据修改的过程中保证该数据不被覆盖或改变的
    方式,在下面的例子中我们将看到如何设置DataWindow来控制开发访问。为了说明问题,我们举这样一个简单的银行系统中的例子,某用户
    的存款状况如右:   我们假设事情的经过是这样的:公司的某员工在银行前台取款2,000元,银行出纳查询用户的存款信息显示银行存款余额20,000元;
    正在这时,另一银行帐户转帐支票支付该帐户5,000元,机器查询也得到当前用户存款20,000元,这时银行的出纳员看到用户存款超过了
    取款额,就支付了客户2,000元并将用户存款改为18,000元,然后银行的另一名操作员根据支票,将汇入的5,000元加上,把用户的余额改
    为25,000元,那么数据库管理系统是否可以接受这些修改呢?   在DataWindows的设计中,我们选择菜单Rows|Update…,会出现
    Specify Update Characteristics的设置窗口,在这个窗口中我们设置Update语句中Where子句的生成,以此来进行开发控制。在这里
    有三个选项,我们分别看一看在本例中这三个选项的结果:   (1)Key Columns:生成的Where子句中只比较表中的主键列的值与最初查询时是否相同来确定要修改的记录。在上述的例子中,
    转帐支票的操作将覆盖出纳员作出的修改,这样银行损失两千元。   (2)Key and Updateable Columns:生成的Where子句比较表中主键列和可修改列的值与最初查询时否是相同。在上例中两次
    查询出的结果都是有两万余额,当第一个人修改余额时,余额仍是二万元,所以修改成立,而支票转帐操作时余额已不是二万,所以该列不匹配,
    修改失败。   (3)Key and Modified Columns:Where子句比较主键和将要修改的列,在本例中,结果与Key and Updateable Columns的选择
    相同,因为余额已改变,不再与最初的查询相同,因此仍然不能修改。   让我们作另外一个假设,我们把银行后台作支票转帐操作改为冻结用户存款,即把状态字段的值改为冻结,而且事件发生的次序如下表,
    那么表中的次序4…前台出纳的修改能不能成立呢:   1.Key Columns:Where子句只比较主键值,显然出纳员的修改是允许的。   2.Key and Updateable Columns:生成的Where子句包括比较所有可修改的列,因此出纳修改时Statue字段为冻结与出纳查询
    时的tive不符,修改失败,同时显示错误信息。   3.Key and Modified Columns:Where子句的比较包括主键和要修改的列,由于本列中修改列仍为20,000元没有变化,所以出纳的
    修改可以成立。   在本例中,我们可以看到Key and Updateable Columns的选项最严格,可以避免出现状态列发生改变时余额作修改的错误,但是这也
    会禁止我们作一些本当允许的并发修改,如出纳修改存款余额,而业务员修改用户的联系地址等。因此我们应当根据实际情况,选择适当的
    Update设置。   根据我们使用数据库的不同,我们还有一些其他的控制并发访问和修改的选择方案,如对数据加锁。锁是一个用户避免其他用户对指定
    行作修改的操作。在结束一个事务如执行commit,rollback,disconnect等语句时自动将锁释放。如果您使用的DBMS支持锁的操作,在
    Power-Builder的DataWindow设计时,Select语句可在from子句中加上with holdlock:即在data Window的SQL Window中,在
    表窗口的标题处点击右鼠标,弹出菜单的最后一个选项即为Holdlock。选择该项,生成的SQL语句将在re-trievel()函数执行后将所查询的
    数据加锁,以避免其他用户的修改访问,直至commit,rollback等事件发生后解锁。这种方式带来的问题是,当用户查询完数据后可能离开计
    算机长时间不用,这段时间内其他用户均无法修改数据。此外有些DBMS如Sybase等不支持行级锁,也就是说当你对某一行查询时更多的行
    都被上了锁,这就更增加了并发处理的局限性。另一个值得注意的问题是在多窗口应用中某一个窗口的事务提交将会导致使用一事务中其他
    数据窗口的查询行解锁,这时修改将可能发生错误。某些DBMS系统支持一个称作"时间戳(timestamp)"的数据项来控制并发性。每张表中
    都有一个时间戳的数据列,当Insert语句或Update语句对数据行作修改时该列自动被修改为当前时间。当你要作修改时,where子句可检
    查时间戳列在查询时和修改时两个值是否相符,以此来确保您作出的修改不会覆盖别人的修改,因此这种确认方式与key and Updateable
    Columns选项相同。即使两个用户对同一行的不同列作修改,后一个修改者也将失败。在常用的关系型数据库中Sybase和Microsoft的SQL
    Server支持时间戳的使用。而在PowerBuilder中,不管用户后台连接何种数据库,只要表中带有timestamp的列名且数据类型为datetime,
    PB将自动忽略Update characteristics的选项,而在where子句中生成主键和时间戳列的比较。   如果您所用的数据库不支持时间戳但支持触发器,您也可以在表中增加一列整数型的列。当有对表中某种记录作修改时,该列自动加1。
    下列使用的是Watcom数据库,对Shipper表增加Updcnt字段并作两个触发器,这样任何用户或进程试图修改某行记录时,该字段均可发生变化。   对INSERT触发器的编写如下:   DROP TRIGGER INS—SHIPPER’   CREATE TRIGGER SHIPPER BEFORE INSERT ON SHIPPER   REFERENCING NEW AS Newvalue   FOR EACH ROW   BEGIN   SET newvalue.UpdCnt=newvalue.UpdCnt+1;   END'   同理可编写UPDATE触发器。   在您的PowerBuilder应用之中,除表的主键外,必须再加上这一列作为检测列加入Update语句中的Where子句中,这样再作Update
    操作时,后台数据库会比较修改时与用户作Retrieve操作时数据是否相等,以确认是否能作修改。在DataWindows中在Specify Update 
    Characteris-tics的对话框的右下角的Unique key column(s)中加上Updcnt一项,同时注意where clause中选择Key columns,这样
    PowerBuilder在构造where子句时就会认为Updcnt亦是表的主键,而成为检测项。   当数据窗口的Update函数被调用后,触发器将修改过记录中的Updcnt列表为新值,为保证下一次修改能够有效,您应当立即作
    Retrieve()以使DataWindow缓冲区中Updcnt的值与数据库相同。显然修改后立即查询的代价要比其他任何一种并 发控制的代价要小得多。

     

    展开全文
  • 视频系统的并发能力直接影响到大型客户的体验,为了对视频会议系统特别是电信级系统的并发能力有一个客观评价,对其并发能力评测方案进行探讨,并以某电信运营商的视频会议系统为例进行实证,最后给出系统并发能力...
  • Tomcat的并发能力

    2020-09-25 14:08:38
    一、一些限制 Windows 每个进程中的线程数不允许超过 2000 ... 还需要考虑数据库读写的并发能力 二、Tomcat Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了, Tomcat的最大并发数是可以

    一、一些限制

    • Windows 每个进程中的线程数不允许超过 2000
    • Linux 每个进程中的线程数不允许超过 1000
    • 在 Java 中每开启一个线程需要耗用 1MB 的 JVM 内存空间用于作为线程栈之用。 (并发量上来后 可能需要修改JVM参数调优)
    • 建议当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。
    • 还需要考虑数据库读写的并发能力

    二、Tomcat

    Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了, Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的。更好的硬件,更多的处理器都会使Tomcat支持更多的并发。

    Tomcat 默认的 HTTP 实现是采用阻塞式的 Socket 通信,每个请求都需要创建一个线程处理。这种模式下的并发量受到线程数的限制,但对于 Tomcat 来说几乎没有 BUG 存在了。

    Tomcat 还可以配置 NIO 方式的 Socket 通信,在性能上高于阻塞式的,每个请求也不需要创建一个线程进行处理,并发能力比前者高。但没有阻塞式的成熟。

    这个并发能力还与应用的逻辑密切相关,如果逻辑很复杂需要大量的计算,那并发能力势必会下降。如果每个请求都含有很多的数据库操作,那么对于数据库的性能要求也是非常高的。 对于单台数据库服务器来说,允许客户端的连接数量是有限制的。

    三、一些参数

    maxThreads="1000" 最大并发数 
    
    minSpareThreads="100"///初始化时创建的线程数
    
    maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
    
    acceptCount="700"// 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。

    原文:https://www.cnblogs.com/lcword/archive/2004/01/13/11798092.html

    展开全文
  • 提高服务器并发能力 1.队列+连接池 2.主要业务逻辑放在应用服务器上处理,服务器只做辅助业务处理 3.缓存,减少对数据库访问。 3.1 缓存同步,当缓存失效时则去数据库中查询相关数据,实时性较差; 3.2 一旦数据库...

    一、 提高服务器并发能力

    在这里插入图片描述

    1.队列+连接池

    2.主要业务逻辑放在应用服务器上处理,服务器只做辅助业务处理

    3.缓存,减少对数据库访问。

    3.1 缓存同步,当缓存失效时则去数据库中查询相关数据,实时性较差;

    3.2 一旦数据库中数据更新,则通知前端的缓存更新,这样实时性较好。

    3.3 缓存换页,内存不够,将不活跃的数据换出内存,常见算法FIFO,LRU(最近很少使用),LFU(最不频繁使用)。

    4.数据库读写操作分离,通常查询操作比更新请求多,将读写操作分开实现负载均衡。数据库通常有replication机制,Master数据库用来更新数据,多个Slave数据库用来查询操作,当有数据更新时应及时同步到多个Slave数据库。

    5.应用服务器也可以实现负载均衡。

    5.1增加一个任务服务器来实现,任务服务器监视应用服务器的负载、CPU等信息,选取负载最低的服务器分布任务。

    5.2应用服务器主动向任务服务器取任务处理,这种负载均衡会更公平。约束条件是所有应用服务器都能处理同样的任务。

    6.任务服务器应该有2台甚至多台,2台之间通过心跳检测,当其中一台故障,应该能立马转移到另外一台,FailOver机制。

    7.服务器性能四大杀手:

    7.1数据拷贝 ---- 缓存

    7.2环境切换 ---- 单线程和多线程如何选择,如果服务器是单核,采用多线程则会增加切换开销,采用状态机编程机制效率最高;如果服务器是多核,那多线程能充分发挥多核性能,但应尽量避免环境切换,不是越多越好。

    7.3内存分配 — 减少向操作系统分配内存。

    7.4锁竞争 — 通过逻辑尽量避免锁使用。

    展开全文
  • 网站崩溃是因为网站并发能力低造成的,还有就是同时访问的人数太多。 如果提高网站并发能力,主要考虑几方面: 1、负载均衡:网站架构上要做到可以横向扩容 2、程序优化,增加执行效率,从代码层做到动静分离 3...

    网站崩溃是因为网站并发能力低造成的,还有就是同时访问的人数太多。

    如果提高网站并发能力,主要考虑几方面:

    1、负载均衡:网站架构上要做到可以横向扩容

    2、程序优化,增加执行效率,从代码层做到动静分离

    3、静态资源使用CDN加速

    4、缓存机制:有页面缓存和数据缓存

    5、数据库的瓶颈,可以数据库读写分离或分布式数据库

    展开全文
  • 提高tomcat的并发能力

    2015-08-17 16:51:26
    提高tomcat的并发能力 1、Apache + Tomcat 结合起来用Apache负责静态页面,Tomcat负责动态页面,同时减少connectionTimeout的时间,以应对并发量大线程回收来不及的情况。 2、压力过大的问题,可以做负载均衡,...
  • 1.五种 IO 模型 Unix网络编程中提到了5种网络模型 Blocking IO 阻塞式IO,一次只能处理一个请求。 Noblocking IO 非阻塞式IO IO multiplexing IO多路复用(高并发框架... 如何提升服务器的并发能力呢?就是如何...
  • 文章目录什么是服务器并发处理能力有什么方法衡量服务器并发处理能力1. 吞吐率2. 压力测试压力测试前提考虑的条件压力测试中关心的时间又细分以下2种:怎么提高服务器的并发处理能力1. 提高CPU并发计算能力多进程 &...
  • 如何提高MySQL并发能力的思路

    千次阅读 2015-03-08 18:40:06
    如何提高MySQL并发能力的思路 http://soft.chinabyte.com/database/437/12527937.shtml 1、使用行级别锁,避免表级别或页级别锁  尽量使用支持行级别锁的存储引擎,如InnoDB;只在读操作显著多于写作...
  • 4.Nginx的并发能力如何算? Nginx处理动态资源时消耗4个连接;并发能力计算 11024/4 静态资源时消耗2个连接;并发能力计算 11024/2 5.Nginx核心配置文件是?——nginx.conf worker_processes 1; error_log /var/...
  • 从服务器角度,实际并发用户数的可以理解为服务器当前维护的代表不同用户的文件描述符总数,也就是并发连接数。服务器一般会限制同时服务的最多用户数,比如apache的MaxClents参数。 这里再深入一下,对于服务器来说...
  • 简介:来源:IT1683月11日,记者采访获悉,用友旗下财务软件公司畅捷通日前完成“好生意”、“智+”等核心云服务向阿里云云原生数据库PolarDB的迁移工作,助力业务系统服务响应时间降低了40%,业务系统并发能力提升...
  • 有关并发处理的技术文档,可做优化的参考。在节省成本的情况下,可以修改Linux的内核相关TCP参数,来最大的提高服务器性能。当然,最基础的提高负载问题,还是升级服务器硬件了,这是最根本的
  • solr的并发能力,最好有数据量化说明

    千次阅读 2013-06-25 14:20:33
    请教solr的并发能力,最好有数据量化说明 小莮亽丶独占伱旳妩媚(1804667222) 13:30:43 这个是我做的一个简单并发测试 报告 露露的功课(1982118) 13:32:07 这个报告不错,但是还不够清楚 说明你solr的架构 ...
  • 在获取大数据量文本字段时,如果直接rs.getString(),当同时很多人访问量,会导致内存占用高,系统响应变慢,因此我们可以采用循环读取256字节,这样就大大提高了并发能力。以下是代码实现 public static String ...
  • 每秒上千订单场景下,如何对分布式锁的并发能力进行优化? 起因 这一次的话题来源于我朋友的一次面试经历,在面试国内某个不错的电商公司时,面试官给他出了一个场景题:假如下单时,用分布式锁来防止库存超卖,但是...
  • TOMCAT优化,提高并发能力

    千次阅读 2018-01-12 11:22:41
    很多时候,明明自己的服务器配置很高,可是在高并发时的性能并不好,这个时候就要考虑是不是TOMCAT服务器的 性能限制了并发,如果你还在烦恼服务器的性能低下,时不时的报连接失败connection refused。那就请往下看...
  • 说实话,这个问题困扰我很多年,无奈公司团队当中也无人能为我解答这个问题,言归正传,自己曾...然后通过jmeter进行压测,发现当并发请求数达到四五千的时候tomcat就支撑不住了,难道一台机器只能支撑四五千的并发量?
  • 实际的生产环境中,如果对mysql数据库的读和写都在一台数据库服务器中操作,无论是在安全性、高可用性,还是高并发等各个方面...因此,一般通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力
  • 原文地址:http://blog.csdn.net/yang63515074/article/details/73274862浏览器缓存减少对服务器发起的http请求(将资源缓存到浏览器中)和...如果能够降低这部分的网络带宽也会提高服务器的并发响应能力(比如304)...
  • 你是否还在为某些接口业务复杂、响应速度慢、并发量上不去而苦恼,今天给大家推荐一些小技巧,如何对复杂业务进行拆分、解耦。面对高并发可以记住这五点点:1、异步,削峰填谷;2、缓存,缓存相对稳定高频热点数据,...
  • Quartz通过配置来优化并发能力

    千次阅读 2018-07-17 11:57:35
    先上官网地址:... Quartz 在线上出现并发瓶颈问题,造成延时触发或者不触发,可以通过他的配置文件 quartz.properties 文件来优化 Quartz-Job的quartz.properties配置文件说明,此文件在quartz的jar包有...
  • ①Hashtable是通过对hash表整体进行锁定,是阻塞式的,当一个线程占有这个锁时,其他线程必须阻塞等待其释放锁 而ConcurrentHashMap是如下实现: ②jdk1.6的实现:ConcurrentHashMap是采用Segment分段锁的方式,它并...
  • Webbench是Linux下的一个网站压力测试工具,能测试处在相同...webbench最多可以模拟3万个并发连接去测试网站的负载能力我使用的是centos系统来进行测试进行之前呢,首先要安装webbench的依赖 ctags: 1.首先下载ct...
  • 尝试将并发数减小,错误依旧,尝试将并发数改为1,结果如下图:![图片说明](https://img-ask.csdn.net/upload/201707/07/1499398883_95740.png); nginx服务也确实启动了,并且可以通过浏览器访问: ![图片说明]...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,059
精华内容 7,223
关键字:

并发能力