常识题:网络访问时间、缓存访问时间、磁盘访问时间

发布于 2024-11-05 00:45:04 字数 236 浏览 3 评论 0原文

我编写了一个基于客户端-服务器的分布式文件系统的模拟器。现在要计算平均块访问时间,我需要以下信息:

  1. 本地缓存访问时间
  2. 客户端到客户端缓存访问时间(同一网络)
  3. 客户端到服务器缓存访问时间(不同网络)
  4. 客户端到磁盘访问时间

假设块大小为 64MB ...

谁能给我大概的时间... 证明它的链接将不胜感激...

谢谢。

I have written a simulator of a client-server based distributed file system. Now to calculate the average block access time, I want the following:

  1. Local Cache Access Time
  2. Client to Client Cache Access Time (same network)
  3. Client to Server Cache Access Time (different Network)
  4. Client to Disk Access Time

Assuming if the block size is 64MB...

Could any one give me approximate times...
Links to prove it would be appreciated...

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

在你怀里撒娇 2024-11-12 00:45:04

为什么不简单地测量一下呢?

对于网络,使用 ping 命令来测量延迟,并将 64MB 除以可用带宽作为传播延迟。对于文件,使用 cat,对于主内存,使用

public static void main(String[] args) {
    byte[] data = new byte[64*1024*1024];
    long start = System.nanoTime();
    int sum = 0;
    for (byte b : data) {
        sum += b;
    }
    long end = System.nanoTime();
    System.out.println(new BigDecimal(end - start).movePointLeft(9));
}

Which on my machine yields

0.209555405

Why don't you simply measure it?

For network, use the ping command to measure latency, and divide 64MB by available bandwith for propagation delay. For files use cat, for main memory, use

public static void main(String[] args) {
    byte[] data = new byte[64*1024*1024];
    long start = System.nanoTime();
    int sum = 0;
    for (byte b : data) {
        sum += b;
    }
    long end = System.nanoTime();
    System.out.println(new BigDecimal(end - start).movePointLeft(9));
}

Which on my machine yields

0.209555405

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文