lsload 可以标准整数格式打印吗?
can lsload print in standard integer format?
我在 LSF 中使用 lsload -I io
来测量我们节点上的 IO 使用情况,如果 io 值超过 9999,它将转换为 1e+04
或 4e+04
等科学格式。有没有办法以整数(而不是科学)格式获取实际数字?
我似乎无法通过现有的 lsload 命令找到完成此操作的方法,但您可以使用 API 编写一个简单的命令来为您获取它。
这里有一些(非常特别的)示例代码 return 'io' 在所有主机上加载为一个浮点数,你可以修改它来做一些花哨的事情,比如只给你你的主机想要等
ls_ioload.c:
#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);
}
你可以用这样的东西编译:
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
我的小型单主机集群上的示例输出:
[~]$ lsload -I io
HOST_NAME status io
hostA ok 1e+4
[~]$ ./ls_ioload
HOST io
hostA 12074.595703
我在 LSF 中使用 lsload -I io
来测量我们节点上的 IO 使用情况,如果 io 值超过 9999,它将转换为 1e+04
或 4e+04
等科学格式。有没有办法以整数(而不是科学)格式获取实际数字?
我似乎无法通过现有的 lsload 命令找到完成此操作的方法,但您可以使用 API 编写一个简单的命令来为您获取它。
这里有一些(非常特别的)示例代码 return 'io' 在所有主机上加载为一个浮点数,你可以修改它来做一些花哨的事情,比如只给你你的主机想要等
ls_ioload.c:
#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);
}
你可以用这样的东西编译:
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
我的小型单主机集群上的示例输出:
[~]$ lsload -I io
HOST_NAME status io
hostA ok 1e+4
[~]$ ./ls_ioload
HOST io
hostA 12074.595703