在内核中,eBPF 映射可以定义为:
struct bpf_map_def SEC("maps") my_map = {
.type = BPF_MAP_TYPE_HASH,
.key_size = sizeof(uint32_t),
.value_size = sizeof(struct task_prov_struct),
.max_entries = 4096,
};
Run Code Online (Sandbox Code Playgroud)
如果我提前不知道最大可能大小my_map(我也不想浪费内存),有没有办法预先分配一个小大小并根据需要动态增加大小?我知道bpf_map__resize函数,但它似乎是一个用户空间函数,只能在加载地图之前调用。我将不胜感激任何示例代码片段或参考。
我正在 Django 的开发服务器上运行 Django 应用程序,并使用 PostgreSQL 作为后端数据库。我收到这个错误:
django.db.utils.OperationalError: FATAL: sorry, too many clients already
Run Code Online (Sandbox Code Playgroud)
当我使用 Locust 进行负载测试时。我的 Locust 脚本使用 100 个并发客户端运行测试:
env.runner.start(100, spawn_rate=100, wait=True)
Run Code Online (Sandbox Code Playgroud)
我在SO上看到了几个答案,例如:
从这些线程中,我想我明白了错误的原因,但我仍然很困惑。如果 PostgreSQL 甚至无法处理 100 个并发客户端,那么它在现实生活中如何扩展?这与我使用开发服务器有什么关系吗?如果我使用 Gunicorn 有帮助吗?如果需要一些连接清理,我是否应该在 Locust 脚本中实现?我在这个领域还很陌生,所以如果这些问题的答案是显而易见的,我深表歉意。