Uptime

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Uptime

Sven Van Caekenberghe-2
Hi,

So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites.

The machine itself reports:

$ uptime
 12:37:50 up 530 days, 21:46,  1 user,  load average: 0.02, 0.04, 0.01

which means it hasn't been powered down or didn't restart in 530 days.

I was surprised to discover that 2 of the Pharo images on that machine did just as well:

$ ./repl.sh
Connecting to Telnet REPL at locahost:41011
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit)
pharo> get system.uptime
405 days 20 hours 29 minutes
pharo> quit
Bye!

$ ./repl.sh
Connecting to Telnet REPL at locahost:41001
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Neo Console Pharo4.0 of 18 March 2013 update 40620
> get system.uptime
530 days 21 hours 44 minutes
> quit
Bye!

So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible.

Regards,

Sven

--
Sven Van Caekenberghe
Proudly supporting Pharo
http://pharo.org
http://association.pharo.org
http://consortium.pharo.org


Reply | Threaded
Open this post in threaded view
|

Re: Uptime

cedreek
Clearly amazing 😉 

Is it the setup you use ?


Cheers,
Cedrick

PS: btw Sven, we (with a group of students did a naive and simple url shortener that would fit nicely to default zinc demos ;-)

Here is the script for accessing registered urls (sweet):

server := (ZnServer startDefaultOn: 9999)
   onRequestRespond: [ :request |  | key |
       
       key := request requestLine uri segments last.
       dataBase at: key
            ifPresent: [:val |  ZnResponse redirect: val ]   
            ifAbsent: [ZnResponse badRequest: request].
      ].



Le 12 mai 2020 à 10:06, Sven Van Caekenberghe <[hidden email]> a écrit :

Hi,

So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites.

The machine itself reports:

$ uptime
12:37:50 up 530 days, 21:46,  1 user,  load average: 0.02, 0.04, 0.01

which means it hasn't been powered down or didn't restart in 530 days.

I was surprised to discover that 2 of the Pharo images on that machine did just as well:

$ ./repl.sh
Connecting to Telnet REPL at locahost:41011
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit)
pharo> get system.uptime
405 days 20 hours 29 minutes
pharo> quit
Bye!

$ ./repl.sh
Connecting to Telnet REPL at locahost:41001
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Neo Console Pharo4.0 of 18 March 2013 update 40620
get system.uptime
530 days 21 hours 44 minutes
quit
Bye!

So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible.

Regards,

Sven

--
Sven Van Caekenberghe
Proudly supporting Pharo
http://pharo.org
http://association.pharo.org
http://consortium.pharo.org


Reply | Threaded
Open this post in threaded view
|

Re: Uptime

Sven Van Caekenberghe-2
Hi Cédrick,

> On 12 May 2020, at 11:27, Cédrick Béler <[hidden email]> wrote:
>
> Clearly amazing 😉
>
> Is it the setup you use ?
>
> https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book-result/DeploymentWeb/DeployForProduction.html

Yes, more or less.

Apart from the infrastructure around it (like monitoring and automatic (re)starts), the fact is simple that the image started and kept working for 400+ days.

> Cheers,
> Cedrick
>
> PS: btw Sven, we (with a group of students did a naive and simple url shortener that would fit nicely to default zinc demos ;-)
>
> Here is the script for accessing registered urls (sweet):
>
> server := (ZnServer startDefaultOn: 9999)
>    onRequestRespond: [ :request |  | key |
>        
>        key := request requestLine uri segments last.
>        dataBase at: key
>             ifPresent: [:val |  ZnResponse redirect: val ]  
>             ifAbsent: [ZnResponse badRequest: request].
>       ].

Yes, that does look nice: it is very concise.

I would like to see the whole code, any pointers ?

Sven

