“春天”通过精心收集,向本站投稿了11篇一级高速缓存,以下是小编为大家准备的一级高速缓存,欢迎大家前来参阅。

篇1:一级高速缓存
设计在微处理器内部的高速缓存,
一级高速缓存
,
放置在主板上的高速缓存器称为二级高速缓存。
篇2:回写高速缓存
回写高速缓存(WriteBack),它对读和写操作均有效,速度较快,
回写高速缓存
,
而采用写通(Write-through)结构的高速缓存,仅对读操作有效。
篇3:磁盘阵列・什么是高速缓存
磁盘阵列・什么是高速缓存
每台磁盘阵列设备都配备了一定数量的内存作为高速缓存使用,而且大多用户以后可以扩充。在磁盘阵列设备中,常见的内存类型由SDRAM(同步内存)、FLASH(闪存)等。不同的'磁盘阵列产品出厂时配备的内存容量不同,一般为几十兆到数GB(1GB=1000MB)容量不等,这取决于磁盘阵列产品的应用范围,一般来讲,应用在小规模的局域网当中的磁盘阵列,如果只是应付几台设备的访问,64M以下内存容量即可。如果是上百个节点以上的访问,就得需要上G容量的内存。当然,这不是绝对的因素,磁盘阵列产品的综合性能发挥还取决于它的处理器能力、硬盘速度及其网络实际环境等因素的制约。总之,选购磁盘阵列产品时,应该综合考虑各个方面的性能参数。篇4:外置及共享硬盘・什么是高速缓存
外置及共享硬盘・什么是高速缓存
缓存(Cache memory)是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界介面传输速度不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。当硬盘存取零碎数据时需要不断地在硬盘与内存之间交换数据,如果有大缓存,则可以将那些零碎数据暂存在缓存中,减小外系统的负荷,也提高了数据的传输速度。
硬盘的缓存主要起三种作用:一是预读取。当硬盘受到CPU指令控制开始读取数据时,硬盘上的控制芯片会控制磁头把正在读取的簇的下一个或者几个簇中的数据读到缓存中(由于硬盘上数据存储时是比较连续的,所以读取命中率较高),当需要读取下一个或者几个簇中的数据的时候,硬盘则不需要再次读取数据,直接把缓存中的数据传输到内存中就可以了,由于缓存的速度远远高于磁头读写的速度,所以能够达到明显改善性能的目的;二是对写入动作进行缓存。当硬盘接到写入数据的指令之后,并不会马上将数据写入到盘片上,而是先暂时存储在缓存里,然后发送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬盘则在空闲(不进行读取或写入的时候)时再将缓存中的.数据写入到盘片上。虽然对于写入数据的性能有一定提升,但也不可避免地带来了安全隐患――如果数据还在缓存里的时候突然掉电,那么这些数据就会丢失。对于这个问题,硬盘厂商们自然也有解决办法:掉电时,磁头会借助惯性将缓存中的数据写入零磁道以外的暂存区域,等到下次启动时再将这些数据写入目的地;第三个作用就是临时存储最近访问过的数据。有时候,某些数据是会经常需要访问的,硬盘内部的缓存会将读取比较频繁的一些数据存储在缓存中,再次读取时就可以直接从缓存中直接传输。
缓存容量的大小不同品牌、不同型号的产品各不相同,早期的硬盘缓存基本都很小,只有几百KB,已无法满足用户的需求。2MB和8MB缓存是现今主流硬盘所采用,而在服务器或特殊应用领域中还有缓存容量更大的产品,甚至达到了16MB、64MB等。
大容量的缓存虽然可以在硬盘进行读写工作状态下,让更多的数据存储在缓存中,以提高硬盘的访问速度,但并不意味着缓存越大就越出众。缓存的应用存在一个算法的问题,即便缓存容量很大,而没有一个高效率的算法,那将导致应用中缓存数据的命中率偏低,无法有效发挥出大容量缓存的优势。算法是和缓存容量相辅相成,大容量的缓存需要更为有效率的算法,否则性能会大大折扣,从技术角度上说,高容量缓存的算法是直接影响到硬盘性能发挥的重要因素。更大容量缓存是未来硬盘发展的必然趋势。
篇5:WebSphere Application Server动态高速缓存技术教程
开始之前
关于本教程
通过本教程,您可以了解如何使用 WAS 的动态高速缓存服务缓存 Servlet 对象,JSP 页面,WebSphere Command 对象;如何在 cachespec.xml 文件中进行配置或者编写唯一标识的生成类实现根据业务需要缓存同一个对象的不同版本,本教程也涉及直接操作动态缓存和使用 Cache Monitor 监控和管理动态高速缓存。
目标
完成本教程后,您应该了解如何:
配置 cachespec.xml 缓存 Servlet 或 JSP 页面
在 cachespec.xml 中配置缓存规则缓存同一个 Servlet 对象或 JSP 页面的不同版本
编写 WebSphere Command 对象
编写生成缓存唯一标识的 Java Class
直接操作动态高速缓存
安装并使用 Cache Monitor
先决条件
要成功使用本教程,您应熟悉 Java 开发的一般知识,特别是具备服务器端 Java 开发的基础。您应了解 WAS 和 Rational® Application Developer for WebSphere® Software (下面简称 RAD) 的一般概念,并熟悉部署描述符和 WAR 存档等基本的 J2EE 概念,对 WAS 的配置和管理有所了解。
系统要求
您需要下载下列必需的(免费)应用程序,才能使用本教程及其中的示例代码:
IBM™ Rational® Application Developer for WebSphere® Software
IBM™ WebSphere® Application Server 6.1 或者以上版本
如果读者无法获得 RAD 和 WAS 的正式版本,可以考虑下载和使用 RAD 的试用版 和 WebSphere® Application Server for Developers。如果读者不想下载 RAD 的试用版,作者也提供了可供直接编译的源代码包 DynaCacheTutorial.zip,下载并将其解压缩到某个目录,修改 was.properties 文件中 was.app.dir 的值为的 WAS 的目录,然后运行“ant war”进行编译。使用这种方法用户可以用您所喜欢的编辑器直接修改相应的代码并进行编译安装。
硬件配置应包括:支持上面列出的软件,并且至少具有 2GB 内存(推荐为 3GB)。本教程中的说明基于 Microsoft® Windows® 操作系统,但也适用于 Linux® 和 UNIX® 操作系统。
引言
WAS 动态高速缓存概述
高速动态缓存做为 WAS 的一个扩展服务从 5.0.2 开始就被包含在从 WAS Express 开始的各个版本。该服务可以缓存 WebSphere Command 对象、Servlet 和 JavaServer Pages(JSP)的输出,从而明显提升应用程序性能。动态高速缓存服务位于应用程序服务器 Java 虚拟机(JVM)内部,通过拦截对可高速缓存对象的调用隐式的实现了对缓存的调用,程序员甚至意识不到它的存在。图 1 展示了缓存命中和不命中的两种情况下系统的流程,如果缓存命中将避免执行后面复杂的商业逻辑,业务逻辑的执行时间大大缩短了。
图 1. 缓存命中和失败
在 WAS 中开启 Servlet cache
默认情况下 WAS 是开启动态高速缓存服务的,用户可以按照以下的步骤检查该服务是否开启并开启 Servlet 缓存
登录 WAS 的管理控制台,如 localhost:9060/ibm/console
输入管理员的用户名和密码
单击 Servers >WebSphere application servers >server1,在 Configuration 选项卡下面选择 Container Services >Dynamic cache service,如 图 2
确保在 图 3“Enable service at server startup”被选中(在 WAS 7 则没有这个选项,用户是不能够关闭动态高速缓存服务的)
图 2. 打开动态高速缓存服务
图 3. 确认动态高速缓存已被开启
然后确认 Servlet 的缓存被开启了,默认情况下 WAS 是不开启该选项的,依照如下的步骤启动该功能
单击 Servers >WebSphere application servers >server1,在 Configuration 选项卡下面选择 Web Container Settings >Web container
在 图 4 选中“Enable Servlet caching”,然后选择“OK”按钮
在接下来的界面选择“Save”连接,保存修改
图 4. 开启 Servlet 缓存
在本文中我们会创建一个简单的 Web 应用,对显示的时间进行缓存。该例子会有 Servlet,JSP,WebSphere Command 等多个版本
创建 WEB 工程
按照以下步骤创建一个 WEB 工程
启动 Rational Application Developer for WebSphere
创建一个 Dynamic Web Project,以 DynaCacheTutorial 为工程的名字,将 Dynamic Web Module version 选择为 2.4,这样编译的 WAR 就可以在 WAS 6.1 中部署了
同时创建一个名为 DynaCacheTutorialEAR 的 EAR 工程,将 EAR version 设为 1.4,同样这样确保可以部署到 WAS 6.1 上面
将 DynaCacheTutorial 加到 DynaCacheTutorialEAR 工程中去
将 DynaCacheTutorialEAR 部署到 WAS 上确保运行没有错误
缓存 Servlet
普通的 Servlet
在本节开始以前请确保您按照 在 WAS 中开启 Servlet cache 一节的方法启用了 Servlet 缓存。下面从一个简单的 Servlet 例子开始介绍如何使用动态高速缓存,依照下面的的步骤创建一个 Servlet。
选择 File >Other >Web >servlet
在接下来的界面 Java package 填为 demo,Class name 填为 UnCachedServlet,选 Next 进入下一个界面
在接下来的界面接受缺省的设置(Name:UnCachedServlet,URL Mappings:/UnCachedServlet),选 Next 进入下一个界面
在接下来的界面中取消 doPost 选中,选 Finish 结束设置
将 doGet() 方法替换如 清单 1 所示
清单 1. 不被缓存的 Servlet - UnCachedServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType(“text/html”);PrintWriter ut = response.getWriter();out.println(“out.println(”“);out.println(” A Servlet“);out.println(” “);out.println(” The Current time is “ + new java.util.Date() + ”“);out.println(” “);out.println(”“);out.flush();out.close();}清单 1 是一个非常简单的在页面上显示当前时间的 Servlet,在 WAS 部署成功以后,在浏览器的地址栏中输入如下的地址 localhost:9080/DynaCacheTutorial/UnCachedServlet,输出可能如 图 5(当然您得到的是当前的时间)
图 5. 未被缓存的 Servlet 的输出
每当您刷新这个页面的时候,输出的时间应该如预期的总是返回当前时间。
被缓存的 Servlet
接着创建另一个 Servlet(demo.CachedServlet,Servlet 名字为 CachedServlet,映射为 /CachedServlet),并尝试缓存其内容,将其 doGet() 方法替换如 清单 2
清单 2. 被缓存的 Servlet - CachedServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType(”text/html“);PrintWriter ut = response.getWriter();out.println(”out.println(“”);out.println(“ A Servlet”);out.println(“ ”);out.println(“The time will not change unless time is out or cache is cleared
”);
out.println(“ The time is ” + new java.util.Date() + “
”);
out.println(“ ”);
out.println(“”);
out.flush();
out.close();
System.out.println(this.getClass().getName() + “.doGet() run!!!”);
}
在 WAS 上面部署后在浏览器的地址栏中输入如下的地址 localhost:9080/DynaCacheTutorial/CachedServlet,输出可能如 图 6
图 6. 被缓存的 Servlet 的输出
但是当再次刷新的时候,时间仍然是马上发生变化的,缓存显然并没有起作用。缓存不是无缘无故的就发生了的,是需要进行配置。下面做最重要的步骤,在 WebContent/WEB-INF 下创建一个名为 cachespec.xml 的文件,其内容如 清单 3
清单 3. 在 cachespec.xml 指定 Servlet 的缓存策略
false
false
0
手工重新部署或者等待 RAD 自动重新部署以后再次刷新 localhost:9080/DynaCacheTutorial/CachedServlet,打印出来的时间竟然神奇般的凝固不变了。但超过五分钟以后刷新时间就会发生变化。就这样通过创建了一个 XML 文件并在其中指定需要缓存的 Servlet 的名字和时间就完成了 Servlet 的缓存了,而代码本身没有任何的改变。这就是动态高速缓存强大的地方,它尽可能的采取了非侵入的方法不会污染已有的代码了。
缓存 JSP
Servlet 现在已经很少被用来产生页面,下面介绍如何在动态高速缓存中缓存 JSP 页面。依下面的步骤创建一个 JSP 页面
选择 File >Others
在文件类型中选择 Web Page,选择 Next 进入下一个界面
选择 JSP,文件名为 cached.jsp,选择 Finish 完成设置
将 JSP 页面的主体部分的替换如 清单 4 所示
然后在 cachespec.xml 中添加如 清单 5 所示的内容
清单 4. 被缓存的 JSP
The time will not change unless time is out or it's cleared
The time is: <%= new java.util.Date() %>
<% System.out.println(this.getClass().getName() + “ Run Business Logic”); %>
清单 5. 在 cachespec.xml 缓存 JSP
false
false
0
通过浏览器访问 localhost:9080/DynaCacheTutorial/cached.jsp,得到的结果和上一章 Servlet 一样的缓存效果效果。在 WAS 中缓存 JSP 就是如此的简单。
缓存不同的内容
前面无论是 Servlet 还是 JSP 总是输出同样的结果,实际应用中这种情况很少出现;往往是根据不同的输入参数,输出不同的结果。下面就模拟这样场景,根据不同的用户缓存不同的时间。首先在 WebContent 目录下创建两个 parameter.jsp 和 embed.jsp 两个 JSP 文件,内容分别如 清单 6 和 清单 7,然后在 cachespec.xml 中添加如 清单 8 的内容。请注意缓存的是 embed.jsp 而不是 parameter.jsp。
清单 6. parameter.jsp
<%@page language=“java” contentType=“text/html; charset=ISO-8859-1”pageEncoding=“ISO-8859-1”%><%@ taglib uri=“java.sun.com/jsp/jstl/core” prefix=“c”%>parameter.jsp<%
if (request.getParameter(“submit”) != null) {
request.setAttribute(“name”, request.getParameter(“name”));
} else {
request.setAttribute(“name”, “WAS”);
}
%>
Input Your Name:
“/>
<% if (request.getParameter(”submit“) != null) { %>
The current time is: <%=new java.util.Date() %>
<% } %>
清单 7. embed.jsp
<%=request.getParameter(”name“) + ”'s cached time is: “%><%= new java.util.Date() %><% System.out.println(”In “ + request.getParameter(”name“) + ” embed.jsp“);%>清单 8. embed.jsp 的 JSP 的缓存策略
false
false
0
在浏览器中输入 localhost:9080/DynaCacheTutorial/parameter.jsp,分别输入 WAS 和 Rational,点击“Submit”按钮,您会发现 WAS 和 Rational 缓存的时间各不相同,且相互不影响。先观察一下 Cache Monitor 的输出(Cache Monitor 的安装和使用可以参见 Cache Monitor 一章),该输出类似于 图 7,明显 embed.jsp 有两个不同的页面缓存。观察其唯一标识(Cache ID)的差别就是 name=?。动态高速缓存是如何做到这个的?关键在于 cachespec.xml 中缓存策略使用了 request 中的名为 name 的参数做为缓存唯一标识。从这个例子很容易将其扩展到如下两种应用环境:
实现一个页面根据不同的输入参数缓存不同的结果
只缓存页面的一个部分,对于 Master-Detail 页面结构的设计非常有用
图 7. 同一个页面的多个缓存版本
读者可以把动态高速缓存看成一个复杂的 hashtable,可以通过唯一标识定位到缓存的一个对象。
Java Command 对象
有时候要缓存不仅仅是 Servlet 和 JSP 页面,用户还想缓存一个 Java 类的调用结果。WAS 提供了一种 command 的模式帮助用户缓存 Java 对象。使用该模式前用户必须提供所有的前置条件,然后运行 execute() 方法,该方法会处理缓存的命中,最后获取所需的数据。如 图 8 所示,要取得股票的价格,用户必须先调用 setSymbol() 提供股票代码,然后运行取价格的逻辑 execute(),最后调用 getPrice() 获得价格。下面是编写 command 对象的一般步骤
定义一个 Java 类扩展 com.ibm.websphere.command.CacheableCommandImpl 类并实现相应的接口
编写 setXXX() 方法用于设置前置条件
重载 isReadyToCallExecute() 方法检查前置条件是否完备
重载 performExecute() 方法执行真正的逻辑
选择是否重载 setOutputProperties() 方法只从动态高速缓存中取回部分属性
编写 getXXX() 方法返回所需要的结果
图 8. command 模式
下面用 command 模式实现前面 parameter.jsp 的功能。首先定义如 清单 9 的接口,实现类类似于 清单 9
清单 9. command 的接口
package demo;import java.util.Date;public interface DateService {String getUser();Date getCached();Date getUnCached();}清单 10. DateService 的实现
package demo;import java.util.Date;import com.ibm.websphere.command.CacheableCommandImpl;import com.ibm.websphere.command.TargetableCommand;public class DateServiceCommand2 extends CacheableCommandImpl implements DateService{private static final long serialVersionUID = 1L;@Overridepublic boolean isReadyToCallExecute() {return user != null;}@Overridepublic void performExecute() throws Exception {// Do nothing here}// Try to comment this function to see the result@Override
public void setOutputProperties(TargetableCommand paramTargetableCommand) {DateServiceCommand2 command = (DateServiceCommand2) paramTargetableCommand;cached = command.cached;}@Overridepublic String toString() {return String.format(”}
public Date getCached() {
return cached;
}
public Date getUnCached() {
return unCached;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
private String user = null;
private Date cached = new Date();
private Date unCached = new Date();
}
在 cachespec.xml 中添加如 清单 11 的策略用于缓存前面编写的 command 对象,
清单 11. 缓存 command 的策略
0
编写如 清单 12 的 JSP 文件,调用该 command 对象
清单 12. 使用 command 的 JSP 页面
<% if (request.getParameter(”submit“) != null) {request.setAttribute(”name“, request.getParameter(”name“));} else {request.setAttribute(”name“, ”WAS“);}%>Input Your Name
”/>
<%
if (request.getParameter(“submit”) != null) {
String user = request.getParameter(“name”);
demo.DateService service = new demo.DateServiceCommand2();
((demo.DateServiceCommand2) service).setUser(user);
try {
((demo.DateServiceCommand2) service).execute();
%>
Current time is: <%=service.getUnCached() %>
<%=service.getUser()+“'s cached time is:” %><%=service.getCached() %>
<%
}
catch (Exception ex) {
ex.printStackTrace();
}
}
%>
使用 Java 代码产生唯一标识
有时候唯一标识是无法通过简单的配置产生,比如需要根据登录的用户所在的地区进行缓存。对于这种情况动态高速缓存提供了使用 Java 代码生成唯一标识的方法。用户需要一个 Java 类来实现 Servlet 的 com.ibm.websphere.servlet.cache.IdGenerator 接口,如果是 Web Service 则实现 com.ibm.websphere.webservices.IdGenerator 接口,command 类则是 com.ibm.websphere.command.CommandIdGenerator 接口。无论是那种方法用户都需要实现 getId() 这个方法,返回一个 String 值表示合法的标识,如果不希望被缓存则返回 null。清单 13 是 command3 类的标识生成类,清单 13 则是在 cachespec.xml 中使用该唯一标识生成类。
清单 13. command3 的 idgenerator 类
package demo;import java.util.ArrayList;import com.ibm.websphere.command.CacheableCommand;import com.ibm.websphere.command.CommandIdGenerator;public class DateServiceIdgenerator implements CommandIdGenerator {@SuppressWarnings(“unchecked”)public String getId(CacheableCommand arg0, ArrayList arg1) {DateService command = (DateService) arg0;if (command != null)return command.getUser();elsereturn null;}}清单 14 是 command3 缓存策略
清单 14. 用 idgenerator 缓存 command
0
更详细的内容可以参考附件中的 command3.jsp 。标识生成类同样也适用于 Servlet、JSP 等的缓存。
直接对动态缓存编程
有时候用户不希望使用这么复杂的编程模型,而是希望直接将数据存入动态高速缓存。这时可以使用 com.ibm.websphere.cache.DistributedMap 接口来操作动态高速缓存中的一个实例,用 get() 方法获得缓存对象,用 put() 方法将对象放入缓存,用 invalidate() 方法清除缓存。
获得缓存示例
有两种方法获得 DistributedMap 的一个实例。
调用 com.ibm.websphere.cache.DynamicCacheAccessor 类的静态方法 getDistributedMap() 获得 Servlet 缓存实例,清单 15 演示了这种用法,但是该方法已经被声明为 Deprecated,不建议使用
如 清单 15 通过 JNDI 查询获得缓存实例
清单 15 和 清单 16 同时也演示了 DistributedMap 的一些常用方法。
清单 15. directuse1.jsp 用静态方法获得缓存实例
<% com.ibm.websphere.cache.DistributedMap cache= com.ibm.websphere.cache.DynamicCacheAccessor.getDistributedMap();java.util.Date time = null;String key = “Cached Time in baseCache”;if (!cache.containsKey(key)) {time = new java.util.Date();cache.put(key, time, 0, 60, 0, com.ibm.websphere.cache.EntryInfo.NOT_SHARED, null);}request.setAttribute(“cached”, cache.get(key));request.setAttribute(“uncached”, new java.util.Date());%>清单 16. directuse2.jsp 通过 JNDI 查询获得缓存实例
<% com.ibm.websphere.cache.DistributedMap cache = null;javax.naming.InitialContext ic = new javax.naming.InitialContext();cache = (com.ibm.websphere.cache.DistributedMap)ic.lookup(“services/cache/distributedmap”);java.util.Date time = null;String key = “Cache From JNDI”;if (!cache.containsKey(key)) {time = new java.util.Date();cache.put(key, time, 0, 60, 0, com.ibm.websphere.cache.EntryInfo.NOT_SHARED, null);}request.setAttribute(“cached”, cache.get(key));request.setAttribute(“uncached”, new java.util.Date());%>直接操作动态高速缓存对象则不需要在 cachespec.xml 做任何配置。WAS 会重新载入 cachespec.xml,然后刷新相应的缓存策略,这样用户可以在系统运行的时候动态调整缓存策略。直接操作缓存不会利用该特性了,相对不是那么方便,建议尽可能不要直接操作动态高速缓存。
清除缓存
动态高速缓存只有一种失效模式:定时失效。这样就带来了一个问题,如果被缓存的数据时效要求很高,如股票的价格,那么如果缓存的价格和当前价格不一致就会造成巨大的损失,要是可以及时清除缓存就可以避免这类问题。清单 17 展示了如何清除一条缓存。清除缓存是比较容易的,关键是找到合适的清除缓存的时机,在缓存命中率和数据的时效性中得到一个最佳平衡。
清单 17. invalidate.jsp 演示如何清楚缓存
<% com.ibm.websphere.cache.DistributedMap cache =com.ibm.websphere.cache.DynamicCacheAccessor.getDistributedMap();java.util.Date time = null;String key = “Cached Time in invalidate.jsp”;if (request.getParameter(“invalidate”) != null) {cache.invalidate(key);}if (!cache.containsKey(key)) {time = new java.util.Date();cache.put(key, time, 0, 300, 0, com.ibm.websphere.cache.EntryInfo.NOT_SHARED, null);}request.setAttribute(“cached”, cache.get(key));request.setAttribute(“uncached”, new java.util.Date());%>This page demo how to invlidate a cache item
Cache Monitor
安装 Cache Monitor
WAS 提供了一个非常强大工具 Cache Monitor 帮助诊断和分析动态高速缓存的使用。该工具安装包位于 AppServer 的 installableApps 目录下,文件名为 CacheMonitor.ear。依照下面的步骤进行安装
登录 WAS 的管理控制台,如 localhost:9060/ibm/console
输入 WAS 管理员的用户名和密码
选择 Applications >New Application >New Enterprise Application
在 Path to the new application 选择 Local file system,通过“Browse...”按钮定位到 CacheMonitor.ear 的路径
在下一个界面选择“Fast Path - Prompt only when additional information is required.”
在“Step 1: Select installation options”接受默认值,选择 Next 按钮进入下一步
在“Step 2: Map modules to servers”选择 server1,选择 Next 按钮进入下一步
在“Step 3: Summary”选择 Finish 按钮结束安装
在接下来的界面选择 Save 连接保存设置
安装 Extend Cache Monitor
默认安装的 Cache Monitor 提供的功能比较有限,读者通过下载 Extend Cache Monitor 扩展其功能,具体步骤如下
下载 Extend Cache Monitor,WAS 7.0、6.1、6.0 对应的版本各不相同,请根据您的 WAS 的版本选择
登录 WAS 的管理控制台,如 localhost:9060/ibm/console
输入 WAS 管理员的用户名和密码
选择 Applications >Application Types >WebSphere enterprise applications
在如 图 9 所示的界面,选择 Dynamic Cache Monitor,点击 Update 按钮
根据下载站点上的提示进行安装
图 9. 安装 Extend Cache Monitor
设置 Cache Monitor 的访问控制
现在还无法使用 Cache Monitor,还需要按照下面的步骤设置访问控制
在 图 9 中选择 Dynamic Cache Monitor,对其进行访问控制设置
在接下来的界面中选择 Detail Properties >Security role to user/group mapping,点击进入配置界面
可以参考 图 10 选择 Everyone 有管理员权限,这样匿名用户也可以使用 Cache Monitor 了(在生产环境中不建议如此设置)
选择 OK 按钮推出,在接下来的界面选择 Save 保存设置
图 10. 设置访问控制
使用 Cache Monitor
在使用 Cache Monitor 以前请确保该应用已经启动。在浏览器地址栏中输入 localhost:9080/cachemonitor,会出现如下 图 11 的界面
图 11. Cache Monitor
然后访问 localhost:9080/DynaCacheTutorial/CachedServlet 和 localhost:9080/DynaCacheTutorial/cached.jsp 两个连接。接着切换到 Cache Monitor 界面,看到和 图 12 类似的结果。点击“/DynaCacheTutorial/cached.jsp:requestType=GET”连接进入如 图 13 所示的界面,在这里我们看到了内容和 localhost:9080/DynaCacheTutorial/cached.jsp 是一致的,这个功能很有利于调试。另一个有用的调试功能是点击每一条被缓存内容前面的 Invalidate 按钮清除这条内容。
图 12. Cache Monitor 显示 Servlet 和 JSP 被缓存了
图 13. 被缓存的 JSP 的内容
Cache Monitor 还有一个重要的作用就是分析缓存的效率,和所有的缓存的一样我们期望缓存的命中率越接近100% 越好,计算方法是用 图 12 中的“Cache Hits”减掉“Cache Misses”以后的值除以“Cache Hits”,如 图 14 中缓存命中率为 99%,一个非常理想的值。“Used Entries”表示当前缓存被使用的情况,当缓存被填满的时候,如果没有设置“Disk Offload”,那么低优先级级的缓存项就会被从动态高速缓存中剔除出去。
图 14. 缓存命中率的统计
cachespec.xml 的结构
在前面的例子中无论是 Servlet 还是 JSP 页面本身没有什么特殊的地方,关键在于 cachespec.xml 文件,它神奇的指定了缓存的策略。本章将重点讲解一下该文件核心部分的结构,该文件中每一条 cache-entry 均对应这一个 Servlet、JSP 或者 WebSphere command。下面介绍一下几个关键的域
class 指定需要缓存的对象,合法的取值可以是 command,Servlet,webservice,JAXRPCClient,static,portlet
name 指定被缓存的对象的名字,不同的对象取值类型是不同的,Servlet 和 JSP 取 URI,command 对象取类的全名,portlet 取 portlet 名字
property,建议 store-cookies 和 save-attributes 为 false,这样可以减少由于序列化失败导致在集群中缓存复制失败的可能性
cache-id 指定对象的不同调用生成唯一标识。这些标识是由用户编写的定制 Java 代码或每个高速缓存条目的高速缓存策略中定义的规则构建产生,用户可以为一个对象指定多个标识生成规则。如果高速缓存标识生成规则产生不了有效的标识,对象就不被缓存。每个 cache-id 元素都定义高速缓存对象的规则,并且它是由子元素组件(timeout、inactivity、priority、property、idgenerator 和 metadatagenerator)组成的。更多的细节参考信息中心。后面会重点介绍 idgenerator。
结束语
您可以选择直接部署编译好的 war 包,并在浏览器中输入 localhost:9080/DynaCacheTutorial,里面有到各个页面的快速连接,这样您就可以很容易体会一下动态高速缓存的强大。
通过本教程您学习了如何使用 WAS 的动态高速缓存,感受了其强大的功能和使用的便利。如果使用得当可以让应用系统的性能提升事半功倍。但是读者如需要知道更多的关于动态高速缓存的内容请参考后面提及的参考资料。
下载:
www.ibm.com/developerworks/cn/websphere/library/techarticles/1008_shenhf_wascache/1008_shenhf_wascache.html?ca=drs-
篇6:一级期刊目录
公布拟修订的一级和学报级学术期刊名录
一、国内一级学术期刊名录
1 人文、社会科学
1
中国社会科学(中、英文版)*
30
经济学家
59
北京体育大学学报
2 3 4
中国社会科学评论(香港)* 新华文摘(全文)* 中国人民大学报刊复印资料
(全文复印) 学术月刊 马克思主义研究* 哲学研究* 自然辩证法研究 自然辩证法通讯 心理学报* 心理科学 世界宗教研究* 统计研究 社会学研究* 社会科学战线 中国人口科学 民族研究 政治学研究* 国际问题研究
求是 中共党史研究 台湾研究 法学研究* 中国法学 中外法学 法学评论 经济研究* 中国经济史研究 数量经济技术经济研究
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
世界经济 会计研究 中国农村经济 农业经济问题 中国土地科学 中国工业经济 经济理论与经济管理
财贸经济 金融研究 国际金融研究 管理世界* 科学学研究 科研管理 新闻与传播研究*
中国出版 中国图书馆学报* 图书情报工作 大学图书馆学报 情报学报 档案学研究 高等教育研究* 教育研究 比较教育研究 教育发展研究 中国高教研究 高等工程教育研究
体育科学* 中国运动医学杂志
60 61 62 63 64 65 66 67 68
上海体育学院学报 中国体育科技 中国语文* 古汉语研究 语言研究 外语教学与研究*
外国语 中国翻译
当代语言学(原为:国外语言
学) 现代外语 外国文学评论* 外国文学 外国文学研究 文学评论* 文艺研究* 文学遗产 文艺理论研究 中国现代文学研究丛刊
美术研究 中国音乐学 历史研究* 中国史研究近代史研究 世界历史 考古学报 文史(中华书局) 敦煌研究
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
注:带*号的学术期刊为人文社科权威级学术期刊
2 自然科学
1 2 3 4 5 6 7 8 9
中国科学(A-E辑)(中、英文
版)
科学通报(中、英文版) 自然科学进展(中、英文版) 浙江大学学报(英文版) 清华大学学报(英文版)
数学学报 数学年刊(A、B辑) 应用数学学报
29 30 31 32 34 35 36
中国物理快报(英文版)
无机材料学报 材料研究学报(材料科学进
展) 化学物理学报 催化学报 化学学报(中、英文版)
物理化学学报 分析化学
59 60 61 62 63
动物学报 植物学报(中、英文版)
生物物理学报 生物化学与生物物理学
报 微生物学报
上海交通大学学报(英文版) 33
56 57 58
遥感学报 生理学报 遗传学报
28
红外与毫米波学报
55
地理学报
10 11 12 13 14 15 16 17 计算数学 数学进展 系统科学与数学 高校应用数学学报 应用数学与力学(英文版)
力学学报 固体力学学报 空气动力学学报
37 38 39 40 41 42 43 44 高分子学报(中、英文版)
无机化学学报 有机化学 高等学校化学学报 中国稀土学报 中国化学快报(英文版)
天文学报
地球物理学报(中、英文
64 65 66 67 68 69 70 71 实验生物学报 细胞生物学杂志 生态学报 古生物学报 植物分类学报 动物分类学报 兽类学报 生物工程学报 18 航空学报
45 19 水动力学研究与进展(英文
46 版)
20 物理学报(中、英文版)
47 21 光学学报 48 22 半导体学报 49 23 中国激光(中、英文版) 50 24 金属学报(中、英文版)
51 25
声学学报 52 26 高能物理与核物理(中、英文53 版)
27 系统工程理论与实践(中、英文
54
版)
1 低温工程 24 2 复合材料学报 25 3 真空科学与技术学报
26 4 摩擦学学报 27 5 计量学报 28 6 传感技术学报 29 7 煤炭学报(中、英文版)
30 8 石油学报 31 9 钢铁
32 10 中国有色金属学报 33 11 机械工程学报(中、英文版)
34 12 中国机械工程 35 13 仪器仪表学报 36 14 振动工程学报 37 15 兵工学报
38
16 工程热物理学报(中英文版)
39 17 内燃机学报
18
动力工程
40
版) 地震学报 气象学报 大气科学 地球化学 地质科学 地质学报 矿物学报 海洋学报 海洋与湖沼 经济地理
3 工学
电力系统自动化 电工技术学报 电子学报 光子学报 光电工程 通信学报 电子科学学刊 电信科学 微波学报 电路与系统学报 计算机学报(中、英文版)
自动化学报 软件学报 计算机研究与发展 控制理论与应用
计算机辅助设计与图形学
学
报
模式识别与人工智能
72 生物多样性 73
中国生物化学与分子生
物
学报 74 遗传 75 环境科学 76 自然灾害学报 77 硅酸盐学报 78 空间科学学报 79
海洋工程
44
高等学校化工学报(高校
化
学工程学报)(中、英文版) 45 中国腐蚀与防护学报
46 燃料化学学报 47 纺织学报 48 中国食品学报 49 建筑结构学报 50 建筑学报 51 岩土工程学报 52 土木工程学报 53 岩石力学与工程学报
54 城市规划 55 水利学报 56 水利发电学报 57 测绘学报 58 汽车工程 59 中国公路学报 60
中国环境科学
19 内燃机工程 20 热力发电 21 太阳能学报 22 核技术 23
中国电机工程学报
1 中华劳动卫生职业病杂志 2 中华预防医学杂志 3 中华流行病学杂志
4 营养学报 5 中国中西医结合杂志 6 中国中药杂志
7 中华微生物学和免疫学杂志8 病毒学报 9 中国病理生理杂志 10 中国寄生虫学与寄生虫病杂
志 11 解剖学报 12 中华医学遗传学杂志 13 中华放射学杂志 14 中华医学检验杂志 15 中华放射医学与防护杂志
16 中华护理杂志 17
中华超声影像学杂志
1 土壤学报 2 土壤圈(英文版) 3 水土保持学报 4 农业工程学报 5 农业机械学报 6 中国农业科学 7 作物学报 8 中国水稻科学 9 核农学报 10 棉花学报 11 植物营养与肥料学报
12
植物生理学报
41 中国图象图形学报 42
计算机科学与技术学报
(英
文版)
43
化工学报(中、英文版)
4 医学
18 中华内科杂志 19 中华心血管病杂志 20 中华血液学杂志 21 中华结核和呼吸杂志 22 中华消化杂志 23 中华肾脏病杂志 24 中华传染病杂志 25 中华内分泌代谢杂志 26 中华外科杂志 27
中华泌尿外科杂志
28 中华骨科杂志 29 中华神经外科杂志 30 中华整形外科杂志 31 中华胸心血管外科杂志
32 中华麻醉学杂志 33 中华创伤杂志 34
中华妇产科杂志
5 农学
13 植物病理学报 14 植物保护学报 15 中国生物防治 16 园艺学报 17 林业科学 18 畜牧兽医学报 19 中国畜牧杂志 20 中国兽医学报 21 中国预防兽医学报
22 水产学报 23
水生生物学报
61 环境科学学报(中、英文
版)
62
中国生物医学工程学报
(中、英文版) 63
宇航学报
35 中华儿科杂志 36 中华小儿外科杂志 37 中华肿瘤杂志 38 中华病理学杂志 39 中华神经科杂志 40 中华精神科杂志 41 中华皮肤科杂志 42 中华眼科杂志 43 中华耳鼻咽喉科杂志 44
中华口腔医学杂志
45 药学学报 46 中国药理学报 47 中国药学杂志 48 药物分析杂志 49 中国药理学与毒理学杂志50
中华医学杂志(中、英文
版)
24 植物生态学报 25 菌物系统(真菌学报) 26 应用生态学报 27 昆虫学报(中、英文版)
28 昆虫分类学报 29 中国粮油学报 30 茶叶科学 31 蚕业科学 32 自然资源学报 33 生物数学学报 34
农业生物技术学报
二、学 报 级
1 清华大学学报(自然科学版)、(哲学社会科学版) 2 北京大学学报(自然科学版)、(哲学社会科学版)
3 浙江大学学报(工学版)、(农业与生命科学版)、(理学版)、(人文社会科学版)、(医学版) 4 复旦大学学报(自然科学版)、(社会科学版)
5 南京大学学报(自然科学版)、(哲学、人文科学、社会科学版) 6 西安交通大学学报 7 上海交通大学学报 8 中国人民大学学报 9 中国医学科学院学报 10 中国农业大学学报 11 学位与研究生教育
篇7:基于片内WISHBONE总线的高速缓存一致性实现
基于片内WISHBONE总线的高速缓存一致性实现
摘要:基于IP可重用的设计方法,利用WISHBONE总线协议,把两个已成功开发出的具有自主知识产权的THUMP内核在一个芯片上,实现了片上多处理器FPGA。开发重点是实现基于片内WISHBONE总线的高速缓存一致性协议。关键词:WISHBONE总线片上多处理器高缓一致性SOCIP
清华大学嵌入式微处理器芯片设计为国家重点863项目,单芯片多处理器设计为项目的一个延伸。单芯片多处理器是提高处理器性能的有效途径,具有低耦合度、粗粒度并行性的主要特点。清华大学已成功开发出具有自主知识产权的MIPS4Kc架构的32位微处理器--THUMPl07。该处理器具有内核性能高、面积小、功耗低的优点。使其经过裁减非常适合作为单芯片多处理器的内核。
本次单芯片多处理器的设计将两个Thumpl07内核集成在一个芯片上,两个内核处于完全对等地位,实现进程级的粗粒度并行。由于已经具有可以利用的内核,开发的重点就集中在高速缓存(Cache)一致性的实现上。芯片采用了基于内部总线写更新监听的高速缓存一致性协议,具有控制逻辑简单、可扩展性好的特点。内部总线采用适合片上系统通信、高可配置性的WISHBONE总线。使用该片上总线有效地解决了IP核可移植性、设计复用的问题[2l]。
1WISHBONE总线
WISHBONE最先由Silicore公司提出,现在被移交给OpenCores组织维护。由于其开放性,现在已有不少用户群体。特别是一些免费的IP核,大多数都采用WISH-BONE标准。该总线结构具有公用的接口规范方便结构化设计,有效地解决了IP核可移植性、设计复用的问题。
WISHBON耳总线为半导体内核提供了可配置的互连方式,能够使各种内核互连起来形成片上系统;WISH-BONE总线具有很强的兼容性,提高了设计的可重用性;WISHBONE总线的接口独立于半导体技术,其互连方式既可以支持FPGA设备,也可以支持ASIC设备;WISHBONE总线协议简单、易懂。
WISHBONE总线是一种主/从接口架构的总线技术,如果具有有效的仲裁机制,总线系统可以支持多个ne/从接口;WISHBONE总线的可配置性主要体现在支持点到点、共享总线、数据流、交叉开关型的互连方式;WISHBONE总线协议既包含了一种容易使用、可靠性高、易测试、所有总线事务都可以在一个时钟周期内协同的同步传输协议,也包含了标准时钟周期的异步传输协议;WISHBONE总线的同步传输协议可以工作在一个大范围的时钟频率上。这样WISHBONE总线接口既可以与内核时钟周期同步,也可与不同的目标设备同步,时序都非常简单。此外,WISHBONE总线还具有如下特点:
・简单、紧凑的硬件逻辑接口,需要更少的逻辑门;
・支持流行的单字读/写、块读/写、读-修改-写的总线协议;
・可调整的总线和操作数位宽;
・支持大端(bigendian)和小端(1ittleendian)两种数据表示方法;
・握手协议能够控制数据传输速率;
・支持单周期数据传输;
・从接口的部分地址解码;
・根据系统需要,用户可自定义增加接口信号;
・系统包含多个MASTER接口时,用户可以自定义总线仲裁方式与算法。
图2
2实现方案
单芯片多处理器的每个内核都有分离的16KB指令高速缓存(1Cache)和16KB数据高速缓存(DCache);指令高速缓存和数据高速缓存都采用两路组相联的映射方式;每块都包含8个字;采用虚拟地址定位、物理地址比较的寻址方法;替换方式为LBU(最近最少使用替换)。
指令高速缓存不涉及一致性问题,不多做说明。数据高速缓存采用基于监听总线的写更新一致性协议Dragonl[3]
协议状态说明见表1。
表1协议状态
状态
说明
干净独占(E)只有一个缓存有这一存储块的拷贝,并且还没有被修改(主存状态也有效)。干净修改(SC)潜在的两个或多个缓冲有这一存储块,主存不一定是最新的。共享已修改(SM)潜在的两个或多个缓冲有这一存储块,主存不是最新的`。该块在被替换时,要更新主存(写回)。一个存储块在一定时间内只能在一个缓冲内共享已修改状态。独点已修改(M)存储块的内容已经被修改,并且只在该存储块里,发生替换需要更新主存的内容。
确定一致性协议后,单芯片多处理器的数据高速缓存单元整体设计见图1。
片内总线采用WISHBONE总线共享型连接,每个内核的数据高速缓存的控制单元都包含WISHBONE总线的一个主接口(MASTER)和一个从接口(SLAVE);数据总线为32位;地址总线为33位,其中最高位是两个从接口的选择位;片内总线采用预先同步传输协议;仲裁方式为轮换型;片外总线接口与广泛应用的工业标准SYSAD系统总线兼容。
在UNCAHCE空间发生的读写操作,直接访问外部总线,与主存通信;在CACHE空间发生的读写操作,过程如下所述:
读缺失:当一个内核的数据高速缓存发生读缺失,由本地主接口通过片内总线向远端数据高速缓存发出读请求,远端从接口通过片内总线应答请求。如果应答有该单元数据,就由远端数据高速缓存调来一个数据块(8个字);如果没有,本地主接口结束片内总线周期,转而访问外部总线,由主存调人数据。
写缺失:内核发生写缺失时,前半部分的操作与读缺失完全一致;只是如果缺失单元是从远端数据高速缓存调来的,由于采用基于写更新的Dragon协议,所以在完成片内总线块传输事务后还要产生一个单字写总线事务,更新远端数据高速缓存单元。
读命中:不会产生任何总线事务。
写命中:如果该单元的原来状态是SC或SM,基于写更新协议,由本地主接口通过片内总线向远端数据高速缓存发出写请求,远端从接口通过片内总线应答请求。如果应答有该单元数据,则通过一个单字写总线事务更新远端数据高速缓存单元;如果没有,结束片内总线周期。
替换:实现写回协议,只有被替换出的单元状态为SM或M状态,才通过外部总线更新主存,其他情况抛弃即可。
注意:完成上述操作后要根据DRAGON协议,更新本地和远端DCahe单元的相关状态。
3总线事务时序分析
由前部分的说明发现在内部总线上可以产生三种类型的总线事务:读缺失时,块传输总线事务;SM或SC状态写命中时,发生单宇写总线事务;写缺失时,先是一个块传输总线事务而后在本地写操作完成后,一个单字写总线事务更新远端的数据高速缓存单元。以下是块传输和单字写总线周期具体的时序分析,下文提到的具体信号其意义可以查阅参考文献[1]。
块传输时序:主接口通过声明CYC_O申请总线的使用权,同时也给出STB_O、CTI_0(010)、WE_O(低电平)和ADR_O;经过若干时钟周期等待后,如果远端从接口给出ACK_I信号,同时给出的SHARE_I信号为低电平(说明远端数据高速缓存没有所需要的数据块,.SHARE_I为自定义的信号),这时主接口忽略DAT-I信号,下一个时钟周期撤销CYC_O信号,结束片内总线周期;如果给出AClI信号的同时,SHARE_I信号为高电平(说明远端数据高速缓存有所需要的数据块),接收DAT-I上的数据;而后7个时钟周期内,每个时钟周期ADR_O数据加4,DAII上的数据根据地址相应地变化,在第7个数据传输的时钟周期CTI_O变为111,告诉远端从接口这是最后一个传输时钟周期,下一个时钟周期:降完成这个总线事务;最后一个时钟周期主接口撤销CYC_O信号,结束片内总线周期。
内块传输时序见图2。
单字写总线周期:主接口通过声明CYC_O申请总线的使用权,同时也给出STB_O、CTI_O(111)、WE_O(高电子)、ADlO和DAT-0;经过若干时钟周期等待后,如果远端从接口给出ACK_I信号,同时给出的SHARE信号为低电子(说明远端数据高速缓存没有所需要的数_I据块),主接口下一个时钟周期撤销CYC_O信号,结束片内总线周期;如果给出ACK_I信号的同时,SHARK-I信号为高电子(说明远端数据高速缓存有所需要的数据块),说明从接口已经用DAT-O上的数据更新了相应的数据单元,下一个时钟周期撤销CYC_O信号,结束片内总线周期。
单字写时序见图3。
块传输总线事务时序图2,单字写总线事务时序图3中WAIT表示主接口等待总线仲裁和从接口的应答,需若干时钟周期,最快的情况下只要一个时钟周期。总线仲裁:如果两个数据高速缓存的主接口同时请求,由仲裁单元决定哪个主接口可以使用片内总线,仲裁的优先级算法是轮换法。数据高速缓存的主接口,在声明CYC_O申请总线后,如果AClI一直是低电平无效,但同时该数据高速缓存从接口的CYC_I信号有效,说明数据高速缓存主接口没有得到总线使用权,主接口撤销CYC_O信号,该数据高速缓存响应从接口的操作,操作完成后,主接口再次声明CYC_O信号请求总线;相反,如果数据高速缓存主接口的ACK_I信号高电平有效,说明得到了总线使用权,可以使用总线。
综上所述,片内总线采用WISHBONE总线地址增量的传输方式,与内核时钟同步,最快可以在9个时钟周期从另一个数据高速缓存调来一个块(8个宇)的内容,可在2个时钟周期更新远端数据高速缓存的一个相关单元;数据高速缓存实现写回、写更新机制,减少了向外部总线写操作的频度。该结构具有可扩展性,只要把片内WISHBONE・总线的地址线的位数扩展(用于选择多个从接口)就可以把多个内核集成在该芯片上,协议无需变化。该种体系结构运行两个耦合度很低的程序,性能最好。
该方案利用WISHBONE总线,基于监听总线的写更新一致性协议,把两个IP核集成在一块芯片上,实现了单芯片多处理器结构的FPGA。该体系结构采用开放的片上总线标准,具有公用的主从接口规范,实现了IP核可移植性,具有设计可复用的优点。
篇8:Linux系统下高速缓存使用率检查脚本linux操作系统
我们先要知道一点Linux系统下高速缓存使用率的PCMR越小越好,说明高速缓存利用率高了,下面我来给各位同学介绍一教程,
Linux的高速缓存pagecache对性能的影响至关重要,但是实际系统中我们的利用率如何呢,特别是具体到每个设备的利用情况。
从下图我们可以很清楚的看到:
我们知道IO请求由vfs发起,经过pagecache缓存,挡不住的就落实到io设备去,那么统计这个利用率就很简单。 我们只要知道挡不住的IO的比例就好了。
我写了个systemtap脚本来解决这个问题:
代码如下复制代码$ uname -r
2.6.18-164.el5
$ sudo rpm -i kernel-debuginfo-common-2.6.18-164.el5.x86_64.rpm
$ sudo rpm -i kernel-debuginfo-2.6.18-164.el5.x86_64.rpm
$ cat >pcmr.stp
global io_stat, blk_stat
global RD_CNT=2, WR_CNT=3
probe vfs.read.return {
if ($return>0 && devname!=“N/A”) {
io_stat[devname, 0] += $return
io_stat[devname, RD_CNT] ++;
}
}
probe ioblock.request {
blk_stat[devname, rw] += size
blk_stat[devname, rw+RD_CNT] ++;
}
probe vfs.write.return {
if ($return>0 && devname!=“N/A”) {
io_stat[devname, 1] += $return
io_stat[devname, WR_CNT] ++;
}
}
global _io,_blk
probe timer.ms(5000) {
foreach ([devname, action] in io_stat)
{
_io[action] += io_stat[devname, action];
_blk[action] += blk_stat[devname, action]
}
if (_io[0] + _io[1]) {
printf(“n%-25s, %s%db/%d, %s%db/%d, %s%db/%d, %s%db/%d, %s%d%%nn”,
ctime(gettimeofday_s),
“IO Read:”, _io[0], _io[RD_CNT],
“IO Write:”, _io[1],_io[WR_CNT],
“Blk Read:”, _blk[0], _blk[RD_CNT],
“Blk Write:”, _blk[1],_blk[WR_CNT],
“PCMR:”, (_blk[0]+_blk[1]) * 100 / (_io[0] + _io[1]))
delete _io
delete _blk
/* print header */
printf(“%8s %2s %19s %19s %5sn”,
“DEVICE”,“T”, “IO”, “BLK”, “PCMR”)
}
/* print top ten I/O */
foreach ([devname, action] in io_stat- limit 10)
if(action < RD_CNT)
printf(“%8s %2s %11db/%6d %11db/%6d %4d%%n”,
devname, action?“W”:“R”,
io_stat[devname, action],io_stat[devname, action+RD_CNT],
blk_stat[devname, action],blk_stat[devname, action+RD_CNT],
(blk_stat[devname, action] * 100) / io_stat[devname, action]
)
/* clear data */
delete io_stat
delete blk_stat
}
probe begin
{
println(“::”);
}
CTRL+D
参数我们来解释下:
IO Read: vfs层面看到的IO读/次数
IO Write: vfs层面看到的IO写/次数
Blk Read: 块层面看到的IO读/次数
Blk Write: 块层面看到的IO写/次数
PCMR: pagecache miss rate =100 * blk / io, 由于文件读写是以page为单位,所以可能>100%
第一行是汇总统计,每隔5秒打印一次,
总结: PCMR越小越好,说明高速缓存利用率高。
篇9:一级建造师心得体会
一级建造师一次4门通过经验谈不敢在这里说大话,山外有山天外有天。但是以我一年高分通过4门的经历,给大家谈点经验只谈,愿意听的当我给你做个参考,不以为然的当我耳边风好了,无意指导你的学习,只为初考者提供一些老考生的经验罢了。谢谢您的支持和信任,能看完下面这段文字。再次感谢您,祝您顺利通过考试!@学习的方向和重点:第一、一级建造师考试和其他大部分注册考试类似,都属于文科类性质的考试,顾名思义,死记硬背即可过关;第二、注册考试都属于过关型考试,意思就是及格就万岁,区别于高考这类的竞争性考试,分数只求更高,没有最高。既然上述两个性质特点,那么就决定了我们学习和复习的方向和重点,我们只要拿到60%的分数线就是通过了,无需追求高分。所以我们复习的重点就是抓重点放难点。对于每年必考,分值高,性价比突出的章节,我们一定要争取不丢分;对于难点难于理解难于记忆知识点很分散的章节,可以少花时间甚至于放弃,因为我们不追求100分。 复习总体思路及要点:学习讲究方法,方法比努力更加重要。我的体会是:第一:看书分三遍法;第二:只做历年真题不看复习题集。三遍法学习:第一遍看书,快速浏览,掌握大体框架,建立学科知识体系架构;把书看薄;第二遍看书,慢速浏览,结合课件学习,把每一个知识点吃透理解,把书看的很厚很厚;第三遍看书,结合历年真题看,只看分值高,出题点集中的区域,一定要争取把性价比高的章节全部理解吃透,把书看的很薄很薄,就如同重点小抄一样,书本只剩下这些重点知识体系;只做历年真题不做配套习题集:陈印大师讲过,历年真题的水平如同张曼玉林青霞,而配套习题集的水平犹如芙蓉姐姐,你用做了芙蓉姐姐的水平去参加张曼玉林青霞的水平的考试,你能及格,那是你运气,你不及格,那是应该的;因为其中原因:配套习题集的水平太差,纯粹属于粗制滥造为了赚钱的产物,纯粹就是教授手下叫几个研究生把市面上的习题集东拼西凑抄几百页凑数卖钱的产物,你愿意做,那是你自愿,当我什么都没说,谢谢。各科复习要点和重点:第一、相关法规:推荐老师:学而森学院陈印。国内一级建造师法规科目第一人。授课特点:讲课举例多,不会照搬书本讲解,风趣幽默便于理解。推荐学习方法:法规重在于理解和熟练运用,而不在于死记硬背。法条原文要掌握其中意思和精髓,因为出题不会出填空题,而是利用法条原文给你出个场景和事件,叫你判断选择。推荐重点:安全法规体系一块;质量法规体系一块;各占总分值的20%左右,甚至在项目管理和实务中也有相应分值,必须重点掌握,熟练运用;推荐非重点:各种其他法规,篇幅也不少,涉及分值很少,有时间可以看,时间紧张的可以不看。第
二、项目管理:推荐老师:东北学院顾永才。国内一级建造师项目管理科目第一人。授课特点:讲课语速快,自信,连珠炮,不按部就班讲教材,按照自己理解讲课。推荐学习方法:重点掌握项目管理框架体系,必须掌握网络图。重点还是安全管理和质量管理一块内容,还有合同管理一块的程序和时间记忆,必须准确。第三、工程经济:推荐老师:梅世强,我认为的国内一级建造师工程经济科目第一人,也有人认同段继校。授课特点:喜欢自己认为的重点讲给你听,不一定准确,但是是老师多年心得,值得借鉴。推荐学习方法:经济大家普遍认为难学,我不这么认为。第一章是时间价值,只要理解了其中原理,任何题目都难不倒你,也不需要记忆,只需要理解,典型的理科学习方法,用文科思维去学习,必定失败。掌握理解了第一章,你想丢分都很难,难上加难。第二章是财务,这章最难,难在与记忆,财务和大家都不熟悉,很多概念需要记忆,如果碰到难于记忆的章节,直接可以选择放弃,但是区别于第一章的是不能有任何一点放弃。第三章是工程估价,这章和很多有实际工作经验的人很熟熟悉。但是请记住,理论和实际不同,不要混淆概念,对于有点基础的考生,很好理解。重点要记忆程序和步骤,不能用实际中的方法去考试答题。对于工程经济三章,复习可以完全按照自己的顺序来安排,如果没基础的人,一看第一章时间价值就很头疼,建议先学习第三章,然后循序渐进学习第一章。重点在于第一章必须熟练掌握运用。放弃第一章的考生,工程经济绝对不会及格。工程经济三章分值基本三分天下。第四、实务:实务科目分十几个专业,我不能一一分述,但是有一点,实务的安全管理和质量管理也是两块重点,分值很高,基本占两道主观题的分值;网络计划必考,也占一道主观题分值;投资和资金控制必考,占一道主观题分值。当然各科目不一定一样。还有一个大前提,实务考试有运气成分,你刚刚看过的考了,你及格无疑,考的东西你刚刚没看到,你就很玄。答题技巧:一、单选题,有题必答,不会也蒙一个。答题可以采取排除法,对比法,近似法,等等方法;二、多选题,务必谨慎,不会的模棱两可的尽量不要选择,宁可少选也不要猜蒙。因为多选题的扣分规则决定了答题技巧,具体扣分规则不细说。三、主观题:看清题义,多答有益,精炼答题,多写不扣分,是采取得分点加分法。四、卷面必须整洁,给评分老师一个印象分,当然你书法好,字体写的漂亮更加好。因为阅卷老师看的多了就乏了累了,看到一幅糊里糊涂的答卷,哪怕全对,也不会给满分;看到一幅神清气爽的答题,就算全错也会酌情加分。暂时就写这么多,我不想罗哩罗嗦写很多,希望上述经验对各位准建造师们有用
篇10:一级建造师心得体会
下面是一位已经通过一级建造师考试的学员,分享一级建造师考试心得,希望对要报考一级建造师考试的学员们有所帮助。
随着建筑行业的发展,一级建造师执业资格证书被捧得火热,但一级建造师考试的通过率一直不高,我也是经过两年废寝忘食地复习,才终于在一级建造师考试中一举获胜。回首过去,感慨颇多。作为过来人,我向即将参加一级建造师的朋友提出几点真心的建议:
1.早作准备,认真复习,不抱侥幸心理。任何大型考试都是有难度的,尤其是一级建造师考试。要想轻松应付,事先必须精心准备。历年真题都是精华资料,我们要潜心研究,对试卷的难度做到心中有数,然后针对自己的情况制作出复习计划,按部就班地进行复习。虽然努力的汗水未必能浇灌出成功的花朵,但是认真备考对我们将来绝对是百益无一害的。“知识就是力量"这么简单的道理相信大家都明白。
2.讲究方法,提高效率。就今年试题而言,考的面广,知识点多,死记硬背的减少了,需要理解的增多了;实务方面,所谓的重点不见了,呆在角落里的知识点被发掘了出来。没有明确答案,结合实际的多了。就学习来说,需要精读、细读和理解,我认为书得读上3遍为宜,第一遍可粗一点,第二遍得系统了,第三遍就得自己写写了,因为考试时选择题还好一点,而主观题让你自己写具体答案的可能会难倒一批人,因此在平常的复习中要适当的进行练习,纸上得来终觉浅,自己实实在在去写记忆会更深刻。课外习题适当做,乱七八糟的别理会,不但不会提高成绩,还会挫伤积极性。碰到要记忆的知识点时,要根据记忆规律,科学记忆。我认为学习时,上个辅导班未尝不可,老师带着你学学是有效果的,但是千万别过分依赖,毕竟师傅领进门,修行还是要靠个人的。认认真真复习,踏踏实实准备才是应付一级建造师考试的根本方法。
3.调整心态,增强信心,坚持到最后。“心态决定一切”是有一定道理的。适当的考试压力会提高我们的复习效率,但是过度的压力会让我们无法安心复习。当压力太大的时候,自己可以适当地进行调节,比如听一些轻音乐或者出去运动。信心也很重要。有句话叫做:“自信是成功的动力,没有了自信心,干什么都难免会失败。” 许多考生在考前因没有了信心,所以临考放弃,实在令人惋惜。
希望参加20一级建造师考试的朋友们坚定信心,乘风破浪,笑傲考场!
篇11:一级教师工作总结
一级教师工作总结
我于19xx年6月毕业于柳州地区民族师范学校,同年7月参加工作,20xx年12月取得小学一级教师资格。在教育教学工作中,我始终以“立足教学第一线,立志成为科研型学者”为工作宗旨,忠诚党的教育事业,坚持理论联系实际,更新教育管理观念,以真挚的事业心、务实求真的工作态度,奉献自己的光和热,在教育系统中树立了榜样。
一、思想政治素质和职业道德方面
本人热爱社会主义祖国,热爱中国共产党,坚决拥护党的正确领导,坚持四项基本原则,忠诚人民教育事业。教育教学中遵守教师职业道德,时刻做到依法治教,民主管理,关心教师,关心爱护全体学生,尊重学生人格,平等、公正对待学生,教书育人,为人师表,勤勤恳恳,默默奉献,认真实施素质教育,遵循教育规律,勇于探索创新,不断提高教育教学水平。
二、继续教育方面
为了更好的胜任新世纪的教育教学工作,适应素质教育的需要,我不断参加各个方面的继续教育,全面提高自身素质。19xx年6月从师范毕业后,我就开始参加汉语言文学专业的自学考试,并于20xx年12月专科毕业,20xx年6月本科毕业。参加自学考试,让我的知识层面不断拓宽加深,工作起来更加游刃有余。繁忙的教学工作中,我也不忘给自己充电:20xx年至今,我一共学习了《走进新课程》、《小学数学课程理念与实施》、《小学教学评价》等继续教育教材和其他书籍共计50多本书。从而充实了相关学科知识,巩固教育教学基本功。
同时,我还积极参加各级各类的教研活动。如到来宾参加了20xx“来宾金秋”全国名师数学教学经验交流活动,到南宁参加了全区小学数学课改观摩活动,到武宣参加了小学数学“三维目标教学”主题研修活动;20xx年12月23日,我还代表东乡镇参加2007年武宣县农村中小学现代远程项目教学应用课赛(小学数学组),并获得了二等奖。参加这些教研活动使我获得了教育教学许多经验,扎实了基础,更新了理念,业务水平不断提高。
三、教学工作方面
由于具备系统扎实的基础理论和专业知识以及扎实的教育教学基本功,我能够胜任小学任意学段的循环教学。20xx年12月任现职以来,我曾经担任过小学四五六年级数学课程,对小学中高年级的教材、课程标准比较熟悉,备课、上课经验丰富,教学业绩比较突出,是东乡镇中心校的数学骨干教师。
在多年的数学教学工作中,我始终以学生为本,关心爱护学生,注重培养学生的自学能力和创新能力,鼓励学生学以致用。平时的教学中,我主要做好以下几个方面的工作:第一,认真备课。备课时我不但备学生而且备教材备教法,根据教材内容及学生的实际,设计课的类型,拟定采用的教学方法,并对教学过程的程序及时间安排都作了详细的记录,认真写好教案。每一课都做到“有备而来”,每堂课都在课前做好充分的准备,并制作各种利于吸引学生注意力的有趣教具。第二,向40分钟要质量。在课堂上,我会运用自己独具一格的教学方法,设计有效的教学情境,调动学生的积极性,尽量使讲解清晰化,条理化,准确化,情感化,生动化,避免枯燥的'数学课;充分体现学生的主作用,课堂上尽量让学生学得容易,学得轻松,学得愉快;我还注意加强师生交流,在每一堂课上都尽量考虑每一个层次的学生学习需求和学习能力,让各个层次的学生都得到提高。如此一来,班里每一个学生每一节课都有收获,课堂效率非常高。第三,课后及时对该课作出总结,写好教学反思。教学工作中几乎每一节课下来我都要认真地进行总结和反思:这节课有哪些做得好?这节课的教案设计得怎么样?有那些地方还可以改进?执行教案时遇到哪些问题?怎么解决?等等。通过总结和反思,我看到了自己的长处和不足,创新能力和专业素养得到了提升,教学水平不断提高,自己也逐渐成为一名反思型、研究型、学者型的教师,成为新时代的教学能手。第四,认真批改学生的每一次作业,耐心地辅导每一个学困生。批改作业是我了解学生对数学知识和对数学技能掌握情况的主要途径,所以我把每一次批改作业都当成和学生进行一次交流,或全批,或面批,对不同层次的学生有不同的要求,对学习有困难的学生进行不厌其烦的辅导,使每一个学生真正会学数学,会用数学。
由于工作认真负责,脚踏实地,我所教的班级的成绩都比原来有很大的提升,多次受到上级的嘉奖:指导学生陈虎等4人参加2006年来宾市小学数学竞赛,获四年级一等奖1人次,二等奖1人次,三等奖2人次。指导学生曾玉乔等4人参加20xx年来宾市小学数学竞赛,均获六年级二等奖。20xx年、20xx年和20xx年指导学生参加来宾市小学毕业水平质量调研测试,都获得县级二等奖,镇级一等奖。20xx年秋季学期和20xx春季学期期末测试中,获四年级数学科教学质量指导二等奖。而我的教学论文《关注数学思考,引领学生思维》获20xx年度广西小学数学教学论文、教案评比一等奖,《激发学生学习积极性,提高小学数学课堂实效》获2008年度广西小学数学教学论文、教案评比二等奖,《远程教育与小学数学教学的整合》获20xx年武宣县教育教学论文评比一等奖等等。
四、班主任与教导处工作方面
20xx年9月至20xx年8月,我担任六(三)班班主任。在班主任工作中,我关爱每一个学生,从不歧视学困生,在学习中,不让一个学生掉队。由于我所带的这个班原来纪律比较差,学习成绩比不上并列班级,所以我很注重抓班级的纪律,和学生打成一片,在班上树立典型和榜样,努力培养良好的班风学风,同时不辞辛劳,利用放学后、双休日、节假日等时间和学生聊天或者进行家访,了解学生,帮助学生解决生活与学习上的各种困难。由于我的精心教育和耐心的辅导,我班的后进生都进步很快,班级的学习与纪律在毕业时已跃居同年级之首,20xx年参加来宾市小学毕业水平质量调研测试,语文数学都获得了东乡镇一等奖,期末被评为学校的先进班集体。
由于工作的需要,20xx年9月,我被任命为东乡镇中心校的教导副主任,分管数学科教学、学生学籍管理、教师业务培训等工作。在新的工作岗位上,我坚决服从上级的领导,积极配合教导主任的工作。在数学科教学中,我能认真组织数学科的老师学习数学新课程标准和理念,并认真将新课程标准和理念贯彻在教学的各个环节,狠抓数学科的教学常规管理,努力促进数学教师养成课后反思的好习惯。几年来,我校数学科的教学质量一直稳中有升。在学生学籍管理工作中,我每学年初认真组织一年级各班主任搞好新生基本信息的采集,搞好新生学籍审批,编好学籍号。每学期开学初,为转走和转入的学生办理学籍手续。对我校学生的学籍档案进行管理,我组织班主任老师搜集、录入学生学籍资料、数据,把学籍数据上传入库,实现了学生学籍的电子化管理。由于工作出色,我被评为20xx至20xx年度东乡镇“两基”工作先进个人。在教师业务培训方面,我认真组织教师到校外参加各种业务培训,认真开展校本培训,有力的促进了我校教师专业成长。








