I get data from serial port by package.
A few package a second, like below:
275 242 280 263 235 179 234 236 233 195 203 190 202...
ser = serial.Serial('/dev/ttyACM0', 921600, timeout=2, xonxoff=False, rtscts=False, dsrdtr=False) #Tried with and without the last 3 parameters, and also at 1Mbps, same happens.
data_raw = ser.readline()
cat /dev/ttyS0 | python3 script.py
You are reading from a serial port with a bit rate of 921600 bps. Call it 100,000 characters per second, or 10µs / character. 250 characters will take at least 2.5ms to arrive - you can do a lot in 2.5ms. (Incidentally, this means you can't get more than 400 packets per second - you just can't stuff the bits along the wire any faster!)
The device driver will do some buffering, so I wouldn't worry about it.