>> Le 12 mai 2020 à 10:06, Sven Van Caekenberghe <[hidden email]> a écrit :
>>
>> Hi,
>>
>> So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites.
>>
>> The machine itself reports:
>>
>> $ uptime
>> 12:37:50 up 530 days, 21:46,  1 user,  load average: 0.02, 0.04, 0.01
>>
>> which means it hasn't been powered down or didn't restart in 530 days.
>>
>> I was surprised to discover that 2 of the Pharo images on that machine did just as well:
>>
>> $ ./repl.sh
>> Connecting to Telnet REPL at locahost:41011
>> Trying 127.0.0.1...
>> Connected to localhost.
>> Escape character is '^]'.
>> Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit)
>> pharo> get system.uptime
>> 405 days 20 hours 29 minutes
>> pharo> quit
>> Bye!
>>
>> $ ./repl.sh
>> Connecting to Telnet REPL at locahost:41001
>> Trying 127.0.0.1...
>> Connected to localhost.
>> Escape character is '^]'.
>> Neo Console Pharo4.0 of 18 March 2013 update 40620
>>> get system.uptime
>> 530 days 21 hours 44 minutes
>>> quit
>> Bye!
>>
>> So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible.
>>
>> Regards,
>>
>> Sven
>>
>> --
>> Sven Van Caekenberghe
>> Proudly supporting Pharo
>> http://pharo.org
>> http://association.pharo.org
>> http://consortium.pharo.org
>>
>>


Reply | Threaded
Open this post in threaded view
|

Zinc short-url-server-demo (was Re: Uptime)

cedreek

>>
>> PS: btw Sven, we (with a group of students did a naive and simple url shortener that would fit nicely to default zinc demos ;-)
>>
>> Here is the script for accessing registered urls (sweet):
>>
>> server := (ZnServer startDefaultOn: 9999)
>>   onRequestRespond: [ :request |  | key |
>>
>>       key := request requestLine uri segments last.
>>       dataBase at: key
>>            ifPresent: [:val |  ZnResponse redirect: val ]  
>>            ifAbsent: [ZnResponse badRequest: request].
>>      ].
>
> Yes, that does look nice: it is very concise.

Yes, the concise code was what I liked and this is because of your design.

I was doing it live with students in something like 10 minutes… so thanks for making me feel like a magician to them ;-)


>
> I would like to see the whole code, any pointers ?


We finish the project in two weeks time, so I’ll send the resulting code. We need to do the shortUrl registration page.
Basically, for now, this code snippet only need : dataBase := (Ordered)Dictionary new.

I want to keep it concise. One objective is keeping the dictionary  (dataBase) size controlled as it’s intended to be a demo app.

I’m thinking of limiting this size (dataBase) to  n entries (100, 1000 ?). There could be eventually be an option to grow the size (but by validation).

Another objective (but they won’t do it if I don’t do it myself) is to keep track of the history of clicked url for statistic purposes (probably one of next semester projet ^^).

It’s kind of a very nice and simple example to show students client/server concepts, hashing techniques, QRcode usage (short-url are a must-have for them), etc… and so concise in Pharo… probably a good candidate too for the dev-blog.

I’ll keep you informed - maybe by PR as I finally start to get my head around git :)

Cheers,
Cédrick


>
> Sven
>
>>> Le 12 mai 2020 à 10:06, Sven Van Caekenberghe <[hidden email]> a écrit :
>>>
>>> Hi,
>>>
>>> So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites.
>>>
>>> The machine itself reports:
>>>
>>> $ uptime
>>> 12:37:50 up 530 days, 21:46,  1 user,  load average: 0.02, 0.04, 0.01
>>>
>>> which means it hasn't been powered down or didn't restart in 530 days.
>>>
>>> I was surprised to discover that 2 of the Pharo images on that machine did just as well:
>>>
>>> $ ./repl.sh
>>> Connecting to Telnet REPL at locahost:41011
>>> Trying 127.0.0.1...
>>> Connected to localhost.
>>> Escape character is '^]'.
>>> Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit)
>>> pharo> get system.uptime
>>> 405 days 20 hours 29 minutes
>>> pharo> quit
>>> Bye!
>>>
>>> $ ./repl.sh
>>> Connecting to Telnet REPL at locahost:41001
>>> Trying 127.0.0.1...
>>> Connected to localhost.
>>> Escape character is '^]'.
>>> Neo Console Pharo4.0 of 18 March 2013 update 40620
>>>> get system.uptime
>>> 530 days 21 hours 44 minutes
>>>> quit
>>> Bye!
>>>
>>> So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible.
>>>
>>> Regards,
>>>
>>> Sven
>>>
>>> --
>>> Sven Van Caekenberghe
>>> Proudly supporting Pharo
>>> http://pharo.org
>>> http://association.pharo.org
>>> http://consortium.pharo.org
>>>
>>>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Zinc short-url-server-demo (was Re: Uptime)

