首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lsload能以标准整数格式打印吗?

lsload能以标准整数格式打印吗?
EN

Stack Overflow用户
提问于 2015-04-15 21:46:02
回答 1查看 111关注 0票数 1

我在LSF中使用lsload -I io来度量我们节点上的IO使用,如果io值超过9999,它将转向科学格式,如1e+044e+04。是否有办法以整数(而非科学)格式获取实际数字?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-16 16:22:13

我似乎无法通过现有的lsload命令找到一种方法来实现它,但是您可以通过使用API编写一个简单的命令来为您获取它。

这里有一些(非常特殊的)示例代码,可以将所有主机上的'io‘负载作为一个浮动返回,您可能可以修改它来执行一些花哨的操作,比如只给您想要的主机等等。

ls_ioload.c:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <lsf/lsf.h>


int main(int argc, char *argv[]) {
    struct hostLoad* hL;
    int numhosts = 0;
    char* hostnames[256];
    char* indices[] = { "io" , NULL };
    char** nlp = indices;
    int i;

    hL = ls_loadinfo(NULL,&numhosts,OK_ONLY|IGNORE_RES,NULL,hostnames,0,&nlp);
    if( !hL ){
        ls_perror("ls_ioload");
        exit(-10);
    }

    if( nlp[0] ){
        printf("HOST\t%s\n",nlp[0]);
        for(i = 0; i < numhosts; i++){
            printf("%s\t%f\n",hL[i].hostName,hL[i].li[0]);
        }
    }
    exit(0);
}

您可以使用以下内容进行编译:

代码语言:javascript
复制
gcc -o ls_ioload -I$LSF_ENVDIR/../9.1/include ls_ioload.c $LSF_ENVDIR/../9.1/linux2.6-glibc2.3-x86_64/lib/liblsf.a

在我的小主机集群上的示例输出:

代码语言:javascript
复制
[~]$ lsload -I io
HOST_NAME       status    io
hostA               ok  1e+4

[~]$ ./ls_ioload
HOST    io
hostA   12074.595703
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29661503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档