Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
It's there as far back as we can scroll, but I just wonder the ram handicap. Typically I'll run a browser that keeps reporting error feedback but still runs.
E.g., Chromium:
Code:
root# /usr/bin/chromium-browser: line 133: lsb_release: command not found
/usr/bin/chromium-browser: line 134: lsb_release: command not found
[24176:24301:0514/215530.866525:ERROR:bus.cc(394)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
ATTENTION: default value of option force_s3tc_enable overridden by environment.
(chromium-browser:24176): LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: The connection is closed
[24176:24272:0514/215556.303620:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215557.135423:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215557.428281:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215558.406005:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215558.512466:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215559.554561:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215559.836829:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215601.391427:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215601.468456:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
Feedback like this will just scroll on and on if I don't exit terminal.
If a clearly marked ERROR repeats like that you might want to look at the issue
I have heard that excessive output to the terminal can be a bottleneck for e.g. shell scripts
scrollback buffer can be limited in most terminal emulator apps
it doesn't take up as much memory as you think. Consider each character is 2 bytes, a terminal is usually 80x24 chars, that's 3840 bytes. Even if you have a thousand times that, it's only 3.6MiB.
Quote:
Originally Posted by JASlinux
It's there as far back as we can scroll, but I just wonder the ram handicap. Typically I'll run a browser that keeps reporting error feedback but still runs.
E.g., Chromium:
Code:
root# /usr/bin/chromium-browser: line 133: lsb_release: command not found
/usr/bin/chromium-browser: line 134: lsb_release: command not found
[24176:24301:0514/215530.866525:ERROR:bus.cc(394)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
ATTENTION: default value of option force_s3tc_enable overridden by environment.
(chromium-browser:24176): LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: The connection is closed
[24176:24272:0514/215556.303620:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215557.135423:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215557.428281:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215558.406005:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215558.512466:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215559.554561:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215559.836829:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215601.391427:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
[24176:24272:0514/215601.468456:ERROR:upload_data_presenter.cc(73)] Not implemented reached in virtual void extensions::RawDataPresenter::FeedNext(const net::UploadElementReader &)
Feedback like this will just scroll on and on if I don't exit terminal.
Let me get this straight. You're running a Chromium-based browser and you have no concerns about its memory usage, but you do have concerns about the memory usage of the terminal that it prints output to?
ondoho: I would be delighted to run browsers with no cli error feedback, but reality is most of them do.
I am also regularly stopped by Linux technical background assumptions. I am smart enough to code and grasp concepts, but I do not speak the language (am a couple-years-in Linux user as more of a Redmond defector).
I would be interested in scrollback buffer limiting. 3.6MB is a lot from my perspective.
sundialsvcs: I will try that to ramdisk. Thanks.
teckk: If that is valid mock cli feedback & diagnostic reporting, you made an argument. Roughly 50MB from 200k lines is significant.
ondoho: I would be delighted to run browsers with no cli error feedback, but reality is most of them do.
Because (for some reason) you are starting a browser in a terminal window, instead of through the GUI/launcher, like most folks do. And you're running it as root, which remains a very bad idea.
Quote:
I am also regularly stopped by Linux technical background assumptions. I am smart enough to code and grasp concepts, but I do not speak the language (am a couple-years-in Linux user as more of a Redmond defector).
Nothing to do with Linux, and you don't seem to grasp these concepts.
Quote:
I would be interested in scrollback buffer limiting. 3.6MB is a lot from my perspective.
No, it isn't. How many GIGABYTES do you have on your system now??? I had 4MB of RAM on my 386 system from 35 years ago.
Quote:
sundialsvcs: I will try that to ramdisk. Thanks.
..and you're complaining about 3.6MB of RAM...so you're going to use MORE RAM to redirect RAM output to it....which will somehow make things better???
Quote:
teckk: If that is valid mock cli feedback & diagnostic reporting, you made an argument. Roughly 50MB from 200k lines is significant.
...and your scroll buffer will NEVER have that much in it, and if it does, it won't matter a bit to your system. 50MB is still tiny.
Quote:
dugan: No, and it is actual Chromium.
...which they advise to NOT run as root.
You seem to ignore all the advice you're given, from everything about your system fans, to running things as root, memory usage, etc. Why bother asking anyone here if, no matter what you get told, you ignore it?? Is there a point?
teckk: If that is valid mock cli feedback & diagnostic reporting, you made an argument. Roughly 50MB from 200k lines is significant.
You can copy/paste those into your own shell (which was the idea) and see what you get. Change the max scrollback lines in your terminal and see if RAM usage changes.
Example:
~/.Xdefaults
Code:
XTerm*saveLines: 1000
What @dugan said. I have my own web browser that is webengine based, which is from the chromium project.
Let me see, I have other stuff open too.
Clear unused RAM
Code:
sysctl vm.drop_caches=3
free -b
total used free shared buff/cache available
Mem: 4009021440 510701568 3148419072 177627136 349900800 3112849408
Swap: 0 0 0
Opened web browser to here...
Code:
free -b
total used free shared buff/cache available
Mem: 4009021440 666238976 2731220992 281391104 611561472 2834100224
Swap: 0 0 0
Code:
>>> 666238976 - 510701568
155537408
So, the web browser sucked up x times the RAM as the terminal with 200k lines of X's
Just a simple way of putting 2000 lines of X, 70 chars long in the term. Did you try it?
Code:
for i in {1..2000}; do echo -e ''$_{1..70}'\bX'; done
Now that you have all of these examples before you. You can test your own machine.
There's a technical writeup here, about the data structures the Warp Terminal use to implement scrollback. That should answer all your questions about how scrollback uses memory.
The scrollback buffer will only use memory up to a certain amount, no matter how many lines have scrolled by. I'm sure you've noticed that most terminals let you specify a number of scrollback lines to make available, so that would be true for those as well.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.