小编wic*_*ick的帖子

Bash关联数组大小

有没有办法在bash中获取关联数组的大小:

declare -A array
Run Code Online (Sandbox Code Playgroud)

......没有迭代元素?

感兴趣的大小是:元素的数量和它消耗的内存量?

linux bash associative-array

20
推荐指数
2
解决办法
1万
查看次数

性能报告的函数位于 0xffffffffffffffff

我正在尝试了解 myApp 非常忙的事情(90% cpu 单线程)。这是一个我不应该重新启动的服务器。我收集了样本

\n
perf record -p 5068 -F 99 --call-graph dwarf sleep 10\n
Run Code Online (Sandbox Code Playgroud)\n

perf report给了我这个:

\n
+  100.00%     0.00%  myApp    [unknown]              [.] 0xffffffffffffffff                                                                                                                           \xe2\x97\x86\n+   80.67%     0.67%  myApp    myApp                  [.] pipeline_run                                                                                                                                 \xe2\x96\x92\n+   67.71%     0.00%  myApp    myApp                  [.] QueryProcessor::process\n
Run Code Online (Sandbox Code Playgroud)\n

我花了一些时间谷歌搜索和阅读文档,我怀疑 0xffffffffffffffff 无法解析,因为perf不知道堆栈底部在哪里,因为它没有启动该过程。但有人可以证实这一点或指出我正确的方向吗?

\n

performance linux-kernel perf

7
推荐指数
1
解决办法
565
查看次数

获取 linux 的 /bin/ss 工具的源代码

ss工具类似于netstat. ss 使用记录非常糟糕的 NETLINK 库 ( man 7 netlink)。我在网上找不到如何正确使用 NETLINK_INET_DIAG 功能。ss 工具的源代码会有所帮助,但我也找不到。任何建议将不胜感激。

root@ubuntu:~# uname -a
Linux ubuntu 3.8.0-29-generic #42~precise1-Ubuntu SMP Wed Aug 14 15:31:16 UTC 2013 i686 i686 i386 GNU/Linux

root@ubuntu:~# apt-get source ss
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to find a source package for ss
Run Code Online (Sandbox Code Playgroud)

c linux netstat netlink ss

5
推荐指数
1
解决办法
2874
查看次数

segfault在srandom_r

我机智。这个琐碎的代码给了我Segfault,可能是什么错误?

struct  random_data *qq;

qq = calloc(50, sizeof(struct random_data));
srandom_r(time(NULL), qq);
Run Code Online (Sandbox Code Playgroud)

现在,如果我像这样更改它,它将起作用:

struct  random_data qq;

srandom_r(time(NULL), &qq);
Run Code Online (Sandbox Code Playgroud)

我一定是个笨蛋,但我无法把握。请帮忙。

更新:calloc返回有效的指针

(uint64_t) 1aa5010
Run Code Online (Sandbox Code Playgroud)

但是,&qq代表指针

(uint64_t) 7fffbb428090
Run Code Online (Sandbox Code Playgroud)

就是这样,但是还不清楚为什么srandom_r无法执行。我在Linux 2.6.32-44-服务器#98-Ubuntu上尝试

c linux random reentrancy

4
推荐指数
1
解决办法
936
查看次数

listen() 积压上限

尽管在这个话题上说了很多,但我仍然很难过。

我试验了一个能够处理适当负载斜坡的怪物 linux 服务器,大概每秒有数千个连接。现在,如果我检查默认的 listen() 队列:

#cat /proc/sys/net/core/somaxconn
128
Run Code Online (Sandbox Code Playgroud)

这根本不是实际的队列大小。我怀疑这可能是遗留问题,实际大小由以下给出:

#cat /proc/sys/net/ipv4/tcp_max_syn_backlog
2048
Run Code Online (Sandbox Code Playgroud)

但是,man tcp说后者是等待来自客户端的 ACK 的连接,这与尚未接受的连接总数不同,这就是 listen() backlog 的含义。

所以我的问题是如何增加listen() backlog,以及如何获取/设置它的上限(就在内核重新编译之前)?

c linux tcp backlog

3
推荐指数
2
解决办法
3893
查看次数

没有 keepalive 的情况下物理断开的 tcp 套接字的生命周期

在没有保持活动选项的 TCP 连接上,如果我物理地断开线路 - 因此没有 FIN/ACK 可能性,这个套接字是否会愉快地接受我所有的应用程序数据,将其放入发送缓冲区并尝试永远发送它?

如果没有,它何时以及如何消亡 = 哪些错误将返回到我发送小块数据的应用程序?我们谈论 Linux 和 c。

谢谢

c sockets linux tcp

3
推荐指数
1
解决办法
2329
查看次数

获取 nginx 中自纪元以来的当前时间(秒)的字符串

在 nginx 配置文件中,获取包含自纪元以来当前时间(以秒为单位)的字符串表示形式的变量的最佳方法是什么?从概念上讲,我想要这样的东西:

$timestamp = <unix_time>;
add_header Time $timestamp;
Run Code Online (Sandbox Code Playgroud)

应版主要求,这不是重复

有没有办法获取nginx中的当前时间?

因为变量$date_gmt and $date_local不提供自纪元以来的秒数格式。

nginx

3
推荐指数
1
解决办法
3534
查看次数

内存分配如何在极端情况下工作?

我很困惑内存分配(malloc/calloc)在linux/c中的工作原理.假设我有一台16GB RAM的机器,我以root身份运行程序.它是64位机器,因此所有16GB都可以作为单个段进行寻址.我可以使用单个malloc调用分配所有这些(当然,减去操作系统的数量)吗?有很多malloc电话?

它是如何与"堆内存"和"虚拟内存"相关的?如果我分配一个小内存块,并且它发生在堆内存中,那么我调整(放大)这个块,当我接近堆栈区域时会发生什么?

如果我想(几乎)将所有RAM分配给我的单个进程,甚至认为它以root身份运行,我是否必须使用setrlimit RLIMIT_AS?

c linux memory-management

2
推荐指数
1
解决办法
800
查看次数