this post was submitted on 23 Jul 2023
239 points (99.2% liked)

Lemmy Server Performance

1 readers
1 users here now

Lemmy Server Performance

lemmy_server uses the Diesel ORM that automatically generates SQL statements. There are serious performance problems in June and July 2023 preventing Lemmy from scaling. Topics include caching, PostgreSQL extensions for troubleshooting, Client/Server Code/SQL Data/server operator apps/sever operator API (performance and storage monitoring), etc.

founded 1 year ago
MODERATORS
 

Details here: https://github.com/LemmyNet/lemmy/issues/3165

This will VASTLY decrease the server load of I/O for PostgreSQL, as this mistaken code is doing writes of ~1700 rows (each known Lemmy instance in the database) on every single comment & post creation. This creates record-locking issues given it is writes, which are harsh on the system. Once this is fixed, some site operators will be able to downgrade their hardware! ;)

you are viewing a single comment's thread
view the rest of the comments
[–] BeigeAgenda@lemmy.ca 15 points 1 year ago (1 children)

Get some DBA's on the job and Lemmy will be blazing fast.

[–] RoundSparrow@lemmy.ml 14 points 1 year ago (2 children)

We have had DBA's, the problem is the Rust code uses ORM and an auto JSON framework that makes tracing the code time-consuming to learn.

[–] BeigeAgenda@lemmy.ca 3 points 1 year ago

Okay so you may need to refactor here and there to get more performance.

[–] AnarchoYeasty@beehaw.org 3 points 1 year ago (1 children)

Honestly, ORMs are a waste of time. Why not use sqlx and just hand write the SQL to avoid issues like this.

[–] RoundSparrow@lemmy.ml 1 points 1 year ago

In this one case, it was hand-written SQL inside a PostgreSQL FUNCTION that the ORM knows nothing about. But there is a approach in the entire application to have live-data from PostgreSQL for every little thing.