Getting Replit's specs

So. I created a specification dumper for Replit.

Ok, admit it, at one point you probably asked yourself “what does this run on?”.
So I figured that out.

{'Total Memory': '64309.30078125 MB', 'Available Memory': '49699.0078125 MB', 'Used Memory': '14084.38671875 MB'}
{'/dev/conman/conman-repl-filesystem-volume-3163 (/repl)': {'Total Space': '2.35546875 GB', 'Used Space': '0.4777565002441406 GB', 'Free Space': '1.873626708984375 GB'}, '/dev/root (/nix)': {'Total Space': '2.35546875 GB', 'Used Space': '0.4777565002441406 GB', 'Free Space': '1.873626708984375 GB'}, '/dev/root (/usr/bin/fusermount)': {'Total Space': '24.0477294921875 GB', 'Used Space': '13.881031036376953 GB', 'Free Space': '10.151073455810547 GB'}, '/dev/root (/mnt/cacache)': {'Total Space': '24.0477294921875 GB', 'Used Space': '13.881031036376953 GB', 'Free Space': '10.151073455810547 GB'}, '/dev/conman/conman-repl-filesystem-volume-3163 (/mnt/scratch)': {'Total Space': '2.35546875 GB', 'Used Space': '0.4777565002441406 GB', 'Free Space': '1.873626708984375 GB'}, '/dev/mapper/docker (/etc/hosts)': {'Total Space': '1639.7619400024414 GB', 'Used Space': '41.57094955444336 GB', 'Free Space': '1514.825366973877 GB'}, '/dev/mapper/docker (/etc/hostname)': {'Total Space': '1639.7619400024414 GB', 'Used Space': '41.57094955444336 GB', 'Free Space': '1514.825366973877 GB'}, '/dev/mapper/docker (/etc/resolv.conf)': {'Total Space': '1639.7619400024414 GB', 'Used Space': '41.57094955444336 GB', 'Free Space': '1514.825366973877 GB'}, '/dev/disk/by-id/google-cacache-1676406069801-us-east1-b (/mnt/cacache/pip)': {'Total Space': '16125.804592132568 GB', 'Used Space': '10911.676982879639 GB', 'Free Space': '5214.11198425293 GB'}, '/dev/disk/by-id/google-cacache-1676406069801-us-east1-b (/mnt/cacache/nix)': {'Total Space': '16125.804592132568 GB', 'Used Space': '10911.676982879639 GB', 'Free Space': '5214.11198425293 GB'}, '/dev/conman/conman-repl-filesystem-volume-3163 (/tmp)': {'Total Space': '2.35546875 GB', 'Used Space': '0.4777565002441406 GB', 'Free Space': '1.873626708984375 GB'}, '/dev/conman/conman-repl-filesystem-volume-3163 (/run)': {'Total Space': '2.35546875 GB', 'Used Space': '0.4777565002441406 GB', 'Free Space': '1.873626708984375 GB'}, '/dev/root (/run/wrappers/bin/fusermount)': {'Total Space': '24.0477294921875 GB', 'Used Space': '13.881031036376953 GB', 'Free Space': '10.151073455810547 GB'}, '/dev/conman/conman-repl-filesystem-volume-3186 (/home/runner/[myrepl])': {'Total Space': '2.35546875 GB', 'Used Space': '0.13362884521484375 GB', 'Free Space': '2.217754364013672 GB'}}
{'Operating System': 'Linux', 'OS Release': '5.15.0-1029-gcp', 'Architecture': 'x86_64', 'Processor': 'AMD EPYC 7B12'}

Yea. Looks like a garbage mess except for at the bottom.
So Lets go through it:

Memory Information:

Total Memory: 64,309.3 MB
Available Memory: 49,699.0 MB
Used Memory: 14,084.4 MB

Storage Information:

