我目前正在使用Django + Anaconda软件包从头开始开发语音助手即服务。我目前的期望是它应同时处理5000个请求,每个请求的响应时间不少于10秒。该服务起初将具有10k技能,并且会随着时间的推移而增加。用户对一项技能的访问受限于他/她所订阅的技能。每当用户访问一项技能时,该技能的张量流模型就会加载到服务器中。每个技能都使用不同的张量流模型。
因为我还是一个没有经验的新手,所以当我第一次开发此API时,我就建立了它,而忽略了以后会遇到的可伸缩性问题。我使用普通的旧sql数据库保存了用户数据,无处不在地调用本地API,并且从未使用异步编程方法。
问题是,我认为在5000个用户使用不同技能的最坏情况下,我的服务器无法同时有效地加载5000个张量流模型。有办法解决吗?
为清楚起见,这是我的服务器规格:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 64
On-line CPU(s) list: 0-63
Thread(s) per core: 2
Core(s) per socket: 16
Socket(s): 2
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz
Stepping: 4
CPU MHz: 3201.397
BogoMIPS: 5000.00
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 1024K
L3 cache: 33792K
NUMA node0 CPU(s): 0-15,32-47
NUMA node1 CPU(s): 16-31,48-63
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves ida arat pku ospke```
I'm using Ubuntu 18.04.