Sven Van Caekenberghe-2


> On 13 May 2020, at 12:04, Cédrick Béler <[hidden email]> wrote:
>
>
>>>
>>> PS: btw Sven, we (with a group of students did a naive and simple url shortener that would fit nicely to default zinc demos ;-)
>>>
>>> Here is the script for accessing registered urls (sweet):
>>>
>>> server := (ZnServer startDefaultOn: 9999)
>>>  onRequestRespond: [ :request |  | key |
>>>
>>>      key := request requestLine uri segments last.
>>>      dataBase at: key
>>>           ifPresent: [:val |  ZnResponse redirect: val ]  
>>>           ifAbsent: [ZnResponse badRequest: request].
>>>     ].
>>
>> Yes, that does look nice: it is very concise.
>
> Yes, the concise code was what I liked and this is because of your design.
>
> I was doing it live with students in something like 10 minutes… so thanks for making me feel like a magician to them ;-)
>
>
>>
>> I would like to see the whole code, any pointers ?
>
>
> We finish the project in two weeks time, so I’ll send the resulting code. We need to do the shortUrl registration page.
> Basically, for now, this code snippet only need : dataBase := (Ordered)Dictionary new.
>
> I want to keep it concise. One objective is keeping the dictionary  (dataBase) size controlled as it’s intended to be a demo app.
>
> I’m thinking of limiting this size (dataBase) to  n entries (100, 1000 ?). There could be eventually be an option to grow the size (but by validation).
>
> Another objective (but they won’t do it if I don’t do it myself) is to keep track of the history of clicked url for statistic purposes (probably one of next semester projet ^^).
>
> It’s kind of a very nice and simple example to show students client/server concepts, hashing techniques, QRcode usage (short-url are a must-have for them), etc… and so concise in Pharo… probably a good candidate too for the dev-blog.
>
> I’ll keep you informed - maybe by PR as I finally start to get my head around git :)

No need for that, at the moment, I would just like to see what you did.

I would like to see if it would be a good demo candidate.

In any case, the focus of the examples should be on HTTP, not the stuff around it.

> Cheers,
> Cédrick
>
>
>>
>> Sven
>>
>>>> Le 12 mai 2020 à 10:06, Sven Van Caekenberghe <[hidden email]> a écrit :
>>>>
>>>> Hi,
>>>>
>>>> So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites.
>>>>
>>>> The machine itself reports:
>>>>
>>>> $ uptime
>>>> 12:37:50 up 530 days, 21:46,  1 user,  load average: 0.02, 0.04, 0.01
>>>>
>>>> which means it hasn't been powered down or didn't restart in 530 days.
>>>>
>>>> I was surprised to discover that 2 of the Pharo images on that machine did just as well:
>>>>
>>>> $ ./repl.sh
>>>> Connecting to Telnet REPL at locahost:41011
>>>> Trying 127.0.0.1...
>>>> Connected to localhost.
>>>> Escape character is '^]'.
>>>> Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit)
>>>> pharo> get system.uptime
>>>> 405 days 20 hours 29 minutes
>>>> pharo> quit
>>>> Bye!
>>>>
>>>> $ ./repl.sh
>>>> Connecting to Telnet REPL at locahost:41001
>>>> Trying 127.0.0.1...
>>>> Connected to localhost.
>>>> Escape character is '^]'.
>>>> Neo Console Pharo4.0 of 18 March 2013 update 40620
>>>>> get system.uptime
>>>> 530 days 21 hours 44 minutes
>>>>> quit
>>>> Bye!
>>>>
>>>> So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible.
>>>>
>>>> Regards,
>>>>
>>>> Sven
>>>>
>>>> --
>>>> Sven Van Caekenberghe
>>>> Proudly supporting Pharo
>>>> http://pharo.org
>>>> http://association.pharo.org
>>>> http://consortium.pharo.org
>>>>
>>>>
>>
>>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Zinc short-url-server-demo (was Re: Uptime)

