public static void getServerDiskInfo(Sigar sigar, ServerStatus status) {
    try {
      FileSystem fslist[] = sigar.getFileSystemList();
      FileSystemUsage usage = null;
      for (int i = 0; i < fslist.length; i++) {
        FileSystem fs = fslist[i];
        switch (fs.getType()) {
          case 0: // TYPE_UNKNOWN :未知
          case 1: // TYPE_NONE
          case 3: // TYPE_NETWORK :网络
          case 4: // TYPE_RAM_DISK :闪存
          case 5: // TYPE_CDROM :光驱
          case 6: // TYPE_SWAP :页面交换
            break;
          case 2: // TYPE_LOCAL_DISK : 本地硬盘
            ServerStatus.DiskInfoVo disk = new ServerStatus.DiskInfoVo();
            disk.setDevName(fs.getDevName());
            disk.setDirName(fs.getDirName());
            usage = sigar.getFileSystemUsage(fs.getDirName());
            disk.setTotalSize(usage.getTotal() / (1024 * 1024));
            // disk.setFreeSize(usage.getFree()/(1024*1024));
            disk.setAvailSize(usage.getAvail() / (1024 * 1024));
            disk.setUsedSize(usage.getUsed() / (1024 * 1024));
            disk.setUsePercent(usage.getUsePercent() * 100D + "%");
            disk.setTypeName(fs.getTypeName());
            disk.setSysTypeName(fs.getSysTypeName());

            String val = diskWritesAndReadsOnInit.get(fs.getDevName());
            if (val != null) {
              long timePeriod = (System.currentTimeMillis() - initTime) / 1000;
              long origRead = Long.parseLong(val.split("\\|")[0]);
              long origWrite = Long.parseLong(val.split("\\|")[1]);
              disk.setDiskReadRate((usage.getDiskReadBytes() - origRead) / timePeriod);
              disk.setDiskWriteRate((usage.getDiskWriteBytes() - origWrite) / timePeriod);
            }

            status.getDiskInfos().add(disk);
        }
      }
    } catch (Exception e) {

    }
  }
  static {
    initTime = System.currentTimeMillis();
    resetClasspath();
    Sigar sigar = null;
    try {

      sigar = new Sigar();
      FileSystem[] fslist = sigar.getFileSystemList();
      FileSystemUsage usage = null;
      for (int i = 0; i < fslist.length; i++) {
        FileSystem fs = fslist[i];
        if (fs.getType() != 2) continue;
        usage = sigar.getFileSystemUsage(fs.getDirName());
        diskWritesAndReadsOnInit.put(
            fs.getDevName(), usage.getDiskReadBytes() + "|" + usage.getDiskWriteBytes());
      }
    } catch (Exception e) {
    } finally {
      if (sigar != null) sigar.close();
    }
  }