/repl: 2.4 GB total, 0.5 GB used, 1.9 GB free
/nix: 2.4 GB total, 0.5 GB used, 1.9 GB free
/mnt/cacache: 24.0 GB total, 13.9 GB used, 10.2 GB free
/mnt/scratch: 2.4 GB total, 0.5 GB used, 1.9 GB free
/etc/hosts: 1,639.8 GB total, 41.6 GB used, 1,514.8 GB free
/etc/hostname: 1,639.8 GB total, 41.6 GB used, 1,514.8 GB free
/etc/resolv.conf: 1,639.8 GB total, 41.6 GB used, 1,514.8 GB free
/mnt/cacache/pip: 16,125.8 GB total, 10,911.7 GB used, 5,214.1 GB free
/mnt/cacache/nix: 16,125.8 GB total, 10,911.7 GB used, 5,214.1 GB free
/tmp: 2.4 GB total, 0.5 GB used, 1.9 GB free
/run: 2.4 GB total, 0.5 GB used, 1.9 GB free
/run/wrappers/bin/fusermount: 24.0 GB total, 13.9 GB used, 10.2 GB free
/home/runner/[myrepl]: 2.4 GB total, 0.1 GB used, 2.2 GB free

System Information:

Operating System: Linux
OS Release: 5.15.0-1029-gcp
Architecture: x86_64
Processor: AMD EPYC 7B12

Yea… pip and nix are both 16TB.
Not just that, but the AMD EPYC 7B12 is 64 core and goes up to $4,000 USD
And, 64GB of RAM.

You aren’t gonna get that CPU, RAM and storage to your disposal though.
You get: 0.5 vCPUs (enough for 128 people), 1GB of storage, and 512MB of RAM.

5 Likes

I love this but I think we need to note a few things not to confuse anybody.

Mutiple repls are hosted on the same server so depending on the server its being hosted on the avalilve memory may be more or less. It also is maxxed out per repl iirc so you don’t get all of that.

1 Like

Yes, you are correct that the available memory can be different. There is a total memory list there.
I did say that the memory is not all for you in the bottom.

2 Likes

I am blinder than I thought. You should add that you can boost your repls or subscribe to hack to increase the amount you get

1 Like

Is this meant to be a showcase?

2 Likes

Showcase is more for showing off your Repls that you are proud of and talking about them with the community (it’s a great place to get feedback for improvements you could make etc), this isn’t really a Repl so I think #general is the best place for it, it’s just an interesting, on-topic, post/article.

3 Likes

I’m sorry. I attempted to post on general.

Nix is so large because it has most dependencies already installed, and when you install them it actually links them without using more storage.

1 Like

You did, it just seemed like a more showcasy kind of thing, but as @MattDESTROYER said, everything is fine.

1 Like

I already found the Replit specs here. What I found interesting is that the server runs on Ubuntu Linux even though the packages we add to Repls are from NixOS. I can’t figure out why there is this discrepancy.

I like that you actually took the time to research the CPU. I had no idea that Replit was using a 64-core CPU. I wish I had one of those.

EDIT: I noticed that my Repl’s results are hard to read unless you fullscreen it. I also forgot to mention that you can read the text files for even more information. They are updated every time it’s run. Please note that I made this Repl months ago and the code is not as nice as it would be if I made it now. It still runs though.

1 Like

Thats actually pretty neat. It took me some time to get CPU info. might as well drop the code:

with open('/proc/cpuinfo', 'r') as f:
   for line in f:
      if line.startswith('model name'):
         specs['Processor'] = line.split(':')[1].strip()
            break
1 Like

My main account already posted replit specs, but that was all read and compiled by a program. It left out some detailed.
CPU:

processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 49
model name      : AMD EPYC 7B12
stepping        : 0
microcode       : 0xffffffff
cpu MHz         : 2249.998
cache size      : 512 KB
physical id     : 0
siblings        : 8
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext ssbd ibrs ibpb stibp vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero xsaveerptr arat npt nrip_save umip rdpid
bugs            : sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed
bogomips        : 4499.99
TLB size        : 3072 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 49
model name      : AMD EPYC 7B12
stepping        : 0
microcode       : 0xffffffff
cpu MHz         : 2249.998
cache size      : 512 KB
physical id     : 0
siblings        : 8
core id         : 1
cpu cores       : 4
apicid          : 2
initial apicid  : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic s
ep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht
 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc 
rep_good nopl nonstop_tsc cpuid extd_apicid tsc_known_freq 
pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes
 xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_le
gacy abm sse4a misalignsse 3dnowprefetch osvw topoext ssbd 
ibrs ibpb stibp vmmcall fsgsbase tsc_adjust bmi1 avx2 smep 
bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec
 xgetbv1 clzero xsaveerptr arat npt nrip_save umip rdpid
bugs            : sysret_ss_attrs null_seg spectre_v1 spect
re_v2 spec_store_bypass retbleed
bogomips        : 4499.99
TLB size        : 3072 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management:

processor       : 2
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 49
model name      : AMD EPYC 7B12
stepping        : 0
microcode       : 0xffffffff
cpu MHz         : 2249.998
cache size      : 512 KB
physical id     : 0
siblings        : 8
core id         : 2
cpu cores       : 4
apicid          : 4
initial apicid  : 4
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht
 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc 
rep_good nopl nonstop_tsc cpuid extd_apicid tsc_known_freq 
pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes
 xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_le
gacy abm sse4a misalignsse 3dnowprefetch osvw topoext ssbd 
ibrs ibpb stibp vmmcall fsgsbase tsc_adjust bmi1 avx2 smep 
bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec
 xgetbv1 clzero xsaveerptr arat npt nrip_save umip rdpid
bugs            : sysret_ss_attrs null_seg spectre_v1 spect
re_v2 spec_store_bypass retbleed
bogomips        : 4499.99
TLB size        : 3072 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management:

processor       : 3
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 49
model name      : AMD EPYC 7B12
stepping        : 0
microcode       : 0xffffffff
cpu MHz         : 2249.998
cache size      : 512 KB
physical id     : 0
siblings        : 8
core id         : 3
cpu cores       : 4
apicid          : 6

Im gonna end the file here: This goes on until CPU #7.
8 CPU clusters? what magic is going on here?
512 cores. WOW.
Im gonna reply with ore stuff I find.

2 Likes

Alright so a new set of details.

cd’ing into home/runner shows that instead of us being locked out of further access and through some magic us being limited to the correct amount of processing power, they host individual VMs for each user.
Now I know through some magic you are able to get into host from a VM but I don’t think I want to get arrested today.
Another interesting thing is that you are not root.
Although its your own VM, they don’t allow you to get root. Although probably its because there is a way to exit VM using root.

Back to main topic.

Lets check what games are installed on our repl.
cd /
cd usr/games
dir
Awe man. No games.

Lets see whats in terminal.

cd a
less ansi

It is a binary file, but there is some readable text:
“ansi|ansi/pc-term compatible with color”

The total_subvolume_bytes file says 1073741824.
Using bits because im too lazy to divide:
1073741.824 KB
1073.741824 MB
1.073741824 GB
In another post I made a comment about how Replit’s code storage numbers are a little off.
They could have been:
512 MB
1 GB
2.4 GB
This apparently proves 1 GB, which is also what Replit Resources tab says.

couldnt really find anything else

4 Likes

Imagine. Who needs a Pro plan when you have this sort of power for free? That powers is not even close to if we created our programs locally.

Except that you don’t get a 64 core CPU for your Repl. You get 0.5 vCPU (virtual CPU) for your Repl. You also are limited in your RAM and storage. Plus the data has to travel across the web. And how do you know that my computer doesn’t have those specs?

i even said that in my post

You did but strangely OSoft seemed to think that you had that kind of power if you were using Replit.