cedreek

 I would just like to see what you did.

I would like to see if it would be a good demo candidate.

In any case, the focus of the examples should be on HTTP, not the stuff around it.

Yes sure.

Basically, here is the full playground I did with them (so in 10 minutes), doing a manipulation each line (the script was done gradually from halt) :



I doing it a server delegate lie the ZnImageExampleDelegate with a new dict each time the server is started. 

I’ll send it later. 

Cheers,
Cédrick



Reply | Threaded
Open this post in threaded view
|

Re: Zinc short-url-server-demo (was Re: Uptime)

Sven Van Caekenberghe-2
Hi,

I couldn't resist: https://github.com/svenvc/zinc/commit/264cbd3160f665f776232c02d013ce533df18f55

This is based on your core idea, but adds an html/page/form to shorten URLs which can also be used programmatically. There are also some functional tests.

Sven

> On 13 May 2020, at 13:55, Cédrick Béler <[hidden email]> wrote:
>
>
>>  I would just like to see what you did.
>>
>> I would like to see if it would be a good demo candidate.
>>
>> In any case, the focus of the examples should be on HTTP, not the stuff around it.
>
> Yes sure.
>
> Basically, here is the full playground I did with them (so in 10 minutes), doing a manipulation each line (the script was done gradually from halt) :
>
>
> <GraphiqueCollé-13.png>
>
> I doing it a server delegate lie the ZnImageExampleDelegate with a new dict each time the server is started.
>
> I’ll send it later.
>
> Cheers,
> Cédrick
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Zinc short-url-server-demo (was Re: Uptime)

cedreek
Just perfect !

Thanks Sven

> Le 13 mai 2020 à 17:47, Sven Van Caekenberghe <[hidden email]> a écrit :
>
> Hi,
>
> I couldn't resist: https://github.com/svenvc/zinc/commit/264cbd3160f665f776232c02d013ce533df18f55
>
> This is based on your core idea, but adds an html/page/form to shorten URLs which can also be used programmatically. There are also some functional tests.
>
> Sven
>
>>> On 13 May 2020, at 13:55, Cédrick Béler <[hidden email]> wrote:
>>>
>>>
>>> I would just like to see what you did.
>>>
>>> I would like to see if it would be a good demo candidate.
>>>
>>> In any case, the focus of the examples should be on HTTP, not the stuff around it.
>>
>> Yes sure.
>>
>> Basically, here is the full playground I did with them (so in 10 minutes), doing a manipulation each line (the script was done gradually from halt) :
>>
>>
>> <GraphiqueCollé-13.png>
>>
>> I doing it a server delegate lie the ZnImageExampleDelegate with a new dict each time the server is started.
>>
>> I’ll send it later.
>>
>> Cheers,
>> Cédrick
>>
>>
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Uptime

vince
In reply to this post by Sven Van Caekenberghe-2
Hello Sven

This is the kind of thing I like to see. Gives me more confidence in recommending Pharo to management for production use.

Just some things that still concern me though: Why are people surprised at discovering that Pharo is capable of such uptimes? Are people experiencing instability with Pharo in production settings? If so, what kind of instability are people experiencing?

Thanks, Vince

-----Original Message-----
From: Pharo-users <[hidden email]> On Behalf Of Sven Van Caekenberghe
Sent: Tuesday, 12 May 2020 6:06 PM
To: Pharo users <[hidden email]>
Subject: [Pharo-users] Uptime

EXTERNAL: Do not click links or open attachments if you do not recognize the sender.

Hi,

So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites.

The machine itself reports:

$ uptime
 12:37:50 up 530 days, 21:46,  1 user,  load average: 0.02, 0.04, 0.01

which means it hasn't been powered down or didn't restart in 530 days.

I was surprised to discover that 2 of the Pharo images on that machine did just as well:

$ ./repl.sh
Connecting to Telnet REPL at locahost:41011 Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit)
pharo> get system.uptime
405 days 20 hours 29 minutes
pharo> quit
Bye!

$ ./repl.sh
Connecting to Telnet REPL at locahost:41001 Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Neo Console Pharo4.0 of 18 March 2013 update 40620
> get system.uptime
530 days 21 hours 44 minutes
> quit
Bye!

So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible.

Regards,

Sven

--
Sven Van Caekenberghe
Proudly supporting Pharo
https://urldefense.com/v3/__http://pharo.org__;!!I_DbfM1H!U29_nUf8k6rmGjsp2AQSL8IDqW4-0JavFUItRuu0N2MQbNF35jnzLuQJwzgetkVf2_QA6g64JQ$
https://urldefense.com/v3/__http://association.pharo.org__;!!I_DbfM1H!U29_nUf8k6rmGjsp2AQSL8IDqW4-0JavFUItRuu0N2MQbNF35jnzLuQJwzgetkVf2_TO4j9SBA$
https://urldefense.com/v3/__http://consortium.pharo.org__;!!I_DbfM1H!U29_nUf8k6rmGjsp2AQSL8IDqW4-0JavFUItRuu0N2MQbNF35jnzLuQJwzgetkVf2_RhpurXTg$ 


Reply | Threaded
Open this post in threaded view
|

Re: Uptime

Stéphane Ducasse
Hi vince

I’m often working in the alpha version and it is stable but from time to time I have some crashes. 
In headless mode and interaction you have processes that can lock the system or others and we got some GC memory corruption.  
This is why we will introduce TaskIt-Core in Pharo 90.

S


On 14 May 2020, at 00:21, Vince Refiti <[hidden email]> wrote:

Hello Sven

This is the kind of thing I like to see. Gives me more confidence in recommending Pharo to management for production use.

Just some things that still concern me though: Why are people surprised at discovering that Pharo is capable of such uptimes? Are people experiencing instability with Pharo in production settings? If so, what kind of instability are people experiencing?

Thanks, Vince

-----Original Message-----
From: Pharo-users <[hidden email]> On Behalf Of Sven Van Caekenberghe
Sent: Tuesday, 12 May 2020 6:06 PM
To: Pharo users <[hidden email]>
Subject: [Pharo-users] Uptime

EXTERNAL: Do not click links or open attachments if you do not recognize the sender.

Hi,

So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites.

The machine itself reports:

$ uptime
12:37:50 up 530 days, 21:46,  1 user,  load average: 0.02, 0.04, 0.01

which means it hasn't been powered down or didn't restart in 530 days.

I was surprised to discover that 2 of the Pharo images on that machine did just as well:

$ ./repl.sh
Connecting to Telnet REPL at locahost:41011 Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit)
pharo> get system.uptime
405 days 20 hours 29 minutes
pharo> quit
Bye!

$ ./repl.sh
Connecting to Telnet REPL at locahost:41001 Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Neo Console Pharo4.0 of 18 March 2013 update 40620
get system.uptime
530 days 21 hours 44 minutes
quit
Bye!

So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible.

Regards,

Sven

--
Sven Van Caekenberghe
Proudly supporting Pharo
https://urldefense.com/v3/__http://pharo.org__;!!I_DbfM1H!U29_nUf8k6rmGjsp2AQSL8IDqW4-0JavFUItRuu0N2MQbNF35jnzLuQJwzgetkVf2_QA6g64JQ$
https://urldefense.com/v3/__http://association.pharo.org__;!!I_DbfM1H!U29_nUf8k6rmGjsp2AQSL8IDqW4-0JavFUItRuu0N2MQbNF35jnzLuQJwzgetkVf2_TO4j9SBA$
https://urldefense.com/v3/__http://consortium.pharo.org__;!!I_DbfM1H!U29_nUf8k6rmGjsp2AQSL8IDqW4-0JavFUItRuu0N2MQbNF35jnzLuQJwzgetkVf2_RhpurXTg$

--------------------------------------------
Stéphane Ducasse
03 59 35 87 52
Assistant: Julie Jonas 
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley, 